Pull to refresh
  • by relevance
  • by date
  • by rating

Dagaz: Новое начало

Game development *
Бежит на юг и кружит на север, кружит, кружит на бегу своем ветер,
И на круги свои возвращается ветер;
Бегут все реки в море, — а море не переполнится,
К месту, куда реки бегут, — Туда они продолжают бежать;

Книга Экклезиаста.


В 1998 году, было разработано совершенно уникальное, для своего времени, приложение, позволяющее свести процесс разработки абстрактной настольной игры (или головоломки) к небольшому текстовому описанию на языке, отдалённо напоминающем Lisp. Этот проект получил название Zillions of Games и произвел настоящий фурор в среде любителей настольных игр. В настоящее время, создано более 2000 приложений, с использованием этой технологии.

Очень быстро выяснилось, что ZoG обладает множеством недостатков. Я уже писал об этом на Хабре и не буду повторяться. Скажу лишь, что разработчики не учли особенностей огромного количества уже существующих игр, а часть важных опций «захардкодили» таким образом, что их изменение стало крайне проблематичным. Грэг Шмидт, в 2007 году, постарался исправить ситуацию, выпустив Axiom Development Kit, но тесная интеграция этого решения с ZoG не позволила решить все проблемы.

Проект Ludi обозначил новые рубежи, используя универсальный игровой «движок» и генетические алгоритмы для автоматизации самого процесса разработки новых настольных игр. К сожалению, этот подход изначально предусматривал сознательное упрощение как игровых механик так и уровня используемого AI. Обсуждение целей этого проекта выходит за рамки настоящей статьи, но отдельные его технические решения, бесспорно, послужили отправной точкой для начала моей собственной разработки.

Моей целью является разработка более универсального и удобного в использовании «движка» для создания абстрактных настольных игр. Уже почти год я изучаю возможности ZoG и Axiom и узнал очень многое об их ограничениях. Я думаю, что смогу решить их проблемы, создав более универсальное и кроссплатформенное решение. О ходе работы над этим проектом я и собираюсь рассказать.
Читать дальше →
Total votes 52: ↑37 and ↓15 +22
Views 11K
Comments 17

Dagaz: Вновь об XSLT

Abnormal programming *Game development *XSLT *
Ранее я уже писал небольшую статью о программировании на XSLT, но она носила несколько синтетический, учебный характер. В самом деле, если кому-то вдруг и понадобиться найти одну из возможных расстановок «8 ферзей», для решения этой задачи найдётся с десяток других, более удобных, языков, чем XSLT. Я часто использую XSLT в работе, но эти примеры его использования какие-то скучные и не особо интересные. Совсем недавно я нашёл для этого языка более забавное применение. Именно об этом, а также о том «как я докатился до мысли такой» я и собираюсь рассказать. 
Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 7.8K
Comments 3

Dagaz: Факториал — это просто!

Programming *Game development *
imageСкриптинг — пожалуй наиболее важная (хотя и не самая сложная) часть задуманного мной проекта. Для того, чтобы всё заработало, мне потребуется язык общего назначения, с переменными, условным выполнением, циклами и исключениями. Мне не требуется что-то сложное, вроде анонимных функций или замыканий. Скорее всего, мне не пригодится даже рекурсия, во всяком случае, пока, для неё не нашлось применений, ни в одном из моих case-ов. В этом языке совсем не будет синтаксического сахара, поскольку все задачи метапрограмирования возьмёт на себя XSLT. В общем, этот язык будет прост настолько, насколько это возможно, но… не проще. 
Читать дальше →
Total votes 21: ↑16 and ↓5 +11
Views 16K
Comments 16

Подходы к созданию скриптового языка описания настольных игр

Abnormal programming *Programming *Game development *
Так уж случилось, что игры я писал лишь для себя, и профессионально этим никогда не занимался.
А вот опыт писать DSL (Domain Specific language) для уменьшения рутины написания совершенно разного кода хоть какой-то есть.
Именно этим и хочется поделится: как упорядочить необъятное.



Наш хороший хабр-юзер GlukKazan пишет много статей о том какие есть замечательные продукты для создания различных досочных игр. Такие как Zillions of Games и Axiom Development Kit.
Однако эти программы не универсальны. И всегда хочется улучшить их. Но данные продукты не свободны, поэтому приходится писать программный продукт заново.
GlukKazan работает над открытым проектом Dagaz, о чём делится отличными статьями (например тут: Dagaz: Новое начало).

Итак, предположим, мы хотим создать универсальный игровой движок для настольных игр, и его основой мы хотим видеть скриптовый язык, который помогает растолковать движку правила игры.
Каким мы хотим его видеть?
1) Язык должен быть универсальным, насколько можно, дабы описать почти любые правила игры.
2) Тем не менее, язык должен быть как можно проще, минимум конструкций.
3) Описание правил должны быть легки для чтения игроделу и для написания своих игр
4) Для большинства случаев игры можно писать, дополняя/изменяя уже написанные
5) Коммуникация (АПИ) со скриптом должна быть насколько простой, насколько это возможно. Так, что бы можно легко писать ботов и ИИ.
На первый взгляд кажется, что потраченные усилия вообще никому не нужны будут, поскольку рутину не уменьшить, проще писать игры сразу готовыми.
Но это не так.
Всё куда проще!
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Views 19K
Comments 30

Dagaz: Пинки здравому смыслу (часть 1)

Game development *
imageВажной частью работы над универсальной игровой системой является систематизация правил. За тысячи лет своего развития, человечество придумало невероятное количество настольных игр. Их правила, по большей части, похожи, но некоторые могут поставить разработчика в тупик. Эти правила столь же важны, как и все остальные. Здесь не действует принцип Парето — либо мы реализуем игру полностью, на все 100%, либо…  
это будет совсем другая игра. В процессе работы над проектом Dagaz, я решил составить свой рейтинг правил, наиболее неожиданных или неудобных для разработчика. Встречайте... 
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 11K
Comments 6

Dagaz: Пинки здравому смыслу (часть 2)

Game development *
imageЯ еще чуток добавил прыти —  
Все не так уж сумрачно вблизи:
В мире шахмат пешка может выйти —  
Если тренируется — в ферзи!

          Владимир Высоцкий "Честь шахматной короны"
 

Правила, особенно такие сложные, как рокировка или "взятие на проходе", не появляются на пустом месте. Никто не придумывает их просто так, чтобы позлить разработчика (во всяком случае, я надеюсь на это). В таких «устоявшихся» играх как Шахматы или Шашки, каждое из правил выстрадано десятилетиями. Тысячами игр, в десятках стран, по всему миру. Это бесценный материал для анализа. Неудачные решения отмирают, успешные — расцветают в сотнях различных вариантов (среди которых также есть как удачные, так и не очень). Сегодня, мы поговорим о двух особенно удачных находках... 
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 14K
Comments 4

Dagaz: Пинки здравому смыслу (часть 3)

Game development *
image– Ах ты подлец, – задумчиво сказал Воланд.
– Мессир, я вновь обращаюсь к логике, – заговорил кот, прижимая лапы к груди, – если игрок объявляет шах королю, а короля между тем уже и в помине нет на доске, шах признается недействительным.

                          Михаил Булгаков «Мастер и Маргарита»
 

«Мат королю!» — многие из нас впитали эти слова с молоком матери. Сама концепция шаха (и мата) кажется очевидной людям знакомым с Шахматами с детства, но так ли она проста на самом деле? После лёгкой разминки с превращениями фигур, я предлагаю заняться действительно сложными вопросами.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Views 18K
Comments 14

Dagaz: Пинки здравому смыслу (часть 4)

Game development *
imageПусть же вихрем сабля свищет!
Мне Костаки не судья!
Прав Костаки, прав и я!


Козьма Прутков "Новогреческая песнь"
 

Мат и пат, рокировки и взятия на проходе. Может ли какая-то другая игра (кроме Шахмат) доставить большую головную боль разработчикам? Конечно же да! И я уверен, что большинство из вас эту игру знает…
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 9.6K
Comments 4

Dagaz: Пинки здравому смыслу (часть 5)

Game development *
imageПо обеим сторонам нашего плоского бытия
бесконечно глубоко и далеко
простирается сама жизнь.
 
         Чарлз Ховард Хинтон «Эпизод из жизни Флатландии»
 
 

— Надо было ходить пешкой на е-один-дельта-аш…
— Тогда летит четвертый конь.
— Пусть. Пешки выходят в пространство слонов…
— Какое пространство слонов? Где ты взял пространство слонов?! Ты же девятый ход неверно записал!

Многие наверняка помнят этот отрывок из незабвенного "Полдня" Аркадия и Бориса Стругацких. Люди «Полдня» почти такие же как мы, но умнее и лучше нас. Они покоряют космос и играют в четырёхмерные шахматы. Авторы "Звёздного пути" также не обошли тему настольных игр стороной, но, в их случае, Спок играет в шахматы в трёх измерениях:



Выход за привычные нам пределы двумерной шахматной доски символизирует интеллектуальную мощь людей будущего и, по замыслу авторов, делает игру более интересной. Так ли это? Что, на самом деле, могут дать настольным играм третье и последующие за ним измерения?
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Views 15K
Comments 7

Dagaz: Пинки здравому смыслу (часть 6)

Game development *
image… мой двойник ожидает в доме Ихи, я встречаю его, я поднимаю мою фишку к [нему]
Я встречаю его в Прекрасном доме.
Я поднимаю три фишки и нахожу две фишки, мой двойник позади меня.


              папирус времён Рамсеса III
 

До сих пор, я рассматривал игры, в которых каждая фигура действует как бы «сама по себе». Взаимодействие фигур, в таких играх, сводится к «поеданию» фигур противника. Но не все игры таковы. Существует множество игр, в которых одна фигура может «усиливать» или «ослаблять» другую, изменяя, тем самым, её свойства. Об этом я и хочу поговорить сегодня.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 6.5K
Comments 4

Несколько хороших манкал

Game development *Forth *
             Хотя этикетка была не того цвета и содержала немало орфографических ошибок, большая ее часть находилась на месте, включая сделанную крошечным шрифтом надпись «Может содержать орехи».
                                                         сэр Терри Пратчетт 

Го или Ур? Можно долго спорить, какая из игр древнее, но победит, в этом противостоянии, скорее всего, Манкала. Археологи предпочитают иметь дело с материальными свидетельствами, но как только речь заходит о настольных играх, всё быстро уходит в область предположений. Было найдено немало досок, но гораздо меньше сведений о том, как на них играть. Древние не утруждали себя детальным описанием правил.

С Манкалой ситуация прямо противоположная. Это не одна игра, а весьма многочисленное семейство. В одной только Западной Африке, счёт идёт на десятки (если не на сотни) разновидностей. Доска (как материальный артефакт) для таких игр не обязательна. Достаточно взять пригоршню камушков и выкопать несколько ямок в песке. Не удивительно, что археологи испытывают затруднения с определением возраста этих игр. Им попросту нечего искать! Но для внимательного исследователя «настольных игр», манкалы не менее интересны, чем птицы семейства пересмешниковых для Чарлза Дарвина.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views 9K
Comments 6

Погоня с препятствиями

Perl *Abnormal programming *Game development *Forth *
 
           Какая медлительная страна! — сказала Королева. — Ну, а здесь,
знаешь ли, приходится бежать со всех ног, чтобы только остаться
на том же месте! Если же хочешь попасть в другое место, тогда
нужно бежать по меньшей мере вдвое быстрее! 
 
                        Льюис Кэрролл "Алиса в Зазеркалье


Сегодня, я хочу рассказать об удивительной и недооценённой игре, с которой я познакомился чуть менее двух лет назад. В каком-то смысле, именно с этой игры, а также с Ура, началось моё знакомство с Дмитрием Скирюком. В те дни я только начинал интересоваться настольными играми. Мои познания были скудны и, во многом, наивны. Такие игры как "Чейз", буквально открыли для меня новый необъятный мир. Даже сейчас, работа над этой игрой, в большой степени, напоминает детективную историю. В этом отношении, игра "Chase" полностью оправдала как своё название так и сходство с псевдонимом известного американского писателя.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 8.6K
Comments 6

Как один программист Jocly подковал

JavaScript *Game development *
— Ученик Почтальона Стэнли — пробормотал Грош
— Сирота, сэр. Очень печальная история… Хороший мальчик, если его не злить,
… если вы понимаете, что я имею в виду.
— Э… возможно. — сказал Мокрист и поспешно повернулся к Стэнли
— Итак, знаешь кое-что о булавках?…
— Нетсэр! — ответил Стэнли…
— О булавках я знаю всё!  
 
                            сэр Терри Пратчетт "Опочтарение".
 

В далёком 1998 году, Zillions of Games произвела фурор в среде любителей настольных игр, но она не была лишена недостатков. Главным её недостатком являлась закрытость. Для того, чтобы играть во что-то сверх набора из 48 игр, входящих в демо-комплект, приходилось платить деньги за активацию программы. Было невозможно запустить ZoG на чём-то кроме Windows (с некоторыми версиями этой ОС вполне могли возникнуть проблемы). Сетевой режим был, но только по локальной сети или через модем, Web не подразумевался. С этим ничего нельзя поделать, это закрытый продукт! Кроме того, в настоящее время, он практически не поддерживается. Я думаю, что многие будут рады услышать, что существует альтернатива, свободная от перечисленных выше недостатков. Знакомьтесь, это Jocly.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 8K
Comments 2

Сага опций

Game development *Usability *Game design *Logic games
Чтоб я вновь устроил Сампо,
Сделал короб многострунный,
Вновь пустил на небо месяц,
Солнцу снова дал свободу…

                                 «Калевала»


Настольные игры выглядит очень привлекательно для начинающих разработчиков. Здесь нет необходимости в построении фотореалистичных изображений и применении сложных шейдеров (хотя никто не запрещает этим заниматься). Даже использование 3D, в подавляющем большинстве игр, вовсе не обязательно. Сложность настольных игр сосредоточена на не визуальных составляющих. Пользовательский интерфейс выглядит простым и до предела примитивным.

Вот только… он таковым не является! Сегодня я хочу рассказать о своём опыте в разработке дизайна пользовательского интерфейса настольных игр, накопленном более чем за год работы.
Осторожно, анимированные картинки ...
Total votes 30: ↑30 and ↓0 +30
Views 4.1K
Comments 19

Звериные Сёги

Logic games
Не стану скрывать, что я неравнодушен к японской культуре. В детстве я увлекался оригами, став постарше, пошёл на карате. Я взахлёб читал Вурдова, пытаясь уловить смысл заложенный в кандзи и хотя бы немного понять японский язык. С годами, мои увлечения стали менее экстремальными (хотя айкидо я продолжаю заниматься до сих пор). В настоящее время, меня более всего интересуют настольные игры, и это та область, в которой японцам тоже есть чем порадовать. Я уже писал здесь про Го (и возможно продолжу писать), но сегодня я хочу рассказать о другой замечательной игре. Эта игра была придумана для детей (от 2 лет), но её нельзя назвать простой. Как в капле воды, в ней причудливо отразились все особенности её более взрослой сестры. Небольшой размер делает её похожей на головоломку, а возможность продолжительной игры (более 70 ходов, при идеальной игре) внушает уважение. 
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Views 11K
Comments 15

Цвет волшебства

Logic games
      Ближе к границе Краепада горели семь второстепенных цветов, искрясь и танцуя в пене умирающих морей. Но они были бледной тенью в сравнении с более широкой полосой, которая парила позади, наотрез отказываясь делить с ними один и тот же спектр.

      Это Цвет-Король, по отношению к которому все менее важные цвета есть не более чем неполные и застиранные оттенки. Это октарин, цвет магии. 

      сэр Терри Праттчетт
 

В этой игре никто никого не ест. Цель проста — перейти на другую сторону доски любой из фигур. Для этого могло бы хватить всего одного хода… Если бы не мешали другие фигуры.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 12K
Comments 1

Dagaz: Подробности

JavaScript *Game development *Game design *
imageВ «пи» цифр не пересчитать,
«е» — бесконечно столь же.
А если их с конца писать, какое будет больше?

Мартин Гарднер «Крестики-нолики»


Для этой статьи, я хотел выбрать другой эпиграф, но счёл его излишне пафосным. Очередной релиз вновь затянулся. За это время, я успел сменить работу! Работа на новом месте отнимает уйму сил, но я продолжаю находить время для своего маленького увлечения. И надо сказать, то, с чем мне приходится сталкиваться в процессе, становится всё сложнее и сложнее. Я расскажу вам об этом. Я хотел начать с другого эпиграфа, но этот тоже неплох.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 2.8K
Comments 13

Board game for learning the basics of electrical circuits. Why not?

DIY Logic games Electronics for beginners


I made the “electric” designer of… cardboard. Alas, the project still remains at the prototype stage, not developing into an industrial “physical” look and is waiting for its time (and investor).


But I decided to go further — once we started making cardboard, we’ll bring the situation to its logical conclusion — we’ll make a complete cardboard board game, but with an electric setting and a learning effect. There were a lot of options — starting from a simple “walker” and ending with Ameritrash from a zombie with electron movement and vicious short circuits and swollen capacitors.


As a result, I decided to dwell on a logical abstract, since the schematics of electrical circuits are very suitable for it. Said and done — as a result of the first iteration, the game “Circuit” was born.

Read more →
Total votes 12: ↑11 and ↓1 +10
Views 3.2K
Comments 1

Dagaz: A new Beginning

JavaScript *Game development *Logic games
Translation
It runs south and circles north, circling, circling to run with its wind
And according to its circuits the wind returns;
All the rivers run into the sea — and the sea does not overflow,
To the place where the rivers run, — There they continue to run;

The book of Ecclesiastes


In 1998, a completely unique, for its time, application was developed that allows you to reduce the process of developing an abstract board game (or puzzle) to a small text description language, vaguely reminiscent of Lisp. This project was called Zillions of Games. It created a furor among fans of board games. Currently, over 2,000 applications have been created using this technology.
Total votes 7: ↑7 and ↓0 +7
Views 1.3K
Comments 2

Dagaz: Сумма технологий

JavaScript *Game development *Logic games
          Итак, технологии интересуют меня, так сказать, по необходимости: потому что всякая цивилизация включает и то, к чему общество стремилось, и то, чего никто не замышлял.

          Порой, и довольно часто, путь технологии открывал случай: искали же когда-то философский камень, а нашли фарфор.
 
 
Станислав Лем.


С самого начала работы над проектом, было понятно, что качественный AI мне жизненно необходим! Самому с собой играть скучно, а модуль для игры по сети — он неизвестно когда ещё будет. Я пытался писать ботов сам, но все они работали либо плохо, либо плохо и медленно. В конце концов, я устал заниматься этой самодеятельностью и нашёл шахматного бота, качество игры которого меня вполне устраивало. Но тут возникла проблема. Мне-то были нужны не только Шахматы. Тому, как я с этим боролся, и посвящена эта статья.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Views 2.2K
Comments 19
1