Urho3D - Le Bottin des Jeux Linux

Urho3D

🗃️ Specifications

📰 Title: Urho3D 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Development ➤ Engine ➤ 2D & 3D ➤ Misc. 🌍️ Browser version:
🔖 Tags: IDE; Development; 3D engine; C/C++; Multi-platform; Scripting support; Physics engine; Audio system; Particle system; Lightmap; 3D texture; Keyboard; Mouse; Networking system 📦️ Package Name:
🐣️ Approx. start: 2011-01-02 📦️ Arch package: ✓
🐓️ Latest: 2023-01-09 📦️ RPM package:
📍️ Version: Latest: 1.9.0 / Dev: 7cf13ec 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: MIT 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package:
👁️ Visual: 2D & 3D ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single & Multi 📱️ PDA support: ✓
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb & Louis
🎰️ ID: 15423 🐛️ Created: 2018-05-28
🐜️ Updated: 2023-12-30

📖️ Summary

[en]: A libre multi-platform, and lightweight engine, and an IDE for designing 2D and 3D games implemented in C ++. It provides a quality interface with examples and well-documented documentation. [fr]: Un moteur multi-plateforme, libre et léger, et un IDE permettant de concevoir des jeux en 2D et 3D implémentés en C ++. Il fournit une interface de qualité avec des exemples et une documentation bien fournie.

🎥️ Videos


🦝️ From Users: Gamefromscratch (1.7/201805),


🎮️ Showcase: (201808), (202301), (202007),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site 1 2] [Features/About] [Screenshots] [Videos t(202xxx) gd(202xxx) gu(1.7/201805) r(202xxx) lp(202xxx) g(201808) g(202301) g(202107) g(202007) d(201703) d(201801) d(201411) d(201503) d(201410) d(201604) d(201802) d(201404) g(202xxx) g[fr](201906) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💰 Commercial: (empty)

🍩️ Resources
(empty):

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

🦣️ Social
Devs (Urho3D Team 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related


📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB] [GameFromScratch]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🛠️ Title: Urho3D
🦊️ What's: A libre & lightweight engine, and an IDE for designing 2D and 3D games implemented in C ++
🏡️ -
🐣️ https://github.com/urho3d
🔖 #LinuxGameDev #LibreGameEngine #IDE
📦️ #Arch
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 1.7➜1.9
⚗️ Loads of new features ⭐️
📌️ Changes: https://github.com/urho3d/Urho3D/releases
🦣️ From: (on FullCircleMag [fr]) https://ludosphere.fr/@jeuxetlinux/109694119055258299

🦉️(1.7) https://www.youtube.com/embed/p8A4OTtegIc
🎮️ https://www.youtube.com/embed/DGMyL1ZK5WE
🎮️ https://www.youtube.com/embed/nqDrOIs8KwY
🎮️ https://www.youtube.com/embed/mpb8w_WnR4k

🕶️ A view of its UI (a beautiful, very elaborate interface) with the 3D game being developed in the center, and on either side the settings, on the top the menu with many buttons related to the 3D design, and on the left side, many other buttons related to the game design.

Urho3D is a libre multi-platform, and lightweight engine, and an IDE for designing 2D and 3D games implemented in C ++. It provides a quality interface with examples and well-documented documentation.

📕 Description [en]

📕🐧"A libre & lightweight engine, and an IDE for designing 2D and 3D games implemented in C ++"🐧📕

Urho3D is a free lightweight, multi-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.

Urho (Finnish for “hero” or “brave fighter”) was a legendary, tyrannical king among the fish. He always hunted without mercy. Sadly, he passed away on 6th November 2009. This engine was originally called Bofh3D (hinting at the covert goal of reimplementing the game BOFH: Servers under Siege in 3D) but was renamed to Urho3D in his honor.

📕 Description [fr]

Un moteur léger et un IDE permettant de concevoir des jeux en 2D et 3D, inspiré par OGRE et Horde3D, par l'Urho3D Team.
En C++/AngelScript.

Urho3D est un moteur multi-plateforme, libre et léger, et un IDE permettant de concevoir des jeux en 2D et 3D implémentés en C ++. Il fournit une interface de qualité avec des exemples et une documentation bien fournie.


Urho3D est un moteur multi-plateforme, libre et léger de jeu 2D et 3D implémenté en C ++ et distribué sous licence MIT. Il est fortement inspiré par OGRE et Horde3D.

Urho (finlandais pour "héros" ou "combattant courageux") était un roi légendaire et tyrannique parmi les poissons. Il a toujours chassé sans pitié. Malheureusement, il est décédé le 6 novembre 2009. Ce moteur s'appelait à l'origine Bofh3D (faisant allusion à l'objectif caché de réimplémenter le jeu BOFH: Servers under Siege en 3D) mais a été rebaptisé Urho3D en son honneur.

🚧️ Installation ➜ 🚀️ Launching [fr]

⚙️ Installation à partir du binaire

⛓️ Installation à partir du binaire classique :
• (🧪️not_tested) Un binaire statique (64-bits) est disponible, il suffit de décompresser le livrable et (s'il ne l'est pas) de rendre son binaire exécutable (clic droit sous votre gestionnaire de fichier).

(j'avais testé le paquet Debian en version 1.7, mais je suis à présent sous Manjaro)


📄️ Installation à partir du source

• (✔ v. 1.7) Si vous souhaitez quelque-chose de très récent (versions de développement) et/ou qu'il n'y a pas de binaire disponible pour votre distribution/architecture (32/64-bits), la compilation du source est une bonne idée, voir un passage obligé.

▸ Téléchargement du source (sur GitHub) :
☝️ Nota : Évitez le téléchargement du source via les liens https, car ils ne fournissent pas les dépendances
Version stable, dans le répertoire souhaité, lancez : $ git clone -b "Nom_de_la_release" --recursive https://github.com/urho3d/Urho3D
Nom_de_la_release : à remplacer par le nom d'une release valide indiquée sur la page de développement : sur GitHub, dans la section Release, le nom valide est l'étiquette située à gauche du titre, ou cliquez sur "Tags" pour obtenir la liste des étiquettes valides).
ou Version récente (non stable), dans le répertoire souhaité, lancez : $ git clone --recursive https://github.com/urho3d/Urho3D

▸ Compilation :
• Dans son répertoire racine lancez successivement :
$ cmake .
(n'oubliez pas le ".")
$ make
(ou, pour accélérer la compilation, "$ make -j8" si vous disposez d'un processeur 8 threads, à adapter pour vous)

☝️Nota: la compilation prend dans les 10 minutes :)

▸ Installation dans les répertoires du système :
🌧️ Not recommended (complicated to uninstall)

⚠️Attention : le "# make uninstall" ne fonctionne pas / n'est pas implémenté. Si vous souhaitez ensuite le désinstaller, il faudra le faire vous-même manuellement (potentiellement fastidieux).

Éventuellement (si vous souhaitez le ranger dans les répertoires habituels, car le jeu fonctionne bien dans son répertoire de compilation):
# make install
(Cette dernière commande est à lancer avec les droits de l'utilisateur root).


🚀️ LANCEMENT DU MOTEUR :

• Si vous avez compilé le jeu à partir de son source, en console dans son répertoire racine lancez : $ bin/Editor.sh
• Si vous avez installé le jeu à partir d'un paquet : [Alt+F2] puis saisissez : Editor.sh

🕵️ Test [fr]

🕵️ Test (source 1.7) par goupildb :

🎯️ Objectif: rédiger/mettre à jour/valider sa notice d'installation, tester son fonctionnement et partager mes premières impressions.

🫕️ Installation :
Des paquets Debian/UBUNTU en 32-bits et 64-bits, ainsi que des binaires statiques sont disponibles.
J'ai simplement souhaité tester sa compilation : il se compile facilement (çà prend une dizaine de minutes).
Sur mon installation (j'ai déjà effectué pas mal de compilations, donc à force, j'ai déjà installé pas mal d'entêtes de bibliothèques, les paquets se terminant par '-dev"), je n'ai rien eut d'autres à installer.

🕹️ 1er test : le moteur lui-même

À l'issue de cette compilation, le répertoire bin/ contient différents binaires de démonstration que l'on peut lancer en console.

J'ai ainsi testé :

$ cd bin/
$ ./Urho3DPlayer
Il s'agit d'une démo avec un ninja en 3D avec une musique adaptée. C'est juste une démo, donc le gameplay n'est pas suffisant pour y jouer plus de 5 min, mais l'on peut lancer des balles contre des tas de ninjas qui apparaissent tout autour de soi, les éliminer un à un (mais il en apparaît autant, c'est un jeu sans fin), et se déplacer. Ça donne déjà une belle idée de ce que l'on peut faire.

J'en ai testé d'autres que je ne détaille pas (il y en a 47) :
$ ./02_HelloGUI
$ ./06_SkeletalAnimation
$ ./12_PhysicsStressTest
$ ./19_VehicleDemo

Ensuite j'ai testé rapidement l'éditeur : $ ./Editor.sh
avec différentes scènes livrées.

Le résultat est plutôt convaincant, notamment avec la scène "PBRExample.xml", qui présente un éclairage balayant une scène 3D de manière progressive (à la manière de la révolution du soleil).
Pour le reste, je ne suis qu'un amateur. L'interface présente tout un tas d'icônes et des fenêtres translucides (laissant apparaître la scène par transparence, de manière plus sombre, et du plus bel effet). Bref, l'outil me semble de très très belle facture. Je vous laisse vous faire votre propre idée.

🕹️ 2nd test :

En fait j'avais en tête de compiler le source du jeu [heXon] (GPL-2), qui utilise ce moteur, puis de rédiger une documentation généraliste pour l'utilisation d'Urho3D, qui me semble très prometteur.

Malheureusement, si j'ai franchi quelques étapes intéressantes, je me suis cassé les dents sur la compilation du jeu.

1er écueil : le moteur Urho3D n'est pas dans ma distribution Debian Sid, donc pas de binaire ni de paquet d'entêtes dans les dépôts facilitant la compilation du jeu (ce n'est pas totalement vrai puisque des paquets sont disponibles sur SourceForge, et je les ai testé plus bas).

2ème écueil : la doc n'est pas faite pour les novices. Ayant compilé moi-même le moteur Urho3D, je ne sais pas comment l'utiliser avec un jeu. Il y a un répertoire "Docs/" mais ça ne semble pas avoir été compilé ou je ne sais pas l'utiliser. Il y a un répertoire html/ mais rien dedans.
Finalement j'ai fini par installer le paquet doxy-gui (doxygen étant déjà installé sur ma distribution) et lancer la commande : $ /usr/bin/doxywizard
L'interface de doxywizard est très intuitive, il suffit de lui préciser le répertoire où se trouve la doc (Docs/), les formats de sortie souhaité (j'ai précisé HTML et RTF), de cliquer plusieurs fois sur "Suivant" et d'attendre 3 ou 4 minutes pour que les répertoires se remplissent de doc (magique). Ensuite je clique sur index.html, et je retrouve la même doc qui se trouve sur le WIKI :)
Le WIKI (comme cette doc ci-avant) est orienté pour les développeurs, c'est complet. Mais il manque encore une section pour les novices, ou peut-être que tout simplement ce moteur ne leur est pas destiné.

3ème écueil : je n'ai pas trouvé comment compiler le plus simplement le jeu sans devoir installer le moteur Urho3D dans les répertoires systèmes de ma distribution Debian 32-bits.
Je déteste installer des logiciels en dehors du système de paquetage (d'autant que dans de nombreux cas rien n'est prévu pour la désinstallation).
Ne voyant pas comment faire pour compiler le jeu à partir du répertoire de mon choix, j'ai donc installé à contre-cœur le moteur Urho3D dans les répertoires systèmes, via la commande : # make install
Et ... aucun script n'est fourni pour la désinstallation :(

4ème écueil : malgré l'installation du moteur Urho3D dans les répertoires systèmes, la compilation du jeu heXon (v. 70c38cb, mais aussi la v. 4c9a5ee) plante sur :
$ cmake .
$ make -j8
(...)
[ 16%] Building CXX object CMakeFiles/hexon.dir/controllable.cpp.o
[ 18%] Building CXX object CMakeFiles/hexon.dir/chaozap.cpp.o
In file included from /mnt/DDprc/Download/heXon-master/luckey.h:62:0,
from /mnt/DDprc/Download/heXon-master/mastercontrol.h:24,
from /mnt/DDprc/Download/heXon-master/inputmaster.h:24,
from /mnt/DDprc/Download/heXon-master/controllable.cpp:20:
/usr/local/include/Urho3D/Input/InputEvents.h:28:10: fatal error: SDL/SDL_gamecontroller.h: Aucun fichier ou dossier de ce type
#include
^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Les entêtes des bibliothèques SDL sont pourtant installées.

J'ai aussi essayé (car il semble qu'il faille initialiser la variable URHO3D_HOME avant de lancer la construction) :
$ cmake .
$ URHO3D_HOME=/mnt/DDprc/Download/Urho3D-1.7 make

mais le résultat est le même.


🕹️ 3ème test : installation des paquets Debian/UBUNTU du moteur et test de compilation avec du source du jeu heXon (v. 70c38cb)

Au préalable j'ai dés-installé manuellement (fastidieux) l'installation précédente du moteur Urho3D (qui avait été effectuée par le # make install dans les répertoires systèmes).

Puis, ma distribution étant en 32-bits, j'ai téléchargé et installé les paquets :
Je n'ai pas utilisé gdebi car il plante en ce moment, je me place dans le répertoire où se trouve les paquets ci-après et lance :
# dpkg -i Urho3D-1.7-Linux-SHARED.deb
# dpkg -i Urho3D-1.7-Linux-STATIC.deb

Je suis reparti d'un source propre du jeu heXon (v. 70c38cb) et ai lancé les commandes :
$ cmake .
$ make -j8
mais là encore la compilation plante sur les mêmes messages ci-dessus ("fatal error: SDL/SDL_gamecontroller.h: Aucun fichier ou dossier de ce type")

🕹️ 4ème test : recherche d'autres jeux utilisant le moteur Urho3D

J'ai recherché quelques jeux utilisant ce moteur et ai testé notamment le jeu [Quatter] (GPL-2, même auteur), dans le Bottin, mais là aussi, en dépit du fait que l'auteur a fait de gros efforts pour simplifier l'installation par l'utilisateur via des scripts, ça reste une usine à gaz requérant les droits root pour SUDO (je ne fais jamais confiance à ce genre de manip, préférant une installation locale dans le répertoire de mon choix, donc c'est non). Je n'ai donc pas suivi strictement la procédure, et l'ai laissé télécharger et construire Urho3D via la commande proposée : $ git clone https://github.com/LucKeyProductions/Quatter; cd Quatter; ./install.sh; cd ..; rm -rf Quatter
(sauf que je n'avais pas remarqué le "rm -rf Quatter" et j'ai donc dû me repayer le téléchargement du jeu + celui du moteur + sa compilation sur 1 seul coeur qui dure une éternité pour faire mes tests :)
Finalement la compilation plante sur :
"qmake: could not exec '/usr/lib/qt4/bin/qmake' since it links to qmake itself". Le problème vient probablement de mon installation. Mais si souhaitais relancer proprement l'ensemble après correction du problème, il me faudrait encore attendre 1/2 heure. D'où les limites d'un outil dont la mise en oeuvre n'est pas simple.

J'arrête là mes tests. Un peu déçu d'y avoir passé autant de temps sans résultat tangible.
Mais il faut que j'avance sur d'autres sujets et je ne doute pas qu'il fonctionne bien.

🏆️ Impressions :

‣ 🌞️ J'ai aimé
• Le moteur et son interface semblent très élaborés / complets
• Une documentation complète et bien conçue
• Des démos sont fournies.

‣ 🌤️ Axes d'amélioration
• L'interface est encore peu intuitive. J'espérais quelque-chose approchant l'ergonomie de Godot engine, mais pour l'instant (à la version 1.7) on n'y est pas encore.
• La documentation semble complète, mais réservée aux développeurs
• Rien n'est prévu pour désinstaller le moteur !
• Des efforts restent à faire pour simplifier l'installation des projets qui l'utilise.

🕹️ Conclusion :
Impression globale : 👍️
Le moteur Urho3D et son interface semblent de très bonne qualité. Visiblement à la version 1.7, ce n'est pas un moteur pour les amateurs comme moi :).
Néanmoins j'ai envie de dire que c'est un moteur qui manque peut-être encore de maturité pour une installation et une utilisation agréable par l'utilisateur lambda, mais il est très prometteur.
👏️ ❤️ Un grand bravo et merci à ses auteurs pour ces outils de qualité !