randomRL

О создании

Изначально я хотел сделать игру, в которую можно было бы играть на моем Nokia N900, используя только клавиатуру. Для простоты я выбрал жанр текстовых “рогаликов” (rogue-like) и ещё, игра должна работать прямо из терминала и код должен быть кроссплатформенным для Windows- и UNIX-систем. У разработки был бодрый старт, но потом она остановилась примерно на 2 года, когда интерес угас, к тому же я купил себе планшет и долго с ним не расставался. После чего, наткнувшись на конкурс igdc, я доделал игру до играбельного состояния, но к сожалению не без глюков, потому что доделывал уже второпях за три дня.

Об игре

Сюжет я придумал для конкурса на ходу – человек в водолазном костюме ходит по темному трюму затонувшего корабля, собирает золото, аптечки, и т.п.; обороняется от врагов – глючных дронов класса RAT – используя некий жезл, чтобы бить дронов разрядами, и ищет выход наружу. Также есть отбойник, чтобы ломать стены (кроме ограничивающих игровое поле).
Но с самого начала я задумывал бесконечную игру, даже без ограничивающих стен. Ни о каком балансе и речи не шло. Враги были крысы, вместо жезла нож, который бы изнашивался, а в инвентаре был бы пакет семок 🙂
Чтобы приблизить релиз (для себя, а не для igdc) и не заморачиваться с уровнями, я просто написал код, который на каждый шаг персонажа создает объект впереди случайно (если впереди ничего нет). Впоследствии, все объекты создаются только в начале игры.
Игровое пространство не было бесконечным, это был квадрат 50х50 клеток.
У главного героя есть инвентарь, где можно выбрать аптечку и подлечиться, а также узнать сколько золота собрано.
Есть возможность пробивать стенки, но только не граничные с игровым полем.
Враги – дроны, стояли на месте и всё что умели это атаковать игрока в ближнем бою. Когда дроны погибали, их тушки имели два состояния, разделенные по интервалам времени – сначала это “мертвая крыса”, а через некоторое время -“видны палёные печатные платы”. Проще говоря, они “разлагались”.
Я даже сделал секрет: колонны, в которых лежали записки, их можно было найти в случайных местах. В записках были координаты импульсной пушки, она не появлялась, пока не найдешь все записки. К сожалению, это оружие я не успел реализовать.
Из нереализованного остался босс, который будет оживлять убитых крыс и бегать туда-сюда, причем босс появляется только тогда, когда все крысы убиты, и появляется он в большой комнате на карте, которая открывается по тому же событию. В планах был и второй босс.

Баги

В игре так и остались досадные баги:
– персонаж застревает в верхнем углу игрового поля;
– некоторые крысы атакуют игрока и после смерти.
Тогда я и понял, откуда берутся такие вроде бы глупые ошибки в играх, которые выходят в продажу 🙂

О разработке

Код я написал на Си, и это не лучший мой код. Из-за использования вложенных циклов и printf для вывода картинки, многие вещи становится сделать всё труднее и труднее.
Некоторые части кода я писал, правил и пушил на github прямо со своего N900.
Под Windows я установил MinGW и целую среду, чтобы код был кроссплатформенным. Но сейчас игра заточена только под Windows. Требуется добавить условную компиляцию.

О планах

Закончить проект и перевести на JavaScript.
Хотелось бы освоить ncurses, а для Windows освоить что-то подобное.
Хотя проект кажется крошечным, на деле там много запутанного кода, и нужно поработать над архитектурой, чтобы всё упростить, но энтузиазм давно угас и я вряд ли его когда-нибудь завершу. Разве что в отпуске или на пенсии. Вероятно, мне удастся его возобновить в ближайшее время. Выделять хотя бы по часу вечером.

авто с аукционов японии CARS-JP: авто продажа Здесь авто продажа