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. Стыки между тайлами страшненькие. Чего не скажешь про оригинал.
Ну, дело вкуса. мне нравятся.
>враги не видят персонажа, когда он залез в угол - баг или фича?
Кстати в версии от Сиерры были ещё ниши в стене, где как раз можно было запрятаться - чтобы враги не видели. Я сначала подумал, что тут тоже чет такое.
В детстве фанател от этой игры, в частности, от версии с монахами на винде. Много уровней в редакторах делал для нее и для The Incredible Machine. Добавьте сетевой мультиплеер, можно было бы зарубиться :D
По хотситу тоже угорали в детстве в виндоусовской версии)
Я на Windows по Age of Empires когда-то угорал :-) И сейчас иногда в неё поигрываем по сети.
Да-да, это и есть Сиерровский Lode Runner 2000. Хотя, судя по видео тут выше приведенному, был порт ещё и на PlayStation, я не знал. Как, впрочем, и про версию под БК-0010.
Не придумывайте старым играм новые названия, не было такой игры.
От Сиерры были игры "Lode Runner: The Legend Returns"(1994) и её же сетевая версия "Lode Runner Online: The Mad Monk's Revenge" (1995).
Это всё виноват диск "Хитовые игры №3". На нём вообще подписано "Code Kunner On-Line".
А игра вот эта.
Значит игра, скорее всего, не "эта", а Lode Runner Online: The Mad Monk's Revenge (1995), что является дополненной версией TLR, но с возможностью играть по сети и модему. Также она выходила только в версии с CD-аудиотреками. TLR же выходила как в версии на CD, так и в версии на флоппи, где музыка была MIDI (есть версия как под Win 3.xx, так и под DOS).
Я привёл скриншот именно той игры, чьё главное меню помню, так что это точно она.
Т.е. именно вот эта
А не эта
Прям уверен?
Ну да.
На всякий случай хочу поинтересоваться... А как сюда вообще эту сетевую игру приткнуть ? Несколько человек по одному лабиринту бегает ? Вроде не то.
Вот так.
Не помню, правда, там те же уровни для мультиплеера или другие.
Я когда-то эту версию игры видел. Это вариант "вдвоем по одному уровню". По-моему, в моем случае играть будет слишком просто, либо надо специальные уровни выдумывать более-менее разделенные на части.
Забавно на 3:46 врагов внизу подвесило.
Там отдельная "кампания" для двух игроков была) уровней поменьше
Есть инстедовская версия - http://instead-games.ru/game.php?ID=84
225 уровней сконвертированы с ZX Spectrum, несколько графических вариаций.
Я эту версию помню. Но моя мне нравится куда больше :-)
Ого, на Инстеде уже можно делать полноценные платформеры?
Ну шо, даёшь КОД про Lode Runner?
Хорошая идея, участвовать скорее всего не буду, но поиграл бы.
Про котика еще норм - http://instead-games.ru/game.php?ID=149
Каждый программист должен написать свой(ю)...
Графику было бы лучше украсть из классики, но добавить цветных пикселей.
Ну, тут дело вкуса. На мой взгляд, классика уж очень топорно сейчас выглядит. Да и вытаскивать откуда-то графику - это не наш метод :-)
Похоже, это никогда не устареет:
:-)
В моем случае тут дело просто в том, чтобы сделать самостоятельно. Т.е. в этом и есть смысл и именно от этого я получаю некое эфимерное чувство, что я живу не напрасно :-)
Только оригинал Lode Runner - это и не БК и не Спектрум, а Apple II. Много БК-шных уровней были сперты один-в-один с Apple'а.