Skip to content

An easy to use, easy to read, no nonsense portable C++ 2D game engine, how bout that?

License

Notifications You must be signed in to change notification settings

sgowen/GowEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

451 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GowEngine

An easy to use, easy to read, no nonsense LGPL 2.1 licensed portable C++ 2D game engine

Demo

Demo

Features

  • Written in portable C++17
  • Graphics rendered with OpenGL 2.0 and OpenGL ES 2.0
  • Audio rendered with OpenAL
  • Real-time multiplayer networking with UDP sockets
  • Data Driven Architecture with JSON and Lua
  • Homegrown physics and Box2D physics
  • All LGPL licensed dependencies are compiled into shared libraries that can be swapped out by end users, cuz that's how that's supposed to work, right?

Supported Platforms

  • Android
  • iOS
  • Linux
  • macOS
  • Windows

Dependencies

  • bin_to_c: converts files to binary for embedding inside GowEngine
  • box2d: handles physics (optional)
  • file-compat: implements fopen for Android and Windows
  • glfm: creates window and OpenGL context and handles input on Android and iOS
  • glfw: creates window and OpenGL context and handles input on Linux, macOS, and Windows
  • imgui: handles user interface
  • ios-cmake: handles cmake stuff for iOS and macOS
  • libsndfile: loads sounds
  • Lua: convenient CMake project for buidling Lua 5.4.6
  • openal-soft: renders audio
  • rapidjson: loads json
  • sol2: an incredible C++ Lua API wrapper
  • stb: loads textures
  • steamworks_sdk: integrates with Steam (optional)

Building

Roadmap

  • Implement a memory tracker via logging calls to malloc with placement new operator (currently no memory leaks, but if ever I encounter them again, I need to be better equipped for that battle)

About

An easy to use, easy to read, no nonsense portable C++ 2D game engine, how bout that?

Resources

License

Stars

Watchers

Forks

Packages

No packages published