Lode Runner по мотивам версии с СССР-овского БК-0010
Недавно оказался я в необычной для себя ситуации, когда времени заниматься крупным проектом нет, а больше делать нечего. Маленько побездельничав и быстро поняв, что так я «со скуки помру», я решил переделать какую-нибудь старую игру из времен моей юности. Выбор мой пал на Lode Runner, в который я когда-то играл на сгинувшем ныне в веках СССР-овском серийном компьютере БК-0010. Именно эта версия Lode Runner-а мне очень нравилась своими правилами. Главный герой должен был собрать все сокровища на уровне, после этого открывался «портал» и нужно было войти в него для перехода на следующий уровень. Выполнению поставленной задачи активно мешались «охранники», которые гонялись за главным героем. Но в версии с БК-0010 главный герой мог пробивать дырки в кирпичном полу прямо под своим местоположением во время перемещения. Охранники туда падали и некоторое время находились в «пойманном» состоянии, а в это время можно было «бегать им по головам».
Версия на ZX-Spectrum, которую я когда-то тоже видел, позволяла также делать дыры в полу, но они делались справа или слева от местоположения главного героя, что полностью меняло все правила игры. В общем вариант для БК-0010 в моих глазах однозначно победил, да и я примерно помнил логику, по которой перемещались «охранники», что, с одной стороны, очень упрощало задачу, а с другой, наоборот, усложняло, так как повторять чужой, если можно так выразиться, AI, всегда очень скрупулезное занятие.
Оригинал игры, который мне предстояло переделать выглядел так:
За основу разработки я взял свою «оболочку», которая делалась мною для RTS Onimod Land / Земля онимодов. Оболочка проектировалась так, чтобы не быть «завязанной» на одну ОС. Поэтому у меня сразу была бонусная задача попробовать выполнить портирование Lode Runner-а на Linux и Mac OS, чего ранее я никогда не делал. Самое главное, что есть у оболочки — это GUI, т.е. она может своим внешним видом напоминать Windows:
Но, естественно, что для игр я использовал другую тему оформления.
Так как моя игра не требовала каких-то серьезных ресурсов компьютера, то я решил, что для упрощения задачи буду рисовать изображение при помощи CPU, тем более, что такой способ уже был реализован в моей оболочке. Также это даёт жирный плюс при переносимости на другую платформу.
Вообще вся работа с графикой у меня происходит максимально просто — в памяти создается поверхность, на которой строится изображение, а потом эта поверхность копируется на текстуру DirectX или OpenGL, а далее эта текстура просто выводится на экран.
С момента начала работы и до момента, когда у меня уже был вполне играбельный прототип прошло около недели. Естественно, что вся графика в тот момент была «заглушечная», но сама игра вполне функционировала. К счастью, моему другу Константину, который умеет рисовать, эта игра понравилась (он ведь тоже когда-то играл в неё на БК-0010) и за пару не очень трезвых ночей нам удалось полностью создать текущее оформление. Хотя... создавал, конечно, он, а я играл роль «критика».
Наш вариант выглядит так:
Потом была корректировка кучи всяких незначительных мелочей, которые должны были сделать мой вариант уж совсем похожим на оригинал. Игровые уровни были также скопированы из оригинала (по счастью в Интернете сейчас можно найти всё, что угодно). Для создания уровней я, естественно, включил в состав игры редактор карт.
Еще примерно неделя ушла на то, чтобы сделать портирование игры на Linux и Mac OS. Для этого я установил виртуальную машину Fedora-64. В неё установил Code::Blocks и перетащил туда исходный проект с Visual Studio. Чтобы еще упростить себе жизнь, я взял SDL. Главное для чего он мне был нужен — это универсально создать окно и вывести в него текстуру. Также через SDL идет работа с мышью и клавиатурой.
Так как оказалось, что Code::Blocks существует и для Mac OS тоже, то я решил не менять эту среду. Правда, на Mac OS в моем случае отладчик не работал, поэтому для отладки я выводил сообщения в консоль. В моем распоряжении был далеко не новый Mac с установленной операционкой Lion. На нем всё это и было проделано.
Полученные результаты лично меня вполне устроили. Я давно не делал всякой мелочёвки, у которой огромный плюс в том, что она не успевает надоесть пока её успеваешь закончить. Как авторы мы сами с удовольствием «вспомнили детство золотое» и поиграли в собственное творение. Даже добавили новые уровни в конце. Портирование позволило мне доработать оболочку, чтобы в будущем, если я когда-нибудь захочу еще поделать мелкие игры, у меня уже всё было готово для кроссплатформенности.
Если будут желающие «заценить» данное произведение, то я записал небольшое видео на тему того, как правильно играть в мой Lode Runner: Видео на youtube
Совет по игре: чтобы дырявить пол лучше удерживать пробел, а не барабанить по нему.
Разработчики:
- Программирование: Алексей Седов (он же Odin_KG, он же студия Astralax)
- Графика: Константин Иванов
Платформы: Windows, Linux, Mac OS
Ссылка на страницу с игрой: Lode Runner
- 19 августа 2017, 02:59
- 015
Знакомые все лица. Добро пожаловать на Гамин. Снова.
Я играл только в две совершенно другие версии Лоуд Раннера - это фамиклоновская (Ending Man S-500) и Lode Runner 2000 от Сиерры, уже на ПК. Вторая понравилась намного больше, там добавили всяких элементов вроде клейкого пола и дымовой завесы.
Понятия не имел, что была версия, где можно делать дырки в полу прямо под персонажем, при этом на ходу. В целом это накладывает меньше ограничений чем привычная диагональная схема, интересно было узнать.
В видео наверху справа враги не видят персонажа, когда он залез в угол - баг или фича? Хотя, я бы сказал что это баг который стал фичей, почему бы и нет.
О, привет! Спасибо :-)
А это как раз мой любимый вариант этой игры. По крайней мере, у меня с ним связаны самые теплые воспоминания. Пробовал другие варианты - не особенно интересно было. Хотя может быть дело просто в ностальгии.
Я когда-то тоже думал, что это баг оригинальной игры. Но когда сам стал переделывать, то понял зачем это нужно. Дело в том, что если главный герой лезет вверх по лестнице, а за ним лезет охранник, то можно спрыгнуть с лестницы вправо или влево и пролететь мимо ползущего наверх охранника. Иначе охранник тоже спрыгнет и поймает. Поэтому вплотную к лестницам можно спокойно стоять - для этого я делал специальную проверку, чтобы игра работала как оригинал.
Хитро! Штука реально имеет смысл.
Да, согласен :-)
Комментарий интереснее статьи. Пока читал, искал глазами продолжение
Но не нашел. А жаль.
P.S. Стыки между тайлами страшненькие. Чего не скажешь про оригинал.
Ну, дело вкуса. мне нравятся.
>враги не видят персонажа, когда он залез в угол - баг или фича?
Кстати в версии от Сиерры были ещё ниши в стене, где как раз можно было запрятаться - чтобы враги не видели. Я сначала подумал, что тут тоже чет такое.