Приветствую вас в серии статей на тему создания игр для платформы Я.Игры. В этой серии я буду раз в неделю выкладывать свои успехи и неудачи за неделю. В качестве технологий я специально выбираю те технологии, которые не являются основными для меня, но при это на языке JavaScript.
Начал я с того, что захотел написать платформер, я уже делал платформер для хакатона в команде с еще одним крутым разработчиком, но тогда у нас были ограничены сроки и мы делали игру за 2 недели, но Яндекс.Игры удалили ее за маленькую активность. Это был простой платформер. На тот момент мы только знакомились с геймдевом и как итог, мы писали всю физику и управление сами с полного нуля и подключали какие-то неизвестные нам плагины. Короче все по заветам хакатона "тял-ляп и в продакшен".
В итоге мне в голову пришла идея, а что если спустя время, я попробую написать платформер снова. Сколько времени уйдет на игру и станет ли она лучше в плане кода. Начал я с того, что вспоминал стек технологий, искал шаблоны для проекта, а также готовые асеты. В результате чего по разбиравшись какое-то время я получил вот такие картинки, которые как-то работают, ну почти....
Еще немного по игравшись с физикой получилось дойти до вот такого решения:
Я примерно понял, что может, а что нет движок и мои руки начинающего кодера и начал накидывать небольшой геймдев док, в котором я собирал все механики, которые хочу сделать, конечно, в ходе разработки что-то может не получиться или измениться, но целимся мы в него. Часть этого самого документа:
Далее я пошел искать более красивые асеты, чтобы игра приняла какой-то внешний вид за который мне было бы не стыдно. Нашел крутые асеты в мультяшном стиле, которые кажется отвечали всем моим хотелкам, разве что пришлось купить подписку для их использования:
Для того, чтобы создавать уровни я очень сильно хотел использоваться какой-то визуальный редактор, так как создавать уровни через эксель таблички в прошлом мне не понравилось. Я быстро уставал и не видел то, каким маленьким по факту получается уровень, поэтому было принято решение использовать тайлмепы, чтобы создавать уровни, а потом на из основе рисовать карту. Процесс создания уровня теперь для меня выглядит так:
Справа выбираем элементы, а в середине рисуем уровень. Применив новый фон, новый асет персонажа, движущуюся платформу на которую можно запрыгнуть снизу я получил вот такую картину:
Далее я причесал код, сделал репозитория для проекта и свой первый коммит. К сожаления за неделю я не успел применить асеты для мира полностью, но время уже подошло к концу.
Итоги недели:
- костяк для проекта, где можно рисовать карту через UI;
- базовая физика;
- управление персонажа через кнопки на компьютере;
- платформы, которые передвигаются по горизонтали;
- платформы на которые можно прыгнуть снизу;
- фоновое изображение;
- камера, которая следит за персонажем;
- асеты для персонажа.
Подписывайтесь, через неделю будет следующий статус по проекту, впереди еще очень много планов :)