Go 3D Game Engine http://g3n.rocks
Fork from https://github.com/g3n/engine
|
|
7 anni fa | |
|---|---|---|
| animation | 7 anni fa | |
| audio | 7 anni fa | |
| camera | 7 anni fa | |
| core | 7 anni fa | |
| experimental | 7 anni fa | |
| geometry | 7 anni fa | |
| gls | 7 anni fa | |
| graphic | 7 anni fa | |
| gui | 7 anni fa | |
| light | 7 anni fa | |
| loader | 7 anni fa | |
| material | 7 anni fa | |
| math32 | 7 anni fa | |
| renderer | 7 anni fa | |
| text | 7 anni fa | |
| texture | 7 anni fa | |
| tools | 7 anni fa | |
| util | 7 anni fa | |
| window | 7 anni fa | |
| .gitattributes | 7 anni fa | |
| LICENSE | 8 anni fa | |
| README.md | 7 anni fa |

<a href="https://godoc.org/github.com/g3n/engine"><img src="https://godoc.org/github.com/g3n/engine?status.svg" alt="Godoc"></img></a>
<a href="https://goreportcard.com/report/github.com/g3n/engine"><img src="https://goreportcard.com/badge/github.com/g3n/engine" alt="Go Report Card"/></a>
G3N (pronounced "gen") is a cross-platform OpenGL 3D game engine written in Go.
### To see G3N in action try the G3N demo or the Gokoban award winning game.
<img style="float: right;" src="https://raw.githubusercontent.com/g3n/g3nd/master/data/images/g3nd_screenshots.png" alt="G3ND In Action"/>
## Highlighted Projects
Gokoban - 3D Puzzle Game (1st place in the 2017 Gopher Game Jam)
## Dependencies
G3N requires Go 1.8+
The engine requires an OpenGL driver and a GCC-compatible C compiler to be installed.
On Unix-based systems the engine depends on some C libraries that can be installed using the appropriate distribution package manager.
For Ubuntu/Debian-like Linux distributions, install the following packages:
xorg-devlibgl1-mesa-devlibopenal1libopenal-devlibvorbis0alibvorbis-devlibvorbisfile3For Fedora, install the required packages:
$ 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
For CentOS 7, enable the EPEL repo then install the same packages as for Fedora above:
$ sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Remember to use yum instead of dnf for the package installation command.
For Windows, the necessary audio libraries sources and DLLs are supplied but they need to be installed manually. Please see Audio libraries for Windows for details. We tested the Windows build using the mingw-w64 toolchain.
For macOS, you should install the development files of OpenAL and Vorbis. If you are using Homebrew as your package manager, run:
brew install libvorbis openal-soft
## Installation
The following command will download the engine along with all its Go dependencies:
go get -u github.com/g3n/engine/...
## Features
<img style="float: right;" src="https://github.com/g3n/g3n.github.io/raw/master/img/g3n_banner_small.png" alt="G3N Banner"/>
## Hello G3N
The code below is a basic "hello world" application
(hellog3n)
that shows a blue torus.
You can download and install hellog3n via: go get -u github.com/g3n/demos/hellog3n
For more complex demos please see the G3N demo program.
package main
import (
"github.com/g3n/engine/util/application"
"github.com/g3n/engine/geometry"
"github.com/g3n/engine/material"
"github.com/g3n/engine/math32"
"github.com/g3n/engine/graphic"
"github.com/g3n/engine/light"
)
func main() {
app, _ := application.Create(application.Options{
Title: "Hello G3N",
Width: 800,
Height: 600,
})
// Create a blue torus and add it to the scene
geom := geometry.NewTorus(1, .4, 12, 32, math32.Pi*2)
mat := material.NewPhong(math32.NewColor("DarkBlue"))
torusMesh := graphic.NewMesh(geom, mat)
app.Scene().Add(torusMesh)
// Add lights to the scene
ambientLight := light.NewAmbient(&math32.Color{1.0, 1.0, 1.0}, 0.8)
app.Scene().Add(ambientLight)
pointLight := light.NewPoint(&math32.Color{1, 1, 1}, 5.0)
pointLight.SetPosition(1, 0, 2)
app.Scene().Add(pointLight)
// Add an axis helper to the scene
axis := graphic.NewAxisHelper(0.5)
app.Scene().Add(axis)
app.CameraPersp().SetPosition(0, 0, 3)
app.Run()
}
<img style="float: right;" src="https://github.com/g3n/demos/blob/master/hellog3n/screenshot.png" alt="hellog3n Screenshot"/>
## Documentation
For the engine API reference, please see
.
There is also the beginning of a Getting Started Guide, and a newly created list of Guides and Tutorials:
Along with those, a good way to learn G3N is to step through the source code of the demos.
## Contributing
If you find a bug or create a new feature you are encouraged to send pull requests!
## Community
Join our channel on Gophers Slack (Click here to register for Gophers Slack). It's a great way to have your questions answered quickly by the G3N community.