Urho3D, un eroe per gli sviluppatori di videogiochi in 3D

Urho3D (finlandese per "eroe" o "coraggioso combattente")  è un motore per la creazione di videogiochi 2D e 3D cross-platform completamente realizzato in C ++ e rilasciato sotto la licenza MIT.
A detta dei suoi autori è "ispirato" ai due motori OGRE e Horde3D (il primo sicuramente ben conosciuto dagli addetti ai lavori).

Non si può paragonare a colossi quali Unity 3D e UDK perchè non dispone di un ambiente completo di sviluppo ma è composto da una serie di librerie e un editor (ancora poco user-frendly in verità).
Anche se è un motore poco conosciuto, ad un primo impatto si intuiscono i suoi enormi potenziali (spinti dalla licenza MIT che viene incontro a tutte le esigenze dei team di lavoro).
Rispetto a Irrlicht o altre librerie ha molti punti di vantaggio:

Urho3D (fonte http://urho3d.github.io/)

  • inclusione di librerie non solo grafiche (audio, rete..ecc)
  • possibilità "nativa" di utilizzare linguaggi di scripting (come poteva essere LUA integrato manualmente nel motore base)
  • un vasto elenco di librerie di terze parti incluse nel motore
  • il motore è disponibile per quasi tutte le piattaforme esistenti (Windows, Linux, MacOSX, Android, HTML5)
Urho3D in azione - editor integrato


L'elenco di librerie di terze parti incluse è davvero lungo e consente di avere a disposizione un ambiente organico e completo per lo sviluppo di un videogioco:

  • AngelScript 2.30.2 (http://www.angelcode.com/angelscript/)
  • Box2D 2.3.0 (http://box2d.org/)
  • Bullet 2.83.6 (http://www.bulletphysics.org/)
  • Civetweb (http://sourceforge.net/projects/civetweb/)
  • FreeType 2.5.0 (http://www.freetype.org/)
  • GLEW 1.9.0 (http://glew.sourceforge.net/)
  • jo_jpeg 1.52 (http://www.jonolick.com/uploads/7/9/2/1/7921194/jo_jpeg.cpp)
  • kNet (https://github.com/juj/kNet)
  • libcpuid 0.2.0 (http://libcpuid.sourceforge.net/)
  • Lua 5.1 (http://www.lua.org)
  • LuaJIT 2.1.0+ (http://www.luajit.org)
  • LZ4 (http://code.google.com/p/lz4/)
  • MojoShader (http://icculus.org/mojoshader/)
  • Mustache 1.0 (http://mustache.github.io/, https://github.com/kainjow/Mustache)
  • nanodbc 2.11.3+ (http://lexicalunit.github.io/nanodbc/)
  • Open Asset Import Library (http://assimp.sourceforge.net/)
  • pugixml 1.5 (http://pugixml.org/)
  • rapidjson 0.11 (https://code.google.com/p/rapidjson/)
  • Recast/Detour (https://github.com/memononen/recastnavigation/)
  • SDL 2.0.3 (http://www.libsdl.org/)
  • StanHull (http://codesuppository.blogspot.com/2006/03/ john-ratcliffs-code-suppository-blog.html)
  • stb_image 2.05 (http://nothings.org/)
  • stb_image_write 0.98 (http://nothings.org/)
  • stb_vorbis 1.05 (http://nothings.org/)
  • SQLite 3.8.10.2 (https://www.sqlite.org/)
  • tolua++ 1.0.93 (http://www.codenix.com/~tolua)


In questo video è possibile vedere gli esempi principali in esecuzione.


Pro:
  • licenza MIT
  • presenza di un editor (anche se non evoluto come quello di Unity) 
  • costantemente aggiornato dagli sviluppatori
  • si può partecipare al progetto, presente su github

Contro:
  • E' richiesta una buona conoscenza C++
  • La documentazione non è ancora ai livelli di Unity o di Unreal

Riferimenti

http://urho3d.github.io/

Commenti