Skip to content
This repository has been archived by the owner on May 23, 2022. It is now read-only.
/ fizzle Public archive

An OpenGL rendering engine written in the Go programming language

License

Notifications You must be signed in to change notification settings

tbogdala/fizzle

Repository files navigation

FIZZLE v0.3.1

Fizzle is an OpenGL rendering engine written in the Go programming language that currently has a forward rendering pipeline with basic animation and shader support.

In some regards, it is the spiritual successor to my first 3d engine, PortableGLUE.

UNDER CONSTRUCTION

The engine is currently in an alpha state, but you are welcome to see how it's progressing. Any API break should increment the minor version number and any patch release tags should remain compatible even in development 0.x versions.

Requirements

  • GLFW (v3.1) - native library and go binding for window creation
  • Mathgl - for 3d math
  • Freetype - for dynamic font texture generation
  • Groggy - for flexible logging
  • Gombz - provides a serializable data structure for 3d models and animations
  • EweyGewey (v0.3.2) some examples and editors use this GUI library

Additionally, a backend graphics provider needs to be used. At present, fizzle supports the following:

  • Go GL - pre-generated OpenGL bindings using their glow project
  • Opengles2 - Go bindings to the OpenGL ES 2.0 library

These are included when the graphicsprovider subpackage is used and direct importing is not required.

Installation

The dependency Go libraries can be installed with the following commands.

go get github.com/go-gl/glfw/v3.1/glfw
go get github.com/go-gl/mathgl/mgl32
go get github.com/golang/freetype
go get github.com/tbogdala/groggy
go get github.com/tbogdala/gombz
go get github.com/tbogdala/eweygewey

An OpenGL library will also be required for desktop applications; install the OpenGL 3.3 library with the following command:

go get github.com/go-gl/gl/v3.3-core/gl

If you're compiling for Android/iOS, then you will need an OpenGL ES library, and that can be installed with the following command instead:

go get github.com/remogatto/opengles2

This does assume that you have the native GLFW 3.1 library installed already accessible to Go tools.

Current Features

  • forward rendering engine with limited dynamic lighting
  • limited dynamic shadow support
  • components system using JSON files
  • skeletal animations
  • basic camera support
  • basic particle editor (cmd/particles)
  • basic shader explorer (examples/shaders)
  • basic entity system (examples/testscene)

TODO

The following need to be addressed in order to start releases:

  • documentation
  • api comments
  • samples
  • code cleanups
  • possibly remove use of Groggy

LICENSE

Fizzle is released under the BSD license. See the LICENSE file for more details.

About

An OpenGL rendering engine written in the Go programming language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages