Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

[Moteur de jeu] Ungine

Moteur complet et puissant

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  3  4  5  6  7  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1  2  3  4  5  6  7  Suivante
Hors ligne Lynix # Posté le 21/07/2010 à 00:48:33
Avatar

Image utilisateur


Bonjour,

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
    • Loaders de base (Formats supportés)
      • Modèles 3D : obj, md2
      • Images : bmp, jpg, jpeg, pcx, png, tga
      • Matériaux : mtl
      • Sons : ogg, wav, flac, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5, pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64
      • Polices de caractère : ttf, cff, pcf, fnt, bdf, pfr, sfnt, type 1, type 42
    • Gestion du temps, des threads, des mutex
    • Gestion des angles en degrés et en radians
    • Gestion du boutisme (Détection + permutation des octets)
    • Benchmarks (Supportés par une classe automatisant les tests et calculant le nombre d'itérations nécessaire)
    • Gestion des plugins
    • Logs
    • Support des entités (Réunion des modèles du moteur 3D et des entités physiques)
    • Méthodes pour les maillages 3D (Génération automatique du LOD, génération automatique des normales, plaquage de texture, etc)
    • Support des textures animées (Vidéo par exemple)
    • Support de langages de scripts
    • Support de l'Unicode
  • Module graphique (Ungine OpenGL Graphics Module):
    • Affichage d'un Mesh normal (Vertex Arrays)
    • Gestion des index et pixel buffers ainsi que des déclarations
    • Support des textures
    • Support du multi-texturing
    • Support des shaders GLSLet Cg
    • Support du stencil buffer
    • Support du rendu sur image
    • Mipmapping
    • Support de la transparence
    • Support des modèles (Réunion d'un matériau et d'un maillage 3D)
    • Support du projective texturing (Texture projetée)
    • Support des ombres dynamiques
    • Support des ombres statiques
    • Organisation de la scène
    • Support des billboards
    • Support des backgrounds
    • Support du Bump Mapping
    • Support du Parallax Mapping
    • Support du deferred shading (Éclairage)
    • Support du per-pixel-lighting (Éclairage)
    • Moteur de particule (SPARK)
    • Système de vues
    • Affichage de chaines de caractère
    • Sprites
    • Gestion d'une GUI
  • Physique (Newton Game Dynamics) :
    • Gestion de plusieurs simulations
    • Choix du résolveur réaliste ou rapide
    • 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) :
Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur

Le reste



Quelques liens :
Le site de mon jeu
La première démo technique de l'Ungine
Le site de la SFML

Voila voila :)
Édité le 13/07/2011 à 19:18:44 par Lynix
 
Publicité # Posté le 21/07/2010 à 00:48:33

Connecté Dark Leek # Posté le 25/07/2010 à 16:35:29
Avatar

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 ..

Image utilisateur
Réalisation de site web simple sur demande (Dynamique - PHP - Administration).
Merci de fournir la charte graphique codée - Contactez par MP.

 
Hors ligne Lynix # Posté le 25/07/2010 à 16:53:00
Avatar

Hors ligne BurningMind # Posté le 25/07/2010 à 17:33:56
Anciennement, titragon94
Avatar

Ville : Saint maur des fossés
Pays : France métropolitaine

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.

Bonne continuation :) !


L'éternité c'est long, surtout vers la fin...
Image utilisateur
Image utilisateur
 
Hors ligne skynet1994 # Posté le 25/07/2010 à 18:43:08
Zéro un jour, zéro toujours
Avatar

Ville : Nîmes
Pays : France métropolitaine

Ton moteur à l'air très intéressant ;) .

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 :p .

Je suivrais en tout cas ton projet de prêt :D .
Bonne continuation.

Image utilisateur


Image utilisateur
Image utilisateur
Image utilisateur
 
Connecté uaip # Posté le 26/07/2010 à 00:55:58
Avatar

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.
Édité le 26/07/2010 à 00:59:20 par uaip
 
Connecté Dark Leek # Posté le 26/07/2010 à 01:26:43
Avatar

En rendu on a une application qui affiche le nombre d'fps suite à l'affichage d'un vaisseau (on peut se déplacer le voir de près ...).

Image utilisateur
Réalisation de site web simple sur demande (Dynamique - PHP - Administration).
Merci de fournir la charte graphique codée - Contactez par MP.

 
Connecté Snayk # Posté le 26/07/2010 à 01:42:06
Vive le SDZ !
Avatar

17 ans ! Chapeau ;)

Ca fait combien de temps exactement (enfin en gros quoi) que tu programmes ?

Visitez le forum du projet First Step : ICI

>> Forum actuellement en construction <<
 
Hors ligne Shivaan # Posté le 26/07/2010 à 08:51:15
JS Addict
Avatar

Ville : Coux et bigaroque
Pays : France métropolitaine

Normal qu'aucun des liens ne marche ?

Ne me contactez plus pour de la modération, pour OnHack ou pour PodZ. Tout ça est derrière moi et y restera.

Node.JS User
Protégez votre liberté. Soutenez la Quadrature du Net
 
Hors ligne Lynix # Posté le 26/07/2010 à 12:52:03
Avatar

Citation : skynet1994
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 :p .

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 :p

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?
Édité le 26/07/2010 à 12:54:13 par Lynix
 
Hors ligne skynet1994 # Posté le 01/08/2010 à 19:19:44
Zéro un jour, zéro toujours
Avatar

Ville : Nîmes
Pays : France métropolitaine

Salut,

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 ;) .

Image utilisateur


Image utilisateur
Image utilisateur
Image utilisateur
 
Hors ligne Archlance # Posté le 01/08/2010 à 19:40:04
Avatar

+1 pour les screens !
Etant sous Linux, j'aimerais voir à quoi ça ressemble. :)
 
Hors ligne Lynix # Posté le 10/08/2010 à 15:58:25
Avatar

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.
 
Hors ligne Lynix # Posté le 19/09/2010 à 19:28:54
Avatar

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) :

Image utilisateur

Pour les curieux, voici le code source du projet de Benchmark :
Secret (cliquez pour afficher)
Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <Ungine/Benchmark.h>
#include <Ungine/String.h>
#include <Ungine/UnicodeString.h>
#include <iostream>
#include <string>

std::string str = "Bonjour le monde";
std::string str2 = "monde";
Ungine::String ustr = "Bonjour le monde";
Ungine::String ustr2 = "monde";
Ungine::UnicodeString unistr = "Bonjour le monde";
Ungine::UnicodeString unistr2 = "monde";

const char* str3 = "monde";

void Test1()
{
	str.find(str2);
}

void Test2()
{
	ustr.Find(ustr2);
}

void Test3()
{
	unistr.Find(unistr2);
}

void Test4()
{
	str.find(str3);
}

void Test5()
{
	ustr.Find(str3);
}

void Test6()
{
	unistr.Find(str3);
}

int main()
{
	Ungine::Benchmark bench("Benchmark Find");
	bench.AddTest(Test1, "std::string::find(const std::string&)");
	bench.AddTest(Test2, "Ungine::String::Find(const Ungine::String&)");
	bench.AddTest(Test3, "Ungine::UnicodeString::Find(const Ungine::UnicodeString&)");
	bench.AddTest(Test4, "std::string::find(const char*)");
	bench.AddTest(Test5, "Ungine::String::Find(const char*)");
	bench.AddTest(Test6, "Ungine::UnicodeString::Find(const char*)");
	bench.Launch();
	std::cout << bench << std::endl;
	return 0;
}
Édité le 19/09/2010 à 19:33:28 par Lynix
 
Hors ligne X.Lewandowski # Posté le 19/09/2010 à 20:41:29

Ca plante au chargement ...

x6 Vaisseaux en LEGO : « http://pio154.perso.sfr.fr/ »
 
Hors ligne Lynix # Posté le 19/09/2010 à 20:43:10
Avatar

Qu'est-ce qui plante au chargement?
Édité le 19/09/2010 à 20:45:45 par Lynix
 
Hors ligne X.Lewandowski # Posté le 19/09/2010 à 20:46:48

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.

Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

x6 Vaisseaux en LEGO : « http://pio154.perso.sfr.fr/ »
 
Hors ligne Lynix # Posté le 19/09/2010 à 20:50:25
Avatar

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.
Édité le 19/09/2010 à 20:50:58 par Lynix
 
Hors ligne Lynix # Posté le 06/10/2010 à 18:49:30
Avatar

Une petite image en provenance de la démo technique #2

Image utilisateur

J'en ai aussi profité pour changer un peu le logo, il est maintenant sur fond transparent :)

Il ne me reste pas grand chose à faire pour sortir la démo technique #2, un peu de patience :)
 
Hors ligne voldayoub # Posté le 06/10/2010 à 21:43:49

Eh ben dis donc ! Bravo !
Sinon, il y a moins de rouge qu'au début, c'est plutot bien.
En core bravo.
Hors ligne Lynix # Posté le 15/10/2010 à 23:10:52
Avatar

Sortie de la seconde démo technique de l'Ungine :
http://forum.utopia-universe.net/viewtopic.php?f=11&t=70

Les résultats de benchmark sont intéressants, n'hésitez pas à les distribuer. :)
 
Hors ligne Archlance # Posté le 17/10/2010 à 12:48:17
Avatar

Image utilisateur
Processeur Intel® Core™ i7-740QM
Vitesse du processeur (GHz) : 1,73
8 GO Mémoire vive
Processeur graphique NVIDIA® GeForce® 330M GT (1GO)
 
Hors ligne Lynix # Posté le 17/10/2010 à 12:59:54
Avatar

Tu as un fichier benchmark.txt qui reprend ces informations :)
 
Hors ligne Archlance # Posté le 17/10/2010 à 13:18:45
Avatar

Salut,

J'ai posté mon poste à l'arrache avant de manger.
En effet, c'est beaucoup plus simple :
Citation : Ungine

Démo technique de l'Ungine #2 : Résultats du benchmark
Carte graphique : GeForce GT 330M/PCI/SSE2
Module graphique : Ungine Renderer Module (0.0.434 - OpenGL 3.1 NVIDIA 189.25)

Test n°1 - Modèles - Score : 51782
Test n°2 - Shaders - Score : 15176
Test n°3 - Textures - Score : 9862
Test n°4 - Masques (Stencil) - Score : 20817

Score global : 97637


C'est bien ce score ? ^^ (ça à l'air moyen...)
Édité le 17/10/2010 à 13:20:26 par Archlance
 
Hors ligne Lynix # Posté le 17/10/2010 à 13:36:39
Avatar

C'est un score moyen, il y a mieux et pire.

Le record est actuellement 521 135 détenu par Zlatows, un belge (L'honneur est sauf :D , vive la belgique)
Édité le 17/10/2010 à 14:37:33 par Lynix
 
Hors ligne InfernoLeZéro # Posté le 24/10/2010 à 20:47:41
Avatar

Y a un lien vers ça sur le site ?
Hors ligne Lynix # Posté le 24/10/2010 à 20:48:35
Avatar

Hors ligne InfernoLeZéro # Posté le 24/10/2010 à 20:51:36
Avatar

vers ce sujet ?
Hors ligne Lynix # Posté le 24/10/2010 à 20:52:28
Avatar

Non, il n'y a pas de site pour parler de l'Ungine et quand il y en aura un, ce sera le sujet qui donnera un lien pour le site :)
 
Hors ligne InfernoLeZéro # Posté le 24/10/2010 à 21:15:49
Avatar

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 :)

Retour au forum "Présentation de vos projets" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx