Итак, речь пойдет об игровом движке (не путать с графическим) «Maratis Engine».
Движок бесплатный, с открытым исходным кодом, и не просто графический, а игровой, имеет редактор, что довольно редко среди опенсорса.
Скриншот
Видео
Движок написан французским студентом Anaël Seghezzi в 2005 году как проектная работа. В том же году на движке была сделана первая игра «Le jardin de Mirabelle», которая впоследствии в 2006 году получила награду на «Imagina Games Awards 2006» за отличную графику. В 2010 году французская студия «Medigames-Studios» разработала с помощью «Maratis» игру «Save our Souls» для «iPhone».
Движок поддерживает платформы: Windows, Linux, Mac, iOS, Android. Редактор отлично запустился на ubuntu. Жанровая направленность у движка не ограничена. Логика скриптуется на «Lua», сам же движок написан на «C++». В качестве физики заюзан «Bullet», не знаю насколько полно, пока сам познакомился с движком поверхностно, но конвекс-хулы, триангл-меши есть, примитивы тоже, сочленения не смотрел, через редактор вроде как недоступны, наверно только через код/скрипты. И самое главное — движок уже имеет менеджер сцены, типы camera, entity, к которым собственно и цепляются скрипты.
Редактор движка,простой, мало фичей, но их достаточно что бы забацать мало-мальски уровень. Редактора ландшафта, да и самой реализации «Heightmap terrain» как я понял — нет, что естественно минус. Также нет антиальсинга, зато есть динамические мягкие тени.
Сцена хранится в xml-подобном формате «.level», пример из демок:
<Maratis version="3.0">
<Level>
<properties currentScene="0" />
<Scene name="Scene-1">
<script file="../scripts/CartoonTPot.lua" />
<properties
data="Static"
gravity="0.000000 0.000000 -0.981000" />
<Light name="Light0">
<active value="true" />
<transform
parent="LightPivot"
position="-44.171749 -68.990753 82.614044"
rotation="0.000000 -0.000000 0.000000"
scale="1.000000 1.000000 1.000000" />
<properties
radius="20000.000000"
color="1.000000 1.000000 1.000000"
intensity="1.000000"
spotAngle="180.000000"
spotExponent="0.000000"
shadow="false" />
</Light>
<Camera name="Camera0">
<active value="true" />
<transform
position="107.700737 99.483864 88.448761"
rotation="62.157951 0.312068 132.903702"
scale="1.000000 1.000000 1.000000" />
<properties
clearColor="0.200000 0.300000 0.400000"
ortho="false"
fov="30.000000"
clippingNear="1.000000"
clippingFar="1000.000000"
fog="false"
fogDistance="0.000000" />
</Camera>
<Entity name="Entity0" file="../meshs/CartoonTPot01.mesh">
<BoundingBox min="-26.876709 -17.917807 0.000000" max="30.757299 17.917807 28.220547" />
<anim id="0" />
<active value="true" />
<transform
position="0.000000 -20.000000 0.000000"
rotation="0.000000 0.000000 -29.433706"
scale="1.000000 1.000000 1.000000" />
<properties
invisible="false" />
</Entity>
Официальный сайт движка