Skip to content

haraldLmueller/go-engine

 
 

Repository files navigation

GoEngine

cloned from github.com/haraldLmueller/go-engine changed to gl v 3.2-core to be able to run on oder systems

Go engine is a simple game engine intended for 2D or 3D games. This project is currently in progress and it is likely to change significantly over the next year or so.

Build Status

Features

  • OpenGL renderer
  • Obj importer
  • Lighting Engine
  • Particle System
  • UI system
  • Controller system (mouse, keyboard, joystick)
  • Multiplayer networking library

Platform Support

  • Windows
  • macOS
  • webgl/browser (WIP)
  • android (Planned)

Instructions

Example programs can be found in examples/*.

Go-Engine uses go-gl which requires opengl.

Core Packages

  • renderer - package contains common renderer interface and scenegraph implementation.
  • opengl - package contains opengl renderer implementation.
  • engine - package Is the high level engine interface that handles a lot of boilerplate stuff.
  • controller - package Is the api for keyboard/mouse/joystick controllers. (see examples/simple/main.go)
  • assets - asset management for images and obj files.

Important Interfaces and Structs

  • renderer.Entity (interface) - anything that can be moved, rotated and scaled. (eg. Camera/Node/ParticleEmitter)
  • renderer.Spatial (interface) - something that can be Drawn by a Renderer (eg. Geometry/Node)
  • renderer.Node (struct) - Container for Spatials.
  • renderer.Geometry (struct) - A collection of faces and verticies.
  • renderer.Material (struct) - used for texturing a geometry.
  • renderer.Camera (struct) - Struct used to manage the camera.
  • renderer.Light (struct) - Struct used to manage dynamic lights.
  • controller.Controller (interface) - Can have (mouse/keyboard...) events bound to.
  • engine.Engine (interface) - The main game engine interface
  • engine.Updatable (interface) - anything that can be updated every game simulation step.

Demo

About

open-gl rendering and scenegraph library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 90.6%
  • GLSL 8.2%
  • Other 1.2%