КОД 6 :: Super Rainbow Cat
В этой простой игре, сделанной Decoy (большая часть кода), мной (генерация, оптимизация, исправление багов), и ViralHaze (графика), вам предстоит играть за кота, бегающего в небе по радугам.
Изображение: происходящее в игре
История в деталях будет раскрыта немного позже; пока ограничимся тем, что все начинается с того, что главный герой (по-случайности, полосатый кот) понимает, что это прекрасный день для прогулки по радугам.
Геймплей состоит из активного перемещения по упомянутому разноцветному «рельефу», прыжков через обрывы, и избежания врагов. Все довольно разнообразно, миловидно, и сопровождается хорошей музыкой.
Управление:
- Z — прыжок
- X — атака
- M — включить\выключить музыку
- F2 — рестарт игры
- F1 — экран, содержащий все это, и еще немного полезной информации.
Действия:
- Цель игры — набрать как можно большее количество очков
- Очки начисляются за пройденное расстояние
- Скорость движения постепенно увеличивается
- Падение вниз (за экран) или столкновение с крысами\поездами закончится проигрышем
- После проигрыша есть возможность отослать результат в онлайн таблицу рекордов (ссылка будет прикреплена позже)
- С помощью атаки можно убивать крыс
Скачать:
- Solidfiles: http://www.solidfiles.com/d/e69f033e64/
- Dropbox: http://dl.dropbox.com/u/3594143/Games/Super%20Rainbow%20Cat.zip
Хорошего дня.
- 04 июня 2012, 05:37
- 07
Классно всё подготовил и оформил. Огромное тебе спасибо. Прости, что у меня не было возможности сделать это самому :(
Красиво! Только один раз застрял между радугой и землей.
Ещё один повод быть осторожным :)
Игра хорошая, но я в такие бегалки ещё на телефоне наигрался. Разрывы на радуге классно смотрятся. Котик милый. Мне понравился симпатичный экран с информацией по F1. Только вот там написано про то, что можно отправить очки в онлайновую таблицу рекордов. Но ведь отправить-то – это полдела, надо ж её ещё и посмотреть. А как это сделать – ни слова. И в игре она не показывается. Так где её искать-то? А ещё в начале бега какая-то белая штука пролетает в верхнем правом углу – это что? И начальная заставка – она просто так или смысл имеет?
В апдейте исправим эту оплошность с таблицей. Вот сама таблица, кстати. По поводу белой штуки - в игре могут ВНЕЗАПНО вылетать из низа карты поезда, которые могут сбить героя или крыс.
Не ожидал увидеть себя на третьем месте:3 На мой взгляд онлайн таблица - это хорошая идея для игр на гаминовские конкурсы.
Уже на четвёртом :D
За был главное: почему крысы побивают кота?!)
Потому что он не бьёт их :D
Ещё немного поигрался. Один раз "поезд" сбил крысу, а она сбила меня. Непорядок. Ещё нашёл такой недостаток, который, впрочем, можно назвать и фичей: скорость увеличивается, а разрывы в радуге - нет.
А вот одну важную недоработку забыл описать ранее. Кот находится посередине экрана, но ведь, всё, что позади него - совсем неважно: врагов нет, никто за ним не гонится. А вот обзор того, что впереди, критически необходим. Так почему бы не поставить кота левее.
А ещё моё любопытство вызвала плавно изгибающаяся радуга. Как она была сделана?
Ну почему же, это классно :) Мало ли, что может произойти, нужно быть готовым ко всему. Хотя, кстати, такой случай встречается впервые.
Так и должно быть. Я думаю, скорости вполне хватит. По сути, игра не бесконечна, ведь рано или поздно наступит момент, когда даже человек с молниеносной реакцией перестанет успевать.
Пискель = экземпляр. Создано с помощью путей.
UPD: Kot211 выбился в лидеры в таблице рекордов.
UPD: Сейчас мы работаем над апдейтом 1.1 и думаем над портом на Android.
А зачем андроид-то?
А почему нет?
Да это круто!
По сути... Любая игра конечна, ведь рано или поздно игрок перестанет жить.
Как это понимать? Если прямо, то выходит что в игру сразу тысячи экземпляров на экране, что не вяжется со скоростью игры.
Оптимизация. Плюс каждый раз, когда кончается сектор, используется особая магия и комната перезапускается.
Вкратце: GameMaker, как вы возможно знаете, поддерживает тип ресурса "путь" (path).
Пути в GameMaker - по сути, квадратические кривые Безье.
В начале каждой секции генерируется такая кривая, обозначающая распределение высот радуги по уровню.
Потом создаются "маркеры", обозначающие будущие дырки в радуге и нависающие острова.
По мере прохождения игра уничтожает радуги, вышедшие из вида, и создает новые радуги (прямоугольные объекты с текстурой шириной 1 пиксель) на правом краю экрана. После создания, каждая радуга проверяет расстояние до ближайшего маркера, и делает соответствующие действия - для дырок в радуге "середина" уничтожается полностью, а края искажаются по соответствующей формуле; нависающие острова добавляются из самих объектов радуги на определенном смещении по оси Y.
Таким образом за один раз на экране может находится от 640 до ~900 объектов, перебрать которые один раз за кадр не составляет никакого труда.
Так же рассматривался вариант разработки оптимизированного алгоритма проверки столкновений с кривой, но был отброшен в связи с нехваткой времени и общим отсутствием нужды в нем (за время тестирования не было выявленно компьютеров, на которых игра работала бы медленно из-за проверки столкновений).
Весьма поучительно.
Кстати, у меня очень слабый комп. Супер Реинбоу Кэт работает отлично.
Мудро.