Предисловие: О чем это вообще?

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ы. Может, у нас будут и другие причины для таких жертв, но только не технологические.

Вот теперь, когда направление выбрано, ПОЕХАЛИ!

Посмотрим, как далеко ВЫ сможете пройти 🙂


Leave a Reply

Your email address will not be published. Required fields are marked *