GameDev, 3D, cross-platform, C++, Visual Studio, Android, Windows, OpenGL ES.
Этот блог сложился как практически пошаговая инструкция (обучалка) по написанию собственной игры с нуля.
Написать свою игру – моя давняя мечта. И теперь я знаю как это сделать правильно.
Есть в голове несколько идей что бы это могло бы быть, окончательно пока еще не определился. Может, как-то так?:
Или даже лучше?
В любом случае, что бы это в итоге ни оказалось, все-равно достаточно большая часть пути будет ОБЩЕЙ для ЛЮБОГО проекта. И я приглашаю Вас присоединиться ко мне на этом маршруте. Идея и задача этих заметок – построить практически применимый Фундамент для Реального Коммерческого Проекта с нуля.
Готовы? Тогда поехали! Только куда? Надо б сперва выбрать направление.
Платформа: Android, iPhone, PC, Mac, Xbox, и что там еще? Чтобы не маяться с выбором, почему бы не попробовать cross-platform? Для начала хочу сосредоточиться на PC/Windows и на Androidе. Если получится такой cross-platform (mobile + desktop), то остальные платформы – по аналогии.
Графический движок/API: Боюсь ограничить себя какими-то концепциями, фрэймворками и возможностями существующих движков. Опять же, хотелось бы обойтись без Мегатонных “прицепов”. Поэтому не буду рассматривать для себя такие высоко-уровневые варианты как Unity, Unreal, GameMaker, Godot и другие подобные. Хотя, с другой стороны, если Вы планируете выпустить очередной Doom-ообрАзный клон, то упомянутые движки, возможно, и правильный выбор. А поскольку я хочу чтобы моя игра все-таки отличалась от других, то мне понадобится низко-уровневый доступ к 3D и что-то cross-platform-совместимое. Выбор вроде огромный: DirectX, OpenGL, Vulkan, Metal, что-то пропустил? Однако, если присмотреться, то НИ ОДИН из них не покрывает ВСЕ платформы КРОМЕ OpenGL ES, который может работать и на PC, и на Android, и на Mac, и на iPhone. Низкоуровневый вариант – OpenGL ES 3.2.
Язык: C++, Java, C#, Objective-C, Kotlin, Python, что еще? И снова, наше cross-platform требование оставляет нас с одним единственным классическим выбором – C++.
Microsoft Visual Studio предлагает все это, включая даже какие-то cross-platform штучки, так что с IDE тоже определились (как самый “native” для C++). Тем более что “Community edition” – бесплатный.
“Подвох” этой комбинации (Visual Studio, C++ and OpenGL ES) в том, что она не родная ни для одной платформы. То есть на любой платформе придется напрячься, чтобы заработала. И все же это лучше чем, скажем, отказаться от поддержки мобильников ради DirectX, или от поддержки Apple ради Javы. Может, у нас будут и другие причины для таких жертв, но только не технологические.
Вот теперь, когда направление выбрано, ПОЕХАЛИ!
Посмотрим, как далеко ВЫ сможете пройти 🙂