Получи случайную криптовалюту за регистрацию!

Программируй игры, чтобы научиться программировать движки Инт | VG

Программируй игры, чтобы научиться программировать движки

Интересная статья от engine разработчика Blizzard. Она основана на ещё более старой статье.

Видел много ребят, которые делают свой игровой движок, не имея какой-то цели. В случае движка, цель - это игра. В этом и есть смысл существования движков - делать на них игры. Просто от "движка" смысла то не особо много, на нём ничего не сделаешь, ну или это будет тяжело, так как движок очень "абстрактный", слишком general-purpose.

Жанров игр огромное количество. Как бы ты не старался, скорее всего, движок будет хорош для одних игр и плох для других. А если не иметь вообще никакой цели - будет плох для всех.

Например, Unity. Его создавали опытные разработчики. Но в свои ранние дни Unity был плох, потому что делался как general-purpose engine. Да и сейчас это остаётся большой проблемой - сами разработчики движка на нём не делали какого-то приличного проекта. Со временем, конечно, Unity становился лучше, исправлялись многие ошибки.

А вот с Unreal другая ситуация, он делался для определённых игр (Unreal Tournament, Gears, Fortnite). Поэтому в принципе, как только он "вышел в свет", на нём можно было, например, сделать качественный FPS.

Это мне напоминает semantic-compression programming. Зачем заранее думать, какой будет API, если можно написать рабочий код, а потом "собрать" из него API? С движками то же самое: в процессе создания придется совершать огромное количество решений, и без игры, конечной цели, не будет хорошего способа понять, правильный ли был сделан выбор.

Про свой опыт скажу так: я не закончил ни одной игры, но все мои движки делались под что-то "особенное". Например, воксельный движок я делал, как клон Cube World, то есть была чёткая цель.