Мой путь в разработке игр всегда отличался нестандартными движками и языками программирования. Впервые с геймдевом я познакомился на курсе по разработке игр на Java, и забросил это дело примерно на год после его окончания, так как там всё было сложно и непонятно.
Через некоторое время после этого я вернулся в разработку, на этот раз на Roblox Studio. Своих игр я там так и не сделал, кроме парочки на геймджемы, зато успел поработать гейм и левел дизайнером, и понял что эти отрасли мне нравятся больше всего. Там же я познакомился с телеграм сообществом Roblox Studio, которое перешло в версию 2.0 уже под моим руководством. Без него этого сайта бы не существовало.
Однако время шло, Roblox успели заблокировать, да и возможностей его движка мне уже было мало. На какое-то время я снова забросил разработку и сконцентрировался на учёбе и сообществе. Так продолжалось, пока я не решил углубится в тему ECS, и не нашел таким образом Bevy – уникальный движок, единственный, построенный на основе ECS, да так, что на нём реально можно делать игры.
Надо сказать, нормальные движки я тоже успел попробовать, но ни Unity, ни Godot моего внимания не привлекли.
Что вообще такое Bevy?
Bevy – это опенсурсный движок, построенный на основе Rust и ECS.
Плюсы Bevy
- Очень быстрый ECS – самый быстрый из всех на рынке. Если для игры важна оптимизация, Bevy может быть хорошим вариантом.
- Довольно быстрая компиляция, если нормально настроить.
- Маленькое, но очень сплоченное сообщество.
- Быстрый рост. За последний год движок скачали в 3 раза больше человек чем за ВСЮ его предыдущую историю.
- Хоть это не очень известный движок, на нём уже есть игры. Самая известная из них – Tiny Glade, медитативная игра про строительство замков, которая является пожалуй самым лучшим примером процедурного арта в видеоиграх.
- В движке довольно легко разобраться, если уже знаком с растом и концепцией ECS.
- Кросплатформенность – легко делать игры для любых ПК/Мобилок. С консолями пока сложнее, так как в сообществе мало (считай нет) людей которые делают на них игры.
- Активное развитие – движок обновляется в среднем по три раза в год, и каждое его обновление значительно его улучшает.
- Движок написан на Rust и использует его как ЯП для разработки.
Минусы Bevy
- Главный минус – Bevy всего 6 лет, и это довольно нишевый движок. Хотя про него всё больше и больше говорят в индустрии, он ещё не успел собрать достаточно людей чтобы иметь библиотеки на всё или много обучающих материалов. Так что надо быть готовыми к тому, что примерно вся информация, которую можно почерпнуть о его последней версии, будет на одном сайте примерно в 40 статьях.
- Мало готовых ассетов – как я уже говорил выше, библиотек (
плагинов) под Bevy ещё мало, как и других готовых решений, так что иногда приходится делать самому то, о чём на условном годоте даже не подумаешь. - Редактор. Это ещё одно слабое место, так как сейчас есть редакторы только от сообщества, а официальный будет не раньше чем через две версии.
- Движок написан на Rust и использует его как ЯП для разработки.
Мои мучения
Так получилось, что все игры которые я хочу делать или когда-нибудь могу захотеть, хорошо ложатся на ECS и в частности Bevy, хотя в целом очень маленькой доле игр он подходит.
Быстрый питч игры
Жанр: 4X градостроитель/башенная защита/управление ресурсами
Постройте город посреди зомби апокалипсиса, расширьте его до империи, соперничайте с другими фракциями и восстановите человечество из пепла.
Главный цикл: строительство поселения → защита его от зомби с помощью башен → рост поселения → экспедиция для нового поселения, так как у каждого места есть только 2-3 ресурса, а для продвижения в исследовании нужны все.
Я довольно далеко продвинулся в её разработке, сделал уже поиск пути для врагов, строительство зданий, производство, прекрасную систему десериализации данных зданий из джсона, чтобы мне и моддерам было удобно добавлять контент, даже начал работать над графикой. Вот пара скриншотов из ночной фазы, когда нападают враги.:
Но сейчас я остановил разработку этой игры, хотя очень надеюсь продолжить её в будущем.
Что же пошло не так?
Несколько довольно простых вещей.
Во-первых, это мой первый проект на Bevy, и я не знал чего ждать от движка и где именно могут возникнуть сложности. То, что я предполагал самым сложным, в результате не вызвало никаких проблем – сложные алгоритмы вроде поиска путей на этом движке писать довольно приятно. Зато оказалось, что для того освещения которое я хочу не существует готовых библиотек, и мне пришлось бы писать его самому. То что вы видите на скринах – явно не идеальное освещение и совсем не то что мне хотелось.
Во-вторых, чёртов диздок. У меня было представление о том, какую игру я хочу сделать, но оно было (как и любое представление) недостаточно чётким, чтобы по нему сделать игру. Если бы я сразу начал делать дизайн документ, я бы точно знал что мне надо делать дальше и как именно реализовать ту или иную механику.
Что теперь?
Я поставил ту игру на паузу, и ищу идеи для новой. Сейчас у меня есть одна, я сделал ей концепт док и буду рад если вы его оцените ![]()
Концепт док2_removed.pdf (4,7 МБ)


