12
Фев

Craftgame

Ниже представлены тезисы, с которыми я пойду на конкурс с Craftgame.
На заре игровой индустрии для написания компьютерной игры компании разрабатывали свои собственные движки. Сейчас же создать игру может даже школьник, используя готовый движок, например Unity, Unreal Engine и CryEngine. Проблема только в том, что игры, созданные на этих движках, используют лишь малую часть того огромного потенциала, что они могут предоставить. К тому же использовать их не очень удобно для конкретно поставленной задачи, хотя бы по той причине, что нужно тащить за собой тонну библиотек, без которых движок не запустится.

Я поставил цель написать свой собственный игровой движок со ставкой на дальнейшее развитие и выход на площадки цифровой дистрибуции. Мне уже давно интересно, как создаются игры с нуля.

В качестве основного языка программирования я выбрал C++. Он быстрый, поддерживает ООП и огромное количество библиотек. В качестве вторичного языка для скриптов был выбран Python.
Графика реализована на OpenGL 3.3.

Я позаимствовал идею воксельного (кубического) мира у игры Minecraft. Этот принцип прост, проверен временем и пользуется популярностью на рынке. Делать очередной клон Minecraft не имеет смысла, поэтому нужно добавить отличительную особенность: движок должен быть максимально гибким и простым, чтобы сообщество могло создавать свои модификации, механики, блоки. Про графику тоже не стоит забывать: на дворе уже 2018 год, и игра должна выглядеть достойно. Да и сама игра должна быть добротной, и не важно, что её создаёт лишь 1 человек в возрасте 16 лет.

С начала разработки прошло 1,5 года, игра находится в стадии разработки, но движку уже есть чем похвастаться:

  1. UI интерфейс с полной поддержкой анимации и сглаженными шрифтами, загружаемые из формата *.ttf;
  2. Поддержка моделей популярных форматов: *.fbx, *.obj, *.dae, *.3ds и других;
  3. Поддержка скелетной анимации
  4. Загрузка текстур из изображений *.png, *.jpg;
  5. Загрузка ресурсов через HTTP;
  6. Поддержка джойстика;
  7. Поддержка сетевой игры с неограниченным количеством игроков, реализованной на собственном протоколе;
  8. Графика:
    • Screen Space Local Reflection (отражения в экранном пространстве)
    • Screen Space Ambient Occlusion (затенение в экранном пространстве)
    • Screen Space Directional Occlusion (переотражение света в экранном пространстве)
    • Physical Based Rendering (рендеринг, основанный на физических законах)
    • Normal mapping (карты нормалей)
    • Shadow mapping (тени)
    • Гамма коррекция

Цель проекта, конечно же, игровая. Но игра с таким же успехом может быть использована в образовательных целях, чтобы учить детей программировать на простом, современном, красивом языке Python, а не на пресловутом и давно устаревшем Паскале. Дети, в большинстве своём, знакомы с Minecraft, а Craftgame сделан по его подобию. Им не придётся перепривыкать, а знакомство с программированием будет происходить в привычном мире – в кубическом.

Отступление.

Я вообще хз, смогут ли бабки, которые принимают конкурсные работы, понять хоть что-то из того, что я изложил, но это уже их проблемы, я расписал как есть. Учитывая, какие дикие ограничения и требования стоят на эти тезисы, это ещё не самое худшее.

Не все так просто

После написания тезисов я со спокойной душой отправил их своему преподу на проверку. Препод, хоть я и указал его как руководитель проекта, по факту нифига не делал: он только направил меня на кружок по программированию в 6 классе и все. Кстати, у него уже новенький смартфон, примерно за 15к, т.к. вместе с ним в 7 классе я также ходил на конкурсы, но с другим проектом.

Препод сказал, что все ок, можно отправлять тезисы, но проблема в том, что…

В общем, хочу выразить благодарность гениальным авторам сего сайта: мне пришлось отбросить половину текста и придумать столько же нового. В информационном письме об этом было ни слова.

За полчаса я заполнил все поля и отправил тезисы. Ожидание.

Они приняли

Заявка принята, вместе со мной ещё 8 человек.

Остаётся только ожидать 28 февраля.

Добавить комментарий