Попытки понять Godot
Я всегда пишу свои игровые движки для своих игр. Я устал объяснять окружающим, почему, ведь мнение о том, что свой движок писать нельзя, тиражируется на каждом углу. Я писал свои движки до того, как родился тренд на готовые решения и понимаю, зачем это нужно мне и моим проектам, и почему другие профессионалы часто делают этот выбор.
Но незатыкающаяся народная молва о том, что на готовом-то движке проще и эффективнее, ведь его десятилетиями пилили лучшие умы человечества, а не я, делает своё дело, и время от времени я проверял, так ли это: пробовал осваивать GameMaker, Unity, или, вот, Godot. Без особого успеха, для моих целей всё это оказывалось не применимо.
На днях возник очередной раунд: я решил попробовать освоить Godot. Причины две: я решаю, стоит ли перепиливать старые наработки для возможного нового проекта, или же готовый движок действительно эффективнее; и также мне нужно получить экспертизу, чтобы иметь возможность ответить на вопросы, касающиеся другого проекта.
Проекты — простые 2D игры с пиксельной графикой, аутентичные 8-16 битной игровым эпохам. Соответственно вопрос я рассматривал именно с этой точки зрения. Думаю, для игр иного рода, более современных или 3D, выводы будут иными. Но у меня конкретный практический интерес: решается моя задача или не решается.
Скачал последнюю стабильную (это важно) версию 4.7.2 и начал тыкаться, пытаясь создать примитивное подобие Super Mario Bros: простой уровень, перемещается персонаж, взаимодействие с фоном. По идее, движок, который разрабатывается уже 12 лет, и применялся в реальных проектах, без проблем может решить эту задачу за считанные часы. Совсем без движков это делается за день. Спойлер: я потратил три дня, получил крайне негативный опыт, и задачу не решил ни в каком виде.
Мои ожидания: движок решает базовые задачи — подготовку и организацию ассетов (наборы тайлов, карты уровней, наборы спрайтов), базовую физику, столкновения, возможно камеру. Вывод на экран, в конце концов. Я же пишу игровую логику на скрипте. При этом движок должен дать мне достаточно контроля, чтобы игра управлялась так, как я хочу: это главное, что разработчик создаёт в играх подобного рода, игровой опыт, конкретное узнаваемое ощущение от взаимодействия с игрой.