Рубрика «Zillions of Games 2»

«Короли севера» — битва за геймплей - 1Могу я в Тафл играть
Девять умений я знаю
Забываю нечасто руны
Ведаю книги и счёт
Умею скользить я на лыжах
Гребу и стреляю неплохо
Из искусств мне ведомы оба…

"Сага об оркнейцах" 

История, которую я хочу рассказать, полна загадок, малопонятного кода, бессонных ночей, шума кошачьих шагов...
Это одна из тех историй, в которых процесс гораздо важнее результата. Если вам нужен результат, его можно найти здесь, но если вам интересны подробности, что же… я готов рассказать о своих мытарствах.
Читать полностью »

На грани безумияРэндзю — удел простолюдинов,
в шахматы играют герои,
Го — игра богов

       Японская пословица.

Против глупости сами боги бороться бессильны.

       Айзек Азимов.

 
С приходом осени, хочется странного. Я задумался о том, какой должна быть игра, играть в которую максимально сложно? Меня интересует своего рода аналог Brainfuck-а из мира настольных игр. Хочется, чтобы правила игры были максимально простыми (Ритмомахия под это определение явно не подходит). Го — хорошая кандидатура на эту роль, но в неё люди играют довольно массово (хоть это и непросто). Если Го — игра богов, то хочется увидеть игру, играть в которую самим богам было бы затруднительно. Мощи богов я решил противопоставить своё безумие. В хорошем смысле…
Читать полностью »

Анатомия меланхолииЗнание — сила.

       Фрэнсис Бэкон.

… во многой мудрости много печали;
    и кто умножает познания, умножает скорбь.

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

Игры живут своей жизнью. Они возникают из ниоткуда, развиваются, порождают новые игры, забываются всеми и, порой, вновь возвращаются из забвения. В истории немало примеров игр, потерпевших поражение в этом процессе естественного отбора. Таковы разнообразные варианты Сёги, дошедшие до наших дней лишь благодаря трепетному отношению жителей Японии к своему культурному наследию. Партия в игру, подобную Taikyoku shogi, могла затянуться на месяцы (если не на годы). Но эти шахматные динозавры эпохи Хэйан не являются самыми яркими представителями «ископаемого» мира настольных игр.
Читать полностью »

Программирование «для души»Полно, голубь, не греши!
Убери свои гроши.
Я ведь это не для денег.
Я ведь это для души.

Леонид Филатов "Сказка про Федота-стрельца, удалого молодца"

Just for Fun.

Linus Torvalds

Не секрет, что люди получают удовольствие по-разному. Одним нравится смотреть телевизор, другие собирают квадрокоптеры. Я хочу поделиться своим рецептом. Вряд ли он будет полезен всем, но возможно кого-то заинтересует. Мне нравится писать программы (и думаю, что это не редкость, даже среди профессиональных программистов), но мне не очень нравится, когда этот процесс превращается в унылую рутину.

Чтобы быть интересным, программирование должно представлять собой, своего рода «зарядку для ума». Хорошим примером такого (полезного) развлечения является, известный многим ресурс, посвященный совершенствованию навыков составления SQL-запросов. Но не SQL-ем единым жив программист! Недавно, я нашел отличный способ усовершенствовать свои навыки владения Фортом. Axiom позволяет напрограммироваться на Форте вволю!

Мой рецепт получения Fun-а, при помощи Axiom, прост:

  1. Выбираем любую игру, с правилами позаковыристее, из числа ещё не реализованных ZoG-сообществом
  2. Пытаемся её воплотить в жизнь, используя Axiom
  3. Получаем удовольствие, в процессе решения возникающих при этом задач
  4. В случае, если в полученное приложение интересно играть, выработанный Fun автоматически удваивается!

Читать полностью »

Аксиома — повышаем градус!          Старый серый ослик Иа-Иа стоял один-одинешенек в заросшем чертополохом уголке Леса, широко расставив передние ноги и свесив голову набок, и думал о Серьезных Вещах.

                  А. Милн «Винни-Пух и все-все-все»

— Видите ослика? — спрашиваю я милиционера. — Вон там маленький серый ослик… Артикул 2908. Цена тридцать две копейки. У него великое будущее.
— У осликов это бывает, — соглашается милиционер. — У них иногда бывает очень большое будущее.

                  Генрих Альтов «Ослик и аксиома»

Что самое сложное в разработке настольных игр? Очевидно, не анимация перемещения фигур по доске. Сложно придумать разумные и интересные игровые правила. Бывает очень сложно обеспечить игровой баланс. Если мы занимаемся компьютерной разработкой, зачастую, безумно сложно реализовать качественный AI (для таких игр как Го или Сёги эта проблема не решена до сих пор). И даже если нам удалось реализовать работающий AI, приходится проделать очень большой объем работ, чтобы оценить качество его работы и выбрать из нескольких возможных вариантов наилучший.

Я хочу рассказать об инструменте, способном существенно упростить решение всех этих вопросов. Axiom Development Kit задумывалась разработчиками как способ улучшения Zillions of Games. В частности, она ориентирована на реализацию игр, связанных с захватом территории (таких как Го), с которыми AI ZoG справляется очень плохо. Кроме того, Аксиома существенно расширяет возможности ZoG-разработчиков, предоставляя массу возможностей, практически не реализуемых в рамках традиционного ZRF (языка описания правил). При всём этом, Аксиома может работать совершенно самостоятельно, даже если ZoG на компьютер никогда не устанавливался и не покупался. Но, обо всём по порядку…
Читать полностью »

ZoG на стероидахКогда я писал о разработке игры "Thud!", я уже сетовал на некоторую избыточность полученного описания. Простота языка ZRF имеет свою оборотную сторону — для того чтобы написать на нем что-то более менее сложное, часто, приходится дублировать значительные фрагменты кода. Подобная избыточность, как известно, приводит не только к увеличению объема ручной работы, но и значительно усиливает риск появления в коде разнообразных ошибок (поскольку процесс отладки ZoG приложений весьма не тривиален, это является существенным моментом).

Как можно бороться с подобной избыточностью?

Разумеется, с помощью макросов! Проблема в том, что макросы ZRF недостаточно выразительны для этого. Адриан Кинг, в процессе разработки игр Scirocco и Typhoon, пришел к аналогичному выводу и разработал свой собственный, расширенный язык макросов, работающий как внешний препроцессор. Сегодня, я расскажу о возможностях этого языка и постараюсь, на примере Thud!, показать его использование в процессе разработки ZRF-приложений.

Читать полностью »

Zillion приключений (миниобзор)Я уже писал о том как легко разработать собственную игру, используя Zillions of Games, но я не упомянул об одном важном следствии этого факта. Набор приложений для ZoG не ограничивается 375 играми и головоломками, входящими в комплект дистрибутива. Игр, разработанных под Zillions of Games действительно много. Десятки энтузиастов со всего мира пополняют этот список, используя как ZRF, так и native-расширения. На сегодняшний день, его размер уже перевалил за 2000.

Конечно, я не смогу рассказать обо всем, что было реализовано в рамках проекта ZoG. Сегодня, я постараюсь рассказать о приложениях, показавшихся мне особенно интересными.
Читать полностью »

Приручаем ZoG (Часть 4: Осторожно — мины!)Сегодня я хочу продолжить рассказ о возможностях языка описания игр ZRF, используемого Zillions of Games. В предыдущих статьях цикла я показал как описываются ходы фигур, но есть еще одна важная разновидность хода, оставшаяся не рассмотренной. Помимо перемещения фигур по доске (возможно со взятием фигур противника), игрок (если ему это разрешено), может добавлять новые фигуры на поле. Эта разновидность хода называется сбросом (drops).
Кроме того, в сегодняшней статье, я расскажу о том, как в ZoG осуществляется генерация случайных ходов. Этот функционал необходим, например, при реализации игр, использующих броски игровых костей, для выполнения ходов, таких как Ludo или Chaturanga.

В качестве примера, я предлагаю, взяв за основу классические Шахматы, реализовать игру по мотивам одной из миссий сюжетной кампании Battle vs Chess. Большинство миссий в кампании играются по измененным правилам. Миссии различаются по сложности, в некоторых, для победы, достаточно провести одну из пешек в ферзи, в других — поставить мат за ограниченное число ходов. Я предлагаю рассмотреть четвертую миссию кампании Хаоса под названием «Точка невозврата».
Читать полностью »

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

Для того чтобы не загромождать изложение излишними (на этом этапе) подробностями, я выбрал для реализации очень простую игру. Я играл в нее в детстве. Она называется «Волки и Козленок». Правила следующие: Волки (черные фигуры) — ходят на одну клетку по диагонали, только вперед. Козленок (белая фигура) — также ходит на одну клетку по диагонали, но в любую сторону. Задача белых — пройти на любую из четырех клеток своего цвета последней горизонтали. Задача черных — лишить белых возможности хода.

Поскольку на стандартной шахматной доске 8x8 черные побеждают элементарно, используем для игры доску 9x9 клеток. Эта игра очень простая (и нравится детям). При правильной игре, белые всегда побеждают.
Читать полностью »

К шахматам я неравнодушен с детства. Хотя я так и не научился играть действительно хорошо, сам процесс игры доставляет мне огромное удовольствие. Довольно давно я узнал, что помимо известных всем традиционных шахмат, существуют и другие их разновидности. Не помню на каком компьютере, на Спектруме или Векторе 06 Ц я впервые увидел Сянцы.Игра была полностью на китайском языке и постигать её правила приходилось «методом тыка». Позже, я узнал о существовании Сёги, Чатуранга и прочих ближайших родственников Шахмат. Публикации в Кванте подстегнули интерес к Сказочным шахматам. Меня заинтересовал вопрос, сколько вообще известно разновидностей шахмат? Выяснилось, что их невероятно много. Настолько много, что список, посвященный этому вопросу на Вике очень и очень далек от того, чтобы его можно было считать полным.

Уже гораздо позже, когда я стал профессиональным программистом, у меня появилась идея, разработать универсальное приложение, для контроля правил ходов в разнообразных шахматноподобных играх на квадратных и прямоугольных досках. Разумеется, у меня и в мыслях не было, что я смогу создать универсальный AI. Даже сама задача реализации универсальной шахматной доски, с настраиваемым контролем всевозможных правил и возможностью игры по сети выглядела неподъемной. Я коллекционировал правила шахматных игр, пытался обобщить их, но, с учетом того, что я занимался этим краткими урывками, между основной работой, процесс пробуксовывал и шел очень медленно. Так продолжалось до тех пор, пока в прошлую пятницу, я не обнаружил проект под названием Zillions of Games.
Читать полностью »