G3N is an OpenGL 3D Game Engine written in Go. It can be used to write cross-platform Go applications that show rich and dynamic 3D representations.
8E52 This repository is a fork of g3n/engine.
- Cross-platform: Windows, Linux, and macOS
- Integrated GUI with many widgets
- Hierarchical scene graph
- 3D spatial audio via OpenAL
- Real-time lighting with ambient, directional, point, and spot lights
- Physically-based rendering shaders
- Geometry generators for box, sphere, cylinder, torus, etc...
- Geometries support morph targets and multimaterials
- Support for animated sprites based on sprite sheets
- Perspective and orthographic cameras
- Text image generation and support for TrueType fonts
- Image textures can be loaded from GIF, PNG or JPEG files
- Animation framework for position, rotation, and scale of objects
- Support for user-created GLSL shaders
- Support for HiDPI displays
Go 1.23+ is required.
An OpenGL driver and a GCC-compatible C compiler is required.
See below for OS specific requirements.
sudo apt-get install xorg-dev libgl1-mesa-dev libopenal1 libopenal-dev libvorbis0a libvorbis-dev libvorbisfile3
sudo dnf -y install xorg-x11-proto-devel mesa-libGL mesa-libGL-devel openal-soft openal-soft-devel libvorbis libvorbis-devel glfw-devel libXi-devel libXxf86vm-devel
# enable the EPEL repository
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install xorg-x11-proto-devel mesa-libGL mesa-libGL-devel openal-soft openal-soft-devel libvorbis libvorbis-devel glfw-devel libXi-devel libXxf86vm-devel
sudo pacman -S base-devel xorg-server mesa openal libvorbis
sudo xbps-install git xorg-server-devel base-devel libvorbis-devel libvorbis libXxf86vm-devel libXcursor-devel libXrandr-devel libXinerama-devel libopenal libopenal-devel libglvnd-devel
Use the mingw-w64 toolchain by downloading this file.
Download the necessary audio DLLs and add them to your PATH, or build the DLLs yourself with instructions here.
brew install libvorbis openal-soft