Skip to content
/ engo Public
forked from EngoEngine/engo

Engo is an open-source 2D game engine written in Go. It uses the Entity-Component-System paradigm.

License

Notifications You must be signed in to change notification settings

mewpull/engo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Engo

Join the chat at https://gitter.im/EngoEngine/engo License Build Status

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, sporting Android and the inception of iOS compatibility, mobile will soon be added as a release target. Web support (gopherjs) is also planned.

Currently documentation is pretty scarce, this is because we have not completely finalized the API and are about to go through a "prettification" process in order to increase elegance and usability. For a basic up-to-date example of most features, look at the demos.

Getting in touch / Contributing

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!

Getting Started

  1. First, you have to install some dependencies:
  2. If you're running on Debian/Ubuntu: sudo apt-get install libopenal-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev xorg-dev libgl1-mesa-dev
  3. If you're running on Windows: download all above packages using win-builds (Open an issue to let us know about other methods)
  4. If you're on OSX, you should be OK. Open an issue if you are not
  5. Then, you can go get it: go get -u engo.io/engo
  6. Now, you have two choices:
  7. Visit our website, which hosts a full-blown toturial series on how to create your own game, and on top of that, has some conceptual explanations;
  8. Check out some demos in our demos folder.
  9. Finally, if you run into problems, if you've encountered a bug, or want to request a feature, feel free to shoot us a DM or create an issue.

Breaking Changes

Engo is currently 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.

  • ecs.Entity changed to ecs.BasicEntity, world.AddEntity is gone - a lot has changed here. The entire issue is described here, while this comment in particular, should help you migrate your code.
  • Renamed engo.io/webgl to engo.io/gl, because the package handles more than only webgl.
  • scene.Exit() - a Scene now also requires an Exit() function, alongside the Hide() and Show() it already required.
  • github.com/EngoEngine/engo -> engo.io/engo - Our packages engo, ecs and webgl should now be imported using the engo.io path.
  • engi.XXX -> engo.XXX - We renamed our package engi to engo.

History

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 organisation.

Credits

Thank you to everyone who has worked on, or with Engo. Non of this would be possible without you, and your help has been truly amazing.

About

Engo is an open-source 2D game engine written in Go. It uses the Entity-Component-System paradigm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%