SNAKE.BIN
Когда я только начинал свой путь в геймдев, старожилы форумов по Game Maker всегда советовали новичкам, принесшим в своем клювике супер идею по созданию Stalker 2D, Counter Strike 2D, RPG с генерацией мира с корованами и «рассыливающимися стенками», переключиться на что-то попроще. Все сводилось всегда к арканоиду, змейке или тетрису (хотя больше всего мне запомнились призывы начать делать арканоид). Естественно, их никто не слушал и бесчисленные новички продолжали создавать бесчисленные темы на форумах с своим личным Magnum Opus 2D. Разумеется, ни у кого ничего не вышло.
Итак, с тех пор прошло уже больше 10 лет, форумы успели практически умереть, а Game Maker 8.0 до сих пор пользуется определенной популярностью (что уму непостижимо). Что касается меня, последнюю неделю я закрываю свой гештальт по созданию змейки на Game Maker Studio 2.
Казалось бы, нет ничего сложного в создании змейки, но проблемы возникают не там, где их ожидаешь. Управление. Заставить «классическую» змейку вменяемо управляться с помощью сенсорного экрана смартфона оказалась непростой задачей. В течение трех вечеров (игра совершенно «пет-проджектовская», поэтому делается по вечерам после работы), мои друзья и сестра были вынуждены тестировать различное управление змейкой, оставляя свои едкие, но очень полезные комментарии (потому что стороннему человеку какие-то вещи всегда виднее, чем разработчику, особенно UX).
Текущая итерация управления змейкой мне кажется уже довольно неплохой. Получается управлять адекватно даже на +/- высоких скоростях. Но достичь того же уровня контроля, что на моей Nokia 1100 не получится, т.к. в некоторых задачах кнопки > сенсор. Но я этого и не ждал — подобные особенности будут учитываться при проектировании уровней и геймдизайне фич игры.
В планах есть проверить еще один тип управления — движение в сторону тапов. Но в нем тоже есть подводные камни.
С программированием самой змейки проблем не возникло. Зато я смог в полную силу использовать новые фичи GML, такие как структуры, классы и методы (да-да, не нужно смеяться, товарищи-программисты с «взрослыми» языками. Мы мучались все эти годы, но теперь жить стало куда проще и веселее. Порадуйтесь и за нас)
Шейдеры написаны на GLSL ES, их два и они достаточно просты. Блум сделан размытием двухпроходным гауссовым блуром уменьшенного в 4 раза игрового экрана, потом режим наложения для яркости свечения. Плюс дополнительный слой того же свечения, но с изменяемой по синусоиде альфой — для небольшого мерцания. Второй шейдер — дисторсия и эффект развертки (scan lines). Выгибаем текстурные координаты, а потом с помощью тех же синусоид вычитаем линии из цвета изображения.
Как вы поняли, в визуале я попытался сымитировать старые терминалы с монохромным дисплеем, а-ля fallout. Результат мне нравится, на мобильнике выглядит интересно.
Пока писал заметку, подумал, что можно приложить и apk-шку с последней версией управления. Вдруг, что-то полезное можно будет из этого извлечь.
Лично у меня после скачивания apk не запускается, я не знаю в чем причина - через кабель и adb эта же apk устанавливается нормально. В андроидах не спец, поэтому сам не знаю в чем дело.
Разумеется, я не преследую никакой коммерческой выгоды с этим пет-проектом. Пытаться заработать на классической змейке? Ну такое. Для меня важно, что я получаю удовольствие в процессе, связь с социумом, посредством этой небольшой заметки, ну и гештальт из форумного прошлого будет частично закрыт.
Что будет дальше? Может быть арканоид?