12

Relict Engine: У нас было два пакетика травы

Серия Relict Engine

Как и обещал, т.к. NauEngine мне, мягко говоря, не понравился (пока!), то начинаю новую серию постов о разработке собственного движка Relict Engine для проекта Cold Fusion, о котором можно немножко почитать в соседней серии "Вся наша жизнь спираль".

Пост вводный, поэтому технической информации практически не будет.

Итак, откуда же взялся Relict Engine?
Его история начинается в конце двухтысячных годов, когда еще во всю кипела работа над ремейком игры Elite3: Frontier First Encounters и переносом ее на DirectX9. Тот проект носил название FFED3D, и хотя проект добрался только до версии бета 12 (сначала наша группа по ряду причин забросила проект, а год назад, увы, умер разработчик, который его поддерживал до последнего времени), идеи, которые мы хотели в него внедрить до сих пор живы. Сам проект изначально строился на оригинальной кодовой базе (ассемблер, разобранный ребятами из JongWare + наш код, который собственно заменял оригинальные вызовы на современные), но в какой-то момент пришло понимание, что оригинальный игровой код дальше использовать нельзя, и нужно писать что-то свое. Так, Relict Engine (тогда под другим названием) и появился.

Сейчас, конечно, его реализация и подходы, которые я тогда использовал смотрятся, мягко говоря, убого. Однако, идейную его составляющую я планирую перенести в его современную версию.

Итак, "у нас было два пакетика травы"...

Конечно, писать полностью движок с нуля это очень круто, но в тоже время крайне не благодарное, да и по большей части, не нужное занятие. Поэтому, мы поступим немножко иначе.

План примерно такой:

1) Написать основной framework для нашего движка. Это полностью наша разработка, которая не требует никаких внешних библиотек, но то, что было написано в те далекие времена требует глобальной переработки (читай все удалить и написать заново)

2) Не тратить время на полноценный редактор - он не нужен. Гораздо лучше и проще написать ряд утилит (преимущественно консольных), которые будут выполнять одну задачу.

3) По максимуму задействовать библиотеки с открытым кодом для тех или иных задач.
На данный момент список такой:

- SDL - для работы с окнами
- Botan (если найду что-нить получше, переключусь туда) - криптография, цифровые подписи, итд
- asio - сокеты и все что связано с сетью
- Fmod - звуки, и все что связано со звуковыми эффектами
- Bullet - физика - возможно будет заменен на другой.
- Lua - скрипты и простая логика отдельных элементов
- glm - как библиотека для быстроматематики
- assimp - как библиотека для перегонки мешей в наш собственный формат (RAT - Rellict AsseT)
- ??? - тоже самое для работы с текстурами (пока не определился)
+ тонна служебных библиотек, которые и так были бы включены в проект (всякие zlib итд)

4) В качестве графики использовать OpenGl последней версии (чтобы можно было быстро написать хоть какой-то рендер), но в дальнейшем переключится на Vulkan

Работы очень много. Основная проблема легаси версии движка в том, что он не поддерживает 64битные системы (это исправим), мультипоточность (а вот с этим намучаемся) и сеть (тоже намучаемся). Все уже готовые элементы движка по сути придется выкинуть и написать заново. Сколько это все займет времени (с учетом моей основной работы, и как шла работа над проектом уже на готовом движке), я даже не представляю. Но, похоже, деваться особо некуда. Готовые движки не дают достаточного места для маневра, а писать костыли мне надоело.

И да, сразу отвечу на вопрос: Скорее всего Relict Engine не будет доступен публично для собственных проектов. Все-таки я собираюсь точить его под одну единственную конкретную задачу. Но посмотрим, что из этого получится, если получится вообще. А может быть и Nau Engine быстро отполируют (сомневаюсь, но надежда умирает последней) и можно будет использовать его (при условии, что они не решат идти путем Unreal с прибитыми гвоздями и со ависимыми друг от друга фичами кода ядра).

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества