ThN World Дневник разработчика №1
Начинаю с сегодняшнего дня свой еженедельный отчет о разработке Инди игры на Godot 4. Надеюсь получится не разочаровать интересующихся это теме людей, получить от вас интересные идеи которые можно добавить в игру и полезные советы по реализации механик. Делюсь свежеприобретенным опытом. (видео в конце статьи)
Если коротко о задумке, то планируется игра жанра платформер в мире приближенном к киберпанку смежным с соулсом. О сюжете говорить пока не буду.
За первую неделю с небольшим разработки, в первую же очередь создал 2 локации, собственно первый уровень, а так-же комнату для тестирования и разработки механик новых механик игры.
Через какое то время тестовая комната наполнилась:
- Анимированной травой, если на нее наступить то она помнется, и встанет обратно если сойти.
- Добавил стену с газетами, которые можно читать.
- Добавил возможность "выгрызать" уже нарисованные участки карты заполняя их водой и лужами в будущем. Пока что это просто черная текстура.
- Добавил снег используя встроенный генератор частиц
Вскоре я столкнулся с первой серьезной проблемой. Встроенный генератор частиц в Godot 4.2 не подходит для воплощения моих желаний. Потому пришлось написать свой.
Я хочу, чтобы у моих частиц была возможность столкновения с объектами. Чтобы пепел летящий из костра сталкивался с персонажем, чтобы искры от выстрелов сыпались по полу, чтобы кровь персонажа разбрызгивалась по локации.
Простейшая функция в которой частица летит из заданного места под заданным углом с заданной силой. Хоть где то математика в жизни пригодилась. В последствии для разных частиц можно будет использовать более интересные функции. Например для снега - синусойдную.
Проблема в проблеме. В какой то момент времени, если частица набрала слишком быструю скорость, то она между кадрами могла пролететь насквозь объект от которого должна была отскочить. Пришлось добавить отслеживающую коллизию, которая работает в момент, когда частица превышает допустимую скорость. Если эта коллизия замечает объект в радиусе будущего кадра, то скорость полета частицы снижается в два раза на один единственный кадр. От чего падение частицы становится естественным, частица не пролетает насквозь на большой скорости, а разницу в скорости в одном кадре увидеть невозможно.
Результат на первую неделю разработки (видео):
В заключение хочу сказать что все текстуры и анимации это так называемые "заглушки на первое время". Когда придет время я перерисую их в более проработанные варианты. Пока мой навык позволил нарисовать только такую графику.
Так как это мой первый дневник, хотел бы узнать ваше мнение, о чем мне стоит говорить, что интересно, и в какой манере это подавать как вам кажется. Будет интересно почитать так же ваши идеи по тому что можно добавить в игру.