Giter VIP home page Giter VIP logo

Ada Engine logo

License

What is AdaEngine?

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.

Screenshot from test game SpaceInvaders Screenshot from test game SpaceInvaders

Design Goals

  • Capable: Offer a complete 2D feature set.
  • ECS: AdaEngine is based on the data-oriented paradigm using a self-written ECS. The AdaEngine has been inspired by Apple's RealityKit framework.
  • Simple: AdaEngine is easy to use, and our main goal is to enable a quick start and deliver quick results.

Docs

  • Tutorials: AdaEngine's offical tutorials with how to start your first project.

Getting started

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")
    }
}

Contributing to AdaEngine

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!

How to build

Currently we use Bazel and Swift Package Manager as build tools.

Bazel

Bazel is major build system for project, SPM maybe will be removed in the future versions. To build project for development download Bazelisk. To generate xcproject, use make xcproj command in terminal.

Swift Package Manager

Use Xcode 15.3 or Visual Studio Code with the Swift VSCode Extension and then open Package.swift file from the root directory.

Ada Engine's Projects

adaengine icon adaengine

Multi-platform 2D and 3D game engine written on Swift

glslang icon glslang

Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.

miniaudio icon miniaudio

Audio playback and capture library written in C, in a single source file.

publish icon publish

A static site generator for Swift developers

shaderc icon shaderc

A collection of tools, libraries, and tests for Vulkan shader compilation.

spirv-cross icon spirv-cross

SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.