forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   TatEngine (http://forum.boolean.name/showthread.php?t=17554)

jimon 23.11.2012 05:18

TatEngine
 
Предыстория :

В общем последний опенсорс двиг от меня был аж в 2008-2009 году http://forum.boolean.name/showthread.php?t=6284 (он так и лежит http://code.google.com/p/enesea/), а дальше я устроился работать в Tatem Games. Много чего повидал, много чего наделал, с 2009 года я проектировал\писал in-house движок, он пережил полный рефакторинг в конце 2011 года.

Глядя на все движки под мобильные платформы, понимаешь всю их ущербность, особенно всяких кокосов и корон :crazy: Потому было решено попробовать свои силы на поприще 2д движков. Вышло довольно не плохо в итоге. Но наш двигло и 3д умеет. Showcase пока не имеет выпущенных проектов, но в течении 6 месяцев выйдет социальная 3д игра на нём (http://www.tuaw.com/2012/03/13/tatem...-gym-and-more/) и 2д квест.


А теперь история : in-house технология идет в опен сорс :crazy:

https://github.com/tatemgames/tatengine

Что внутри ? Довольно высоко технологический ящик плюшек ! Претендент на один из самых мощных 2д движков для мобильных игр.
  1. Pure aggregation scene graph (http://cowboyprogramming.com/2007/01...your-heirachy/) и редактор к нему.
  2. Constant size design, aka полное отсутствие каких либо аллокаций памяти во время игры, только при загрузке уровня.
  3. Data oriented design, всё на пулах объектов.
  4. Data driven design, вы описываете в коде только классы контролёров объектов, а все инстансы создаются в редакторе.
  5. Baked render pipeline, оптимизация очереди рендера происходит в заранее
  6. Очень простой рендер, движку нужен всего 1-2 VBO и пара текстур, потому наш рендер очень упростился, сейчас поддерживается OpenGL, d3d9 рендер в разработке ( для wp8 ).
  7. Content pipeline, создание атласов, подсчёт AABB для заскиненых моделей и тд, всё происходит в оффлайне отдельной тулзой, а игра представляет собой просто минимальный плеер подготовленного контента.
  8. Photoshop content pipeline, сделали интерфейс и лень его нарезать и вставлять ? Просто вставьте его в игру в три клика. Экспортёр и импортёр уже в комплекте.
  9. FBX конвертер, самописный монстр на fbx sdk (кто юзал, тот знает), поддерживает скелетку, меши, процессинг uv, гибкий формат структуры вертексов и тд.
  10. И еще много чего.

Но сейчас SDK находится в alpha preview стадии, пишутся туториалы, пишутся семплы, поправляется код, выпиливаются костыли. В данный момент пока залиты бинарники тулзов только для win, в скором будущем будет и mac версия.

Так что прошу оценить пока то что есть :crazy:

Nex 23.11.2012 07:34

Ответ: TatEngine
 
Цитата:

понимаешь всю ихнюю ущербность
если не ошибаюсь, то правильно будет "их", а "ихнюю" не правильно. :)

HolyDel 23.11.2012 11:14

Ответ: TatEngine
 
Цитата:

Constant size design, aka полное отсутствие каких либо аллокаций памяти во время игры, только при загрузке уровня.
если у меня игра какая-нибудь ртс с заранее неизвестным числом юнитов? выделять память по максимуму?

pax 23.11.2012 12:31

Ответ: TatEngine
 
Появился повод снова ковырять С++ :)


С масштабирование что-то не то.. точнее наверное с прорисовкой
http://f3.s.qip.ru/etSMyDPQ.png

UPD: пока ничего не понятно, буду следить, читать мануалы и примеры смотреть)

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

UPD3: После билда тестовое окно с инфой очищается, так надо? Было бы клево иметь пункт в меню WorldEditor'а - Recent Projects

pax 23.11.2012 13:13

Ответ: TatEngine
 
Отдельно вопрос хотел задать - поддержка разных разрешений экранов каким образом будет?

UPD: Туторы прочитал, хочу еще!

jimon 23.11.2012 13:45

Ответ: TatEngine
 
Вложений: 1
Цитата:

Сообщение от HolyDel (Сообщение 244572)
если у меня игра какая-нибудь ртс с заранее неизвестным числом юнитов? выделять память по максимуму?

Мы не зря долго сидели и всё продумывали, представь, да, выделять по максимуму, но юниты очень дешевые получаются, думаю до 500-1000 байт на юнит. И самое интересное - нет ситуации где надо было бы выделять, максимум надо стримить геометрию и текстуры, но ведь это же не аллокация памяти. :crazy:

Цитата:

С масштабирование что-то не то.. точнее наверное с прорисовкой
http://f3.s.qip.ru/etSMyDPQ.png
Есть такое :(

Цитата:

UPD2: было бы клево сортировать ноды по категориям, еще бы нужной фичей было бы перемещение страницы с нодами мышкой. А вращение не в кватернионах задавать никак?)
Там сама сцена для удобства имеет страницы (последняя закладка в редакторе), между ними можно перемещать ноды с помощью пункта в тулзах. Да, добавлю эдитор для углов эйлера, но и с кватернионами хорошо :)

Цитата:

UPD3: После билда тестовое окно с инфой очищается, так надо? Было бы клево иметь пункт в меню WorldEditor'а - Recent Projects
Там два текстовых окна, одно выводит информацию про Bake стадию (Ctrl + B если отдельно надо), если она завершается без ошибок то окно закрывается и открывается окно запуска приложения (Ctrl + Alt + R)

Цитата:

Отдельно вопрос хотел задать - поддержка разных разрешений экранов каким образом будет?
Хороший вопрос, с приходом в iOS аж 4 ppi, стало понятно что 4 раза рисовать графику просто не реально, а под Андроидом их еще больше, потому было решено рисовать графику интерфейса под самое большое разрешение экрана (сейчас 2048 * 1536), а потом только даунскейлить.

Автоматический даунскейл делается вот этой штукой :
Вложение 18106
К ней просто аттачится куча трансформов для каждой крайней точки, и она каждой точке задает размер и позицию.

Основной проблемой даунскейла раньше были шрифты, но мы заюзали distance field fonts (http://www.youtube.com/watch?v=CGZRHJvJYIg) и с его помощью можем одной текстурой 512*512 (или 256*256) покрыть вообще все размеры гарнитуры.

pax 23.11.2012 14:15

Ответ: TatEngine
 
А что-то типа встроенных эффектов частиц и т.п. планируется?

jimon 23.11.2012 14:23

Ответ: TatEngine
 
Цитата:

Сообщение от pax (Сообщение 244589)
А что-то типа встроенных эффектов частиц и т.п. планируется?

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

HolyDel 23.11.2012 18:26

Ответ: TatEngine
 
Цитата:

distance field fonts
клевая техника.
а как вы текстуры для нее генерите? отдельной утилитой или в рантайме?

moka 23.11.2012 19:16

Ответ: TatEngine
 
А бенчмарки какие-то делали, сравнения производительности, и выжимали нагрузку на разных платформах / девайсах - что выдаёт?

jimon 23.11.2012 19:43

Ответ: TatEngine
 
Цитата:

Сообщение от HolyDel (Сообщение 244610)
клевая техника.
а как вы текстуры для нее генерите? отдельной утилитой или в рантайме?

генерим шрифт размером 8192*8192 с помощью BMFont, а дальше в сдк есть Tools/DistanceField тулза которая превращает текстуру в картинку 512*512

Цитата:

А бенчмарки какие-то делали, сравнения производительности, и выжимали нагрузку на разных платформах / девайсах - что выдаёт?
Синтетика пока только предстоит, но в общем 3д социалочку с 200+ объектами держит :crazy:

jimon 24.11.2012 05:29

Ответ: TatEngine
 
залил туториалы по Lua скриптам и базовому нативному программингу

dimanche13 24.11.2012 12:13

Ответ: TatEngine
 
интересно, буду следить

dimanche13 25.11.2012 19:25

Ответ: TatEngine
 

jimon 25.11.2012 20:04

Ответ: TatEngine
 
Цитата:

Сообщение от dimanche13 (Сообщение 244784)

хым, залил на virustotal, ничего нет, так что проверь свой exe'шник по md5, вполне возможно троян у тебя на компе

ps. https://www.virustotal.com/file/0167...is/1353855652/


Часовой пояс GMT +4, время: 23:44.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot