Engo is an open-source 2D game engine written in Go.
A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is currently compilable for Mac OSX, Linux and Windows. With the release of Go 1.4, supporting Android and the inception of iOS compatibility, mobile has been be added as a release target. Web support (wasm) is also available.
v1.0 is now available! To celebrate, there will be a game jam coming soon to celebrate the release, start actually building things and hopefully find any issues. Updates for this will come soon.
We have a gitter chat for people to join who want to further discuss engo
. We are happy to discuss bugs, feature requests and would love to hear about the projects you are building!
common
vs engo
There are currently two major important packages within this repository: github.com/EngoEngine/engo
and github.com/EngoEngine/engo/common
.
The top level engo
package contains the functionality of creating windows, starting the game, creating an OpenGL
context and handling input. It is designed to be used with Systems designed as per github.com/EngoEngine/ecs
specifications.
The common
package contains our ECS implementations of common game development Systems like a RenderSystem
or
CameraSystem
.
sudo apt-get install libasound2-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev xorg-dev libgl1-mesa-dev git-all
gcc.exe
in your PATH environmental variable. We recommend Mingw since it has been tested. You'll also need git installed, we recommend getting it from The official Git site
go get -u github.com/EngoEngine/engo
go get -u -tags js ./...
go get -u -tags android ./...
Engo is always undergoing a lot of optimizations and constantly gets new features. However, this sometimes means things break. In order to make transitioning easier for you, we have a list of those changes, with the most recent being at the top. If you run into any problems, please contact us at gitter.
SetCamera(*CameraSystem)
method. This method allows shaders to automatically update the camera system as it changes, such as between scenes or when the camera system is added.github.com/EngoEngine/engo
as the import path, and the site can be located at
engoengine.github.ioA list of issues for v1.1 can be found here. There's always room for improvement! Feel free to submit proposals, open issues, and let us know how we can improve!
Engo, originally known as Engi
was written by ajhager as a general purpose Go game engine. With a desire to build it into an "ECS" game engine, it was forked to github.com/paked/engi
. After passing through several iterations, it was decided that the project would be rebranded and rereleased as Engo on its own GitHub organization.
Thank you to everyone who has worked on, or with Engo
. None of this would be possible without you, and your help has been truly amazing.
engi
, which engo was based off ofThese are 3rd party projects that have made engo
possible.