Popularity
7.6
Growing
Activity
9.4
-
954
43
59

Programming language: Go
License: Apache License 2.0
Tags: Game Development    
Latest version: v2.4.0

Oak alternatives and similar packages

Based on the "Game Development" category.
Alternatively, view Oak alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Oak or a related project?

Add another 'Game Development' Package

README

Oak

A Pure Go game engine

Go Reference Code Coverage Mentioned in Awesome Go

Table of Contents

  1. Installation

  2. Features

  3. Support

  4. Quick Start

  5. Examples

  6. Finished Games


Installation

go get -u github.com/oakmound/oak/v3

Features and Systems

  1. Window Management
    • Windows and key events forked from shiny
    • Support for multiple windows running at the same time
  2. Image Rendering
    • Manipulation
      • render.Modifiable interface
      • Integrated with optimized image manipulation via gift
    • Built in Renderable types covering common use cases
      • Sprite, Sequence, Switch, Composite
      • Primitive builders, ColorBox, Line, Bezier
      • History-tracking Reverting
    • Primarily 2D
  3. Particle System
  4. Mouse Handling
  5. Joystick Support
  6. Audio Support
  7. Collision
    • Collision R-Tree forked from rtreego
    • 2D Raycasting
    • Collision Spaces
      • Attachable to Objects
      • Auto React to collisions through events
  8. 2D Physics System
  9. Event Handler

Support

For discussions not significant enough to be an Issue or PR, feel free to ping us in the #oak channel on the gophers slack.

Quick Start

This is an example of the most basic oak program:

package main

import (
    "github.com/oakmound/oak/v3"
    "github.com/oakmound/oak/v3/scene"
)

func main() {
    oak.AddScene("firstScene", scene.Scene{
        Start: func(*scene.Context) {
            // ... draw entities, bind callbacks ... 
        }, 
    })
    oak.Init("firstScene")
}

See below or the [examples](examples) folder for longer demos, godoc for reference documentation, and the wiki for more guided tutorials and walkthroughs.

Examples

[Platformer](examples/platformer) [Top down shooter](examples/top-down-shooter-tutorial) [Radar](examples/radar-demo)
[Slideshow](examples/slide) [Bezier Curves](examples/bezier) [Joysticks](examples/joystick-viz)
[Collision Demo](examples/collision-demo) [Custom Mouse Cursor](examples/custom-cursor) [Fallback Fonts](examples/fallback-font)
[Screen Options](examples/screenopts) [Multi Window](examples/multi-window) [Particle Demo](examples/particle-demo)

Games using Oak

Agent Blue Fantastic Doctor
Hiring Now: Looters Jeremy The Clam
Diamond Deck Championship

On Pure Go

Oak has recently brought in dependencies that include C code, but we still describe the engine as a Pure Go engine, which at face value seems contradictory. Oak's goal is that, by default, a user can pull down the engine and create a fully functional game or GUI application on a machine with no C compiler installed, so when we say Pure Go we mean that, by default, the library is configured so no C compilation is required, and that no major features are locked behind C compliation.

We anticipate in the immediate future needing to introduce alternate drivers that include C dependencies for performance improvements in some scenarios, and currently we have no OSX solution that lacks objective C code.