A cross platform game engine for Swift that allows you to build 2D and 3D games.
Gate Engine includes intuitive APIs for loading resources, handling user inputs, and rendering content.
Platform | CI | Render | Sound | Keyboard | Mouse | Touch | Gamepad |
---|---|---|---|---|---|---|---|
Windows¹ | ✔︎ | ◑ | ✔︎ | ✔︎ | ⛌ | ✔︎ | |
macOS | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | |
Linux | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ⛌ | ⛌ | |
iOS/tvOS | ✔︎ | ✔︎ | ✔︎ | ✔︎iPad |
✔︎ | ✔︎ | |
Android | ⛌ | ⛌ | ⛌ | ⛌ | ⛌ | ⛌ | |
HTML5 | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ |
Complete: ✔︎ | Incomplete: ⛌ | Partial: ◑
All platforms require a functioning Swift toolchain. Click a platform above for setup information.
¹Windows support for Swift and Swift Package Manager is in development. Latest Swift toolchain recommended.
On most platforms, Gate Engine is a self contained Swift Package with no external dependencies.
Add the package to your project like any other package and you're done.
.package(url: "https://github.com/STREGAsGate/GateEngine.git", .upToNextMajor(from: "0.0.1"))
A suite of example projects is available at Gate Engine Demos.
If you appreciate this project, and want it to continue, then please consider putting some dollars into it.
Every little bit helps! Support With:
GitHub,
Ko-fi,
or
Patreon.
Gate Engine started it's life in 2016 as a "for fun" project that used the typical strategy, for hobby game engine projects, of high performance and small footprint. It used a basic scene graph and only worked on Apple devices.
After years of frustration over the amount of time spent building games using "efficient" code, I decided to try making an engine that focused on making the process of building a game more fun. This lead to a custom math library that uses spoken language APIs instead like position.move(units, toward: direction)
. Then I added a high level renderer which allows loading content with a single initializer Geometry(path: "model.obj")
, and a drawing API that uses primitives in a layer style to easily reason about the outcome.
After several years of slowly adding and replacing more and more APIs with approachable and fun ones, GateEngine was born. This repository is a fresh project and I'm slowly moving over features from my private engine, while fixing things that are less polished along the way.
This project was a massive undertaking, and was created to be enjoyed. So go make something awesome!