Bonjour à tous,
Cela fait un bout de temps que je me balade par ici, j’apprécie la qualité et la variété des articles ainsi que le site/forum très claire et bien fait. Félicitation à l'équipe, l'association et tous les contributeurs. Vu que j'ai entamé un side project intéressant, j'en profite pour créer mon premier sujet et en parler un peu
Présentation
Développeur Android/Java, j'ai 28 ans et habite Strasbourg. J'ai toujours été attiré par l'informatique, les jeux vidéos, la bidouille et l'envie continuelle d'apprendre et de créer. J'ai fais mes premières armes sur half-life avec le modding(map avec worldcraft(hammer) et de bidouilles SDK mais le C++ c'était trop costaud pour moi à l'époque. J'ai également fait un peu de mapping Quake 3, unreal tournament, du modeling ave 3ds max, blender etc… Je suis venu créer ce sujet afin de faire un devlog sur mon actuel projet qui consiste à développer un genre de moteur 3D en Java avec OpenGL. Ici pour partager mon avancement, recevoir des avis et de l'aide, et pourquoi pas aider certains qui sont au même niveau que moi.
L'histoire
Depuis 1 an, j'ai repris le game dev mais sous une approche développeur, d'abord en 2D avec libGDX et un peu de Godot, puis en 3D avec jMonkey Engine(vous l'aurez compris, Java est mon langage de prédilection et j'ai un petit faible pour l'open source). Après cette petite année de pratique, c'est la 3D qui m’attire le plus. Avec jMonkey Engine (et la découverte de la 3D) j'étais face à beaucoup de questions du genre "pourquoi j'appelle cette méthode" ou "pourquoi je dois faire ça avant d'avoir un matériel qui affiche une texture" etc etc. Et puis le déclic, je suis tombé sur les vidéos d'un mec, ThinMatrix, qui fait des jeux en java (avec LWJGL)directement en partant d'OpenGL, avec beaucoup de vidéos devlog et de tuto OpenGL. Après avoir visionné pas mal de ces vidéos et fait quelques recherches, je me suis mis dans l'idée d'apprendre OpenGL afin de pouvoir comprendre le pourquoi du comment, et ainsi être à l'aise sur les concepts 3D et le fonctionnement interne d'un moteur 3D/moteur de jeu 3D.
Le projet
Créer un moteur de jeu 3D en java à l'aide de LWJGL, ce dernier étant principalement un binding C <-> Java de l'API OpenGL. Je m'orienterai vers un doom-like ou un minecraft-like sans prétention pour tester l'avancement du projet en ayant un contexte de jeu défini, mais je n'en suis pas encore là. J'utilise principalement deux supports pour m'aider, les vidéos de ThinMatrix et le GitBook : 3D Game Development with LWJGL 3. Le projet se veut open source et cross plateforme.
Buts
- Apprendre OpenGL, faire mes armes sur l'API
- Apprendre les différents mécanismes et concepts derrière la création d'un moteur 3D
- Gagner en compétences Java et en architecture logiciel
- S'amuser
Avancement
- [x] Classes de base, boucle principale, implémentation de LWJGL
- [x] Utilisation des VAOs et VBOs pour afficher des triangles
- [x] Implémentation des shaders
- [x] Afficher des objects en perspective (projection matrix, etc etc)
- [x] Afficher des textures
- [x] Camera et déplacements basiques
- [ ] OBJLoader
- [ ] Éclairage simple
- [ ] Interface utilisateur
- [ ] Fog
- [ ] Générateur de terrain
- [ ] Map loader ?
- [ ] Le reste