Разработка мобильного 2D раннера
Предыстория
Всем привет! Впервые пишу что то на этой платформе, поэтому решил начать с небольшой предыстории.
Играю в игры с самого детства (как и все здесь, конечно же). Так уж получилось, что полюбились в основном FPS игры, особенно серия FarCry. Но к годам 13-14 наскучило тупо играть, захотелось делать что то свое. И конечно же, будучи шкальником, я слепо верил, что можно просто так взять и сделать FPS игру AAA класса. Вообщем потихоньку начал изучать программирование. В погоне за реалистичной картинкой и низким порогом вхождения перепробовал все наиболее известные движки:
- Unity - простота и удобство, местами слабоват
- CryEngine - поразил кншн своей красотой... и багами
- UnrealEngine - юнити на максималках - сложновато
В итоге спустя почти 6 лет в здравом уме вернулся обратно с чего и начинал - на Unity, дабы наконец то уже сделать что то. Можно считать это как студенческий проект в плане саморазвития. Решил начать с простого 2D проекта. Выбрал плоский дизайн для графики (Flat Design), посмотрел основные уроки по его реализации в Illustrator, придумал концепт игры. Итак, перехожу к основной части.
Раннер
По сути сейчас я имею лишь некоторые наработки с основной механикой, графикой, играбельным управлением и тестовой сценой. Вот небольшое демо:
Идея: парниша с ракетницей бежит по локации с препятствиями, где периодически попадается "манна небесная" в виде ящика с рандомным лутом.
При это предполагается, что лут может быть как полезным, так и навредить (но пока еще не придумал). Сейчас же реализовал только jetpack - для демонстрации.
Управление: тап по левой части экрана - прыжок, по правой - огонь. В дальнейшем можно будет поменять в настройках, когда будет меню.
Окружение: весь стафф в виде кустиков, травы, цветочков и деревьев решил сделать динамическими, чтобы сцена выглядела живо и интересно в духе Hollow Knight. Реализовал как анимации спрайтов с изменением размера и поворота при взаимодействии с коллайдером перса, ракеты или падающего ящика.
Непосредственные объекты, с которыми игрок может взаимодействовать, вывел на передний план и добавил тень, дабы создать эффект нахождения на пути игрока (сложно сказал, но я надеюсь понятно). Сюда относятся 3 вида препятствий: динамит, колья и шар с бомбой, а также батут. Для батута сделал Ghost эффект.
Фон, или Background с разными слоями, естественно с parallax, куда же без него в 2020. Как можете заметить, облака на заднем плане дергаются, но а что поделать - оптимизация в последнюю очередь :D
Камера: движение за игроком только по оси Х, ну и эффект тряски камеры при взрывах и выстрелах оформлен как и все почти в этом проекте - анимацией.
Планы
Конечно же это далеко не все. В таком деле главное начать, а когда есть результат, есть и мотивация делать что то дальше. Что же можно занести в мой TODO лист?
1. Меню и совершенствование UI
2. Разработка других "биомов" и локаций. В каждом из таких будет определенное число уровней, но по прохождению определенного количества открывается доступ к бесконечному раннеру
3. Собственно сам бесконечный раннер
4. Выполнение всевозможных заданий на уровнях за вознаграждение (аля уничтожить N препятствий и т.д.)
5. Кастомизация/улучшение персонажа и оружия
6. Оптимизация? Громко сказано, насколько я понял на мобилках не бывает выше 30 FPS. Если бывает - исправьте меня плз)
6. Внутриигровые покупки и реклама
7. Продвижение
Если не лень написать коммент, интересно будет посмотреть и ваши предложения или пожелания.
С вашего позволения оставлю ссылочку на свой devlog, вдруг кому то интересно будет.