Go Games
Engines
- https://github.com/oakmound/oak : I like this, looks simple but solid. I like their "no-deps" goal.
- https://github.com/g3n/engine : Not sure about the dependencies (requires gcc)
- https://github.com/azul3d/engine : Looks good for 3d games.
- https://github.com/hajimehoshi/ebiten : 2D web browser games
DIY
Because of course. Then again, I've got my vec2d package that's pretty good and the stuff I built in Javascirpt I liked, redoing that in Go won't require a lot. I like a lot of what Oakmound did, I just don't like how they did it, so I can use a lot of their code. For screen management, use their shiny fork:
https://github.com/oakmound/shiny
It may be worth building this modularly. Not as a framework but as a set of tools that work well together.
Graphics
2D like JS. Layers of sprites. Each sprite knows how to draw itself to a layer. With Go, more layers will be useful because I can draw them in parallel.
A sprite interface needs a few things
- BoudingBox: Determines if the sprite should be drawn
- Draw
I'll have a camera which can be manually set, follow a path or follow a sprite. It should also be able to scale (zoom) and rotate.
Loading
I want everything packaged in a single file, so I can build a tool to read a resources directory and write everything to a byte slice in a generated file. Now there's no loading necessary.
Physics
I've already got vec2d started. I need to get a little further on shapes. I'd really like to be able to take two shapes and give them linear and rotational movement and check for collision.
Tile Map
Also built around vec2d.
Events
I need to think about how to handle this. I know I want to be able to do things like register a sprite as a click handler (with optional bubble). I'm not sure if it makes sense to have a single event type, a single event interface or just keep the events separate.