Multi-platform 2D and 3D game engine written on Swift
AdaEngine is a game engine fully written on Swift. The main idea is to encourage Swift developers to use this game engine to create fast and impressive games and user interfaces using Swift as their main language. We hope that AdaEngine can become as popular in the GameDev community as Rust and C# are.
We recommend checking out the Create your first project guide for a brief introduction.
To draw a plain window with standard functionality use:
import AdaEngine
@main
struct AdaEditorApp: App {
var scene: some AppScene {
GUIAppScene {
Window()
}
.windowMode(.windowed)
.windowTitle("AdaEngine")
}
}
If you want to discuss this library or have a question about how to use it to solve a particular
problem, there are a number of places you can discuss with fellow
You are welcome to contribute to AdaEngine. Currently, it is under development, and we are working towards our roadmap goals. If you find a bug or have some improvements, we would be glad to see your pull request!
Currently we use Bazel and Swift Package Manager as build tools.
Use Xcode 16.3 or Visual Studio Code with the Swift VSCode Extension and then open Package.swift
file from the root directory.
Bazel optional build system for project. To build project for development download Bazelisk. To generate xcproject, use bazel run generate_xcproj
command in terminal.
[!IMPORTANT]
For Xcode
To build project with vulkan, addVULKAN_SDK
environment path toXcode -> Settings -> Locations -> Custom Paths
, where path must be locate to Vulkan SDK.For Other
By default Bazel and SwiftPM will search Vulkan SDK in your environment variables, setexport VULKAN_SDK = /User/username/VULKAN_SDK
in your env variables or in your terminal file.zshrc
,.bashprofile
, etc.