Je m'appelle Jérôme(Lynix), j'ai 17 ans et je programme depuis tout jeune. Mes capacités vont du C/C++/PHP/Lua (Maitrisés) au xHTML/CSS/Javascript/SQL/VB (Maniés).
Il y a presque deux ans, je me suis lancé dans la création de mon propre jeu, mais les moteurs que j'ai testé (OGRE, Irrlicht) ne me convenaient pas, j'ai alors décidé de me lancer dans la création de mon propre moteur de jeu.
l'Ungine
C'est un moteur dont le but est d'être puissant, complet, rapide et facile à utiliser (Interface utilisateur).
Il dispose de classes haut-niveau qui permettent à l'utilisateur de faire des choses très facilement, par exemple charger un modèle depuis un fichier ne prend qu'une ligne, l'Ungine se chargeant même de trouver la texture tout seul si vous lui demandez.
Mais cette interface haut-niveau est basée sur des interfaces de niveau de plus en plus faible, permettant à l'utilisateur d'avoir un accès bas-niveau si besoin est.
L'Ungine est séparé en modules, dont le moteur 2D, le moteur 3D, le Renderer, le moteur physique, le moteur réseau, le moteur audio.
Sans oublier que l'Ungine propose aussi un module pour le scripting en Lua, très facile à utiliser.
Le noyau est ce qui est le plus abouti pour l'instant, je travaille en ce moment sur le moteur 3D et le Renderer.
Voici une liste non-exhaustive des fonctionnalités, ce qui est en vert est implanté et fonctionne parfaitement, ce qui est en orange est implanté mais fonctionne mal ou est en cours d'implantation, ce qui est en rouge n'est pas encore implanté
Moteur entier :
Portable (Windows, Linux, MacOS)
Thread-safe
MemoryManager actif en Debug Mode (Loggant chaque leak)
Noyau :
Gestion de chaine de caractère surpassant en fonctionnalités et en vitesse d'exécution la std::string
Gestion des fichiers et des dossiers
Gestion des hashs (CRC16, CRC32, MD5, SHA1, SHA256, SHA512, Whirlpool)
Gestion du fenêtrage et des évènements
Outil mathématique complet et puissant (Matrices 3x3, 4x4, *x*, Quaternions, Vecteur 2D, Vecteur 3D, Vecteur 4D)
Gestion des maillages 3D statiques et animés
Gestion des textures
Gestion du son
Gestion avancé des ressources (ResourceManager) avec loaders
Gestion de matériaux (Définissant certains paramètres comme le coefficient de rebondissement, etc...)
Gestion de formes basiques (Cube, sphère, capsule, cylindre, heightfield)
Gestion de formes convexe
Gestion de formes non-convexe (Assemblage de formes convexes)
Lancer de rayons (Aussi appellé trace ou ray)
Gestion de la masse et de l'inertie
Gestion d'entités physique (Combinaison d'une forme et d'un objet mouvant
Audio (Ungine OpenAL Audio Wrapper) :
Utilisation de l'accélération matérielle si disponible
Spatialisation du son en 3D
Capture audio
Streaming
Réseau (Ungine TCP/UDP Network Module) :
Gestion de sockets TCP et UDP
Gestion de sélecteurs
Architecture réseau client/serveur
Gestion de packets via les opérateurs de flux
Il y a beaucoup de rouge, c'est vrai, mais tout ce qui n'est pas graphique n'est qu'un wrapper a écrire, l'implémentation du moteur physique entier s'est faite très rapidement par exemple, le moteur en lui-même était déjà écrit, cela vaut aussi pour l'audio et le réseau.
J'utilise le code source de la SFML 2, de tous les modules sauf le module graphique, il ne faut pas oublier Laurent Gomila pour son excellent travail.
Je n'ai pas encore décidé sous quelle licence j'allais distribuer mon moteur, mais il sera open-source.
L'objectif de l'Ungine est de simplifier la vie des programmeurs en donnant un accès haut-niveau à tous les modules, tout en gardant la possibilité d'utiliser du bas-niveau.
J'espère ainsi faire plaisir à tout le monde.
J'aimerais savoir si vous êtes intéressé par le projet.
Démos technique
Je sors des démo techniques montrant les capacités naissantes de l'Ungine.
La première démo technique montre le moteur fonctionnel et le Renderer, elle est disponible ici : http://forum.utopia-universe.net/viewtopic.php?f=11&t=58
Screens (Issus de la première démo technique et de quelques tests en interne) :
Tu ferais mieux de mettre de couleur différente au lieu de souligné, ce serait beaucoup plus lisible, là faut faire gaffe si c'est en italique ou pas ..
Bon ben, toujours au top à ce que je vois .
C'est une très bonne idée d'avoir fait ce post, comme ça on peut savoir où en est le moteur et les fonctionnalités qu'il compte avoir.
Salut,
Wahou, 17 ans dis-tu ?
Ca a l'air très intéressant, et surtout réfléchi.
J'aurais bien apprécié quelques screens de rendu (je suis allé jeter un oeil sur ton site, mais honnêtement la police bleue-marine sur un fond noir, ça pique les yeux, surtout quand on switch avec le SdZ qui est blanc).
Bonne continuation, sincèrement.
[EDIT] Si c'est portable sur Linux, faut simplement faire gaffe à n'utiliser que des systèmes IPC/protocoles UNIX, et hop, ça devient portable sur Mac.
Les sources sont-elles déjà en ligne ou pas? Vu que tu n'as pas encore choisi la licence ça m'étonnerait mais on s'est jamais .
Les sources sont sur un SVN auquel danman et moi avons accès, je ne sais pas encore quand est-ce que je vais le rendre public, mais il me faudrait choisir une licence avant ça justement.
Citation : uaip
J'aurais bien apprécié quelques screens de rendu
Il y en a, il y a même une première démo technique mais ça ne montre pas grand chose, enfin je vais mettre des images en rentrant chez moi ce soir
Citation : uaip
je suis allé jeter un oeil sur ton site, mais honnêtement la police bleue-marine sur un fond noir, ça pique les yeux, surtout quand on switch avec le SdZ qui est blanc
Oui c'est vrai que les couleurs sont à l'opposé du site du zéro, mais pour un site d'un jeu orienté sur l'espace, je pense que les couleurs sombres sont les seules qui peuvent donner quelque chose de bien
Quant au logo de l'Ungine, c'est vrai que il n'y a pas de raison de préférer une certaine couleur, je préfère personnellement ce qui est soft, on pourrait voir pour un logo transparent, enfin c'est pas le plus important non plus
Citation : uaip
Si c'est portable sur Linux, faut simplement faire gaffe à n'utiliser que des systèmes IPC/protocoles UNIX, et hop, ça devient portable sur Mac.
Malheureusement il n'y a pas que ça, il y a aussi OpenGL, et pour le rendu sur image il y a aussi besoin d'une technique différente sous Linux et MacOS.
Citation : petitfou
17 ans ! Chapeau
Ca fait combien de temps exactement (enfin en gros quoi) que tu programmes ?
Ça fait plus de 7 ans
Citation : Shivaan
Normal qu'aucun des liens ne marche ?
Je viens de les essayer, ils fonctionnent tous, peut-être un souci de DNS?
Pourrais-tu nous montrer des screens de ton moteur. Peut-être pas tout de suite mais quand tu feras des nouvelles choses nous les présentaient.
Je sais que là il y a la démo mais des screens seraient tout aussi bien .
Et voila, je viens de terminer d'implanter le moteur physique dans l'Ungine.
Il me reste encore à implanter le début du moteur 2D et les buffers avant de faire les deux démo techniques (Une pour le moteur 3D, une pour le moteur physique).
Pour les intéressés, l'Ungine fait actuellement 29 502 lignes de code (21604 lignes remplies, le reste est constitué de commentaires ou d'espaces blancs).
Je vais mettre à jour le premier post avec des screens de la première démo technique, en attendant les deux suivantes.
Après trois jours de travail, j'ai enfin pu intégrer l’Unicode dans l'Ungine.
Ceci grâce à une nouvelle classe Ungine::UnicodeString fonctionnant comme l'Ungine::String, excepté que elle peut gérer l'Unicode, et par conséquent prend plus de place en mémoire.
Cependant les algorithmes sont les mêmes, mais appeler la version Unicode avec un const char* en paramètre est bien plus lent qu'avec la version normale.
Voici un benchmark résumant la situation (Généré par ma classe Ungine::Benchmark) :
Pour les curieux, voici le code source du projet de Benchmark :
Il plante quand il charge voyager.mtl, la fenêtre s'ouvre et une autre fenêtre où il dit le programme à cessé de fonctionner.
Signature du problème :
Nom d’événement de problème: APPCRASH
Nom de l’application: TestUngine.exe
Version de l’application: 0.0.0.0
Horodatage de l'application: 4bee74ce
Nom du module par défaut: StackHash_9446
Version du module par défaut: 0.0.0.0
Horodateur du module par défaut: 00000000
Code de l’exception: c0000005
Décalage de l’exception: 00000000
Version du système: 6.0.6002.2.2.0.768.3
Identificateur de paramètres régionaux: 1036
Information supplémentaire n° 1: 9446
Information supplémentaire n° 2: f11091cb6c31bd60085c581bbfe8ca63
Information supplémentaire n° 3: 1241
Information supplémentaire n° 4: 88dc83b66b18bc23e9cd816dba661cd6
Lire notre déclaration de confidentialité :
http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x040c
Ah d'accord, c'est de la première démo technique que tu parles.
C'est un bug connu et corrigé depuis quelques mois maintenant, le crash se produit à la fermeture du programme pour la plupart mais pour certains c'est au démarrage comme dans ton cas.
Je n'ai pas pensé à remettre une version exempte de bug, étant donné que je fais mon possible pour sortir la seconde démo technique la semaine qui vient.
J'essayerais de penser à refaire la première démo technique avec le moteur actuel afin de corriger ce crash.
Je disais que ça pouvait être intéressant de poster sur utopia-universe.net car tant que l'Ungine ne sera pas fini, le jeu non plus et que cela peut donner matière à patienter
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)