Sobre el proyecto

G3N (pronunciado "gen") es un motor de juego 3D OpenGL de código abierto escrito en el lenguaje de programación Go, diseñado para construir aplicaciones Go multiplataforma con representaciones 3D ricas y dinámicas. ### Características principales - **Soporte multiplataforma:** Funciona en Windows, Linux y macOS, con soporte para WebAssembly listado como 90% completo. - **GUI integrada:** Incluye un framework GUI básico con varios widgets. - **Grafo de escena jerárquico:** Los nodos pueden contener otros nodos para organizar escenas 3D. - **Audio espacial:** Soporta audio espacial 3D mediante OpenAL, incluyendo formatos .wav y .ogg. - **Iluminación y renderizado:** Ofrece iluminación ambiental, direccional, puntual y focal en tiempo real, junto con renderizado basado en física (reflectancia Fresnel, oclusión geométrica, distribución microfacet). - **Soporte de modelos y geometría:** Incluye cargadores para glTF (.gltf, .glb), Wavefront OBJ (.obj) y COLLADA (.dae). También incluye generadores de geometría para cajas, esferas, cilindros y toros, con soporte para morph targets y multimateriales. - **Animación y shaders:** Incluye un framework de animación para posición, rotación y escala, y soporta shaders GLSL de vértices, fragmentos y geometría creados por el usuario. - **Otras características:** Soporta pantallas HiDPI, cámaras de perspectiva y ortográficas, fuentes TrueType, texturas de imagen (GIF, PNG, JPEG), e incluye un motor de física básico experimental. ### Dependencias e instalación El motor requiere Go 1.8+, un controlador OpenGL y un compilador C compatible con GCC. Los sistemas basados en Unix requieren bibliotecas C específicas (como xorg-dev, libgl1-mesa-dev, libopenal-dev y libvorbis-dev). Las compilaciones en Windows usan la cadena de herramientas mingw-w64, mientras que macOS requiere paquetes de Homebrew para OpenAL y Vorbis. El motor se puede instalar mediante comandos estándar de Go clonando el repositorio y ejecutando `go install ./...`. ### Ejemplos y comunidad El repositorio incluye un ejemplo básico "Hello G3N" que muestra un toro azul y un botón que cambia su color, demostrando cámaras, luces e integración GUI. El proyecto proporciona documentación de API mediante GoDoc, guías wiki y un canal de comunidad en Discord para soporte y discusión.