Показать сообщение отдельно
Старый 12.11.2013, 16:13   #16
jimon
 
Сообщений: n/a
Ответ: Clear Engine (Понятный движок)

Сообщение от HolyDel Посмотреть сообщение
и к чему пришел щас?
я пока не нашел более удобный способ разделения интерфейсов и реализации.
1) data driven & data oriented design

скажем если гейм\левел дизайнер не может взять ваш движок и вставить туда спрайт или скрипт сам - нафиг такой движок нужен

2) everything is data pipeline

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

3) object as pure aggregation

http://cowboyprogramming.com/2007/01...your-heirachy/

node ? component ? не нужно

4) SoA

вы все еще пишите float x,y,z ? не нужно

5) хардкод техник рендер пайплайна, как в UE, CryEngine и прочих

делать возможность впилить свое HBAO на уровне данных ? ой, а как вы его сделаете на мобилках ? рендер техники это code path forever

6) data flow programming, reactive programming для некоторых вещей наподобие пайплайна рендера и шейдеров

императивные подходы не всегда решают однако

7) clear C11 only

если подходить со стороны интерфейсов в data driven движке то ооп там не сильно надо, ибо это тупо плеер данных, как пример могу показать интерфейс моей библиотеки которая агрегирует разные социальные сдк под мобилки : https://github.com/Goortom/dd-publis...d_publishing.h, посмотрите насколько он чистый и простой, даже почти не нужна справка

или например интерфейс библиотеки загрузки изобрежаний : http://pastebin.com/xbdcZPC8 (пока не в паблике), посмотрите насколько он простой, нужно добавить к нему всего две функции и вы получите сверх мощную либу которая умеет грузить данные напрямую через memory mapped files

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

и вообще


8) dual quaternions graph

как показывает практика - скейл объектов это очень вырожденный случай, и скейл в самом дереве трансформов не нужен, потому можем отказаться от матриц вообще и сильно ускорить все вычисления

9) lua

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

10) heap ? malloc ? new ?

тупо не нужно, вообще, просим страницы виртуальной памяти напрямую у ОС

11) everything is async, no callbacks

если можно сделать без коллбеков - делаем без коллбеков

ps. плюс еще куча мудрости, я так сходу и не вспомню =)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо за это полезное сообщение:
falcon (16.11.2013), HolyDel (12.11.2013), pozitiffcat (12.11.2013), Taugeshtu (12.11.2013)