D&Z. В разработке. Вечно.

Сегодня я постараюсь написать про игру Dimouse & Zubik, разработка которой занимает уже больше 15 лет. Конечно, не постоянно: на самом деле, самый активный и объемный по результатам этап разработки пришелся на самое начало – конец 90-ых, когда я еще учился в школе. Разработка игры была частью общего создания мифологии волшебной страны мышей и котов – Мышландии, которой я был занят с детства, по-видимому, под впечатлением от Средиземья Толкина. Возможно, в какой-то момент я отсканирую и размещу здесь на сайте наиболее хорошие рисунки, посвященные этой стране, а также рассказы. Один из рассказов уже выложен на сайт – “Приключения мышат”. Разумеется, недописанный, как и большинство других. Ну а сегодня пойдет речь именно о проекции историй о Мышландии, короле Димаусе и маге Зубике в область компьютерных игр.


Началось всё с Бейсика. Когда я его начал изучать, точно не помню, но точно раньше, чем в школе. Конечно, в процессе самостоятельного изучения было сделано несколько игр. Главным шедевром стала игра “Димадо”, которая создавалась под впечатлением от Мортал Комбата и где ученики нашего класса должны были сражаться с учителями. У каждого были свои супер-удары и вообще идея была хорошей, но реализация – средней, так как тормозило всё страшно и играть было неудобно. Игра, к сожалению, безвозвратно утеряна (во всяком случае, найти не удалось). Другим шедевром, получившим некоторую известность, стала игра “Евса” – простенький клон Змейки, написанный мной тем не менее полностью с нуля. Пару игр тех времен я выложил здесь.

Про демосцену я тогда не знал, но было внутреннее стремление к подобному. Конечно, всё было жутко примитивно, но примерно в то время я сделал, в частности, эффект с движущимися трехмерными буквами (координаты линий подбирались на глаз, конечно), а также мультик про Димауса и Зубика, с которого всё и началось.

Так началась разработка игры D&Z. Игра обсуждалась с моим другом Зубиком, но в основном я ее делал один. Тем удивительнее, что она все-таки до какой-то степени была доведена до состояния, когда можно было даже играть. В игре было несколько модулей: модуль основной игры, который отображал игровую карту, с врагами, меню и прочим; модуль игровой карты, по которой можно было перемещаться (каждая клетка, если не ошибаюсь, занимала сутки игрового времени, внутри игры шел таймер), заходить в города и периодически возникали random encounters, как в Fallout (в том время я очень много играл во вторую часть этой игры); модуль начального меню и отдельный модуль для редактора карт. В random encounters карта генерировалась из соседних клеток (определяемых их цветом, например, если вокруг были зеленые клетки, то всё 9 кусочков, из которых составляется карта будут браться из файла forest.map), случайно заполнялась врагами и бонусами в виде сундуков (+1 золото) и радуг (добавляет ходов). На такой карте можно либо всех убить (что почти невероятно, так как враги очень сильные, особенно змеи), либо убежать за край карты (розовые клетки) и идти дальше. В игре есть несколько городов (различных только два типа – Мыштаун и все остальные) с магазинами и другими зданиями. Например, в Мыштауне есть дворец Димауса, который может с вами побеседовать и дать задания. Есть есть почта, где можно подработать почтальоном: нужно доставить письмо в клетку с нужными координатами. Если не ошибаюсь, были реализованы несколько уровней опыта (достигаются убийством врагов или выполнением заданий), а также несколько магий (выбираются в меню, но не все работают на самом деле). Единственный квест в игре “Поджог моста” так и не был доделан: реализована только первая часть, где нужно получить факел в соседнем городке. Может быть, когда-нибудь я добавлю в эту игру несколько квестов и выложу ее, кто знает? Эта версия игры самая полная, даже несмотря на отсутствие квестов и магий: здесь есть много оружия, работают лечилки, много врагов и видов тайлов.

В 10-11 классе и в начале института я начал изучать Си, поэтому Бейсик постепенно забылся и разработка завяла. Знаний Си было еще немного и в качестве компилятора использовался старый-добрый Борланд Си 7, который еще позволял разрабатывать под ДОС. У них была графическая библиотека BGI, ужасно кривая и забагованная по сегодняшним меркам, но тогда это было единственное, что можно было использовать без доступа к Интернету (хотя он уже постепенно появлялся) и знаний Ассемблера. В ней была сделана вторая версия игры, которая разрабатывалась в 2001 году. Судя по исходникам, которые я недавно обнаружил на компьютере, последняя версия датировалась 2002 годом (май), но откомпилированная версия не работает, поэтому видео записывалось с версии декабря 2001 года. Как видно, это была крайне забагованная версия, наверное, самая недоделанная и кривая из всех. Тем не менее, многое перешло в следующую версию, включая набор тайлов (перерисованный полностью, само собой).

Примерно в 2007 году я очень полюбил библиотеку Allegro, идеология которой очень близка к BGI и другим олдскульным вещам. Тогда же родилась идея переписать последнюю BGI-шную версию под Allegro. В этой версии был реализован алгоритм А* для поиска пути, поэтому враги, если видят вас, бегут навстречу. NPC, Димаус, также может сражаться с котами и следовать за вами (если видит). Область видимости ограничена препятствиями, такими как камни и деревья. Система диалогов была перенесена из предыдущей версии, но в этой она хотя бы действительно на что-то влияла (Димаус мог присоединиться). Технодемка была портирована под Линукс и Макось, но до игрового наполнения дело так и не дошло.

Ну и наконец, в этом году я созрел до того, чтобы вернуться к разработке и переделать игру под Андроид. Сначала я думал портировать предыдущую версию и продолжать разработку с возможностью компиляции сразу на нескольких платформах, но в конце концов эту идею отбросил и начал полностью заново писать на Яве. Конечно, “полностью” это сильно сказано, так как Ява почти полностью копирует Си, поэтому многие функции фактически с минимальными изменениями были перенесены (поиск пути, проверка препятствий по направлению взгляда и т.д.), но вот интерфейсные вещи пришлось, конечно, писать все заново, хотя бы потому, что раньше игра полностью управлялась с клавиатурой, а теперь – тач-скрином. Из-за этого пришлось переделать весь интерфейс, включая тайлы, которых теперь на экран помещается намного меньше (иначе в них будет сложно попадать пальцем).

Кроме того, я серьезно переработал саму структуру классов. Раньше классы героев, NPC и врагов сильно отличались, хоть и наследовались от одного. Теперь же это один и тот же класс, но в самой игре у нас три массива (списка). Таким образом, в теории, можно будет легко переносить один юнит из одного в другой список и реализовать таким образом управление NPC, “псионический гипноз” на врагов, а также самими врагами взятие под контроль ваших юнитов. Как понятно из объяснений, в игре планируется сделать большой упор на тактико-стратегическую составляющую, а не ролевую. Означает ли это, что ролевой игры не будет? Конечно нет! Просто надо поэтапно вести разработку, а система скриптов, которые бы учитывали все возможные варианты событий и изменений в игровом мире, сделать гораздо сложнее, чем аналогичное для текстовых игр! Поэтому сначала планируется довести до играбельной версии стратегическую часть. Скорее всего будет random skirmish, где можно будет настроить карту (из случайных элементов или predefined), количество врагов, возможность играть Димаусом, Зубиком или двумя сразу, начальный инвентарь (думаю, сделать чтобы количество денег на инвентарь зависело бы от числа врагов), а также несколько простеньких квестов. Например, тот самый стародавный квест про поджёг моста…

This entry was posted in Программирование, Сказки, Старые игры. Bookmark the permalink.

Leave a Reply