À propos du projet

G3N (prononcé "gen") est un moteur de jeu 3D OpenGL open source écrit en langage de programmation Go, conçu pour créer des applications Go multiplateformes avec des représentations 3D riches et dynamiques. ### Fonctionnalités principales - **Support multiplateforme :** Fonctionne sur Windows, Linux et macOS, avec un support WebAssembly considéré comme achevé à 90 %. - **Interface graphique intégrée :** Inclut un framework GUI de base avec divers widgets. - **Graphe de scène hiérarchique :** Les nœuds peuvent contenir d'autres nœuds pour organiser les scènes 3D. - **Audio spatial :** Prend en charge l'audio spatial 3D via OpenAL, y compris les formats .wav et .ogg. - **Éclairage et rendu :** Offre un éclairage ambiant, directionnel, ponctuel et projecteur en temps réel, ainsi qu'un rendu basé sur la physique (réflectance de Fresnel, occlusion géométrique, distribution de microfacettes). - **Support des modèles et géométries :** Inclut des chargeurs pour glTF (.gltf, .glb), Wavefront OBJ (.obj) et COLLADA (.dae). Il propose également des générateurs de géométrie pour les boîtes, sphères, cylindres et tores, avec prise en charge des cibles de morphing et des multimatériaux. - **Animation et shaders :** Dispose d'un framework d'animation pour la position, la rotation et l'échelle, et prend en charge les shaders GLSL créés par l'utilisateur pour les sommets, fragments et géométries. - **Autres fonctionnalités :** Prend en charge les écrans HiDPI, les caméras perspective et orthographique, les polices TrueType, les textures d'image (GIF, PNG, JPEG), et inclut un moteur physique expérimental de base. ### Dépendances et installation Le moteur nécessite Go 1.8+, un pilote OpenGL et un compilateur C compatible GCC. Les systèmes basés sur Unix nécessitent des bibliothèques C spécifiques (telles que xorg-dev, libgl1-mesa-dev, libopenal-dev et libvorbis-dev). Les builds Windows utilisent la chaîne d'outils mingw-w64, tandis que macOS nécessite des paquets Homebrew pour OpenAL et Vorbis. Le moteur peut être installé via les commandes Go standard en clonant le dépôt et en exécutant `go install ./...`. ### Exemples et communauté Le dépôt inclut un exemple de base "Hello G3N" montrant un tore bleu et un bouton qui change sa couleur, démontrant les caméras, les lumières et l'intégration GUI. Le projet fournit une documentation API via GoDoc, des guides wiki et un canal communautaire Discord pour le support et les discussions.