Table of Contents
"A Swift-based 3D game engine designed for simplicity and creativity on macOS and iOS."
The Untold Engine is an open-source 3D game engine under active development, designed for macOS and iOS platforms. Written in Swift and powered by Metal, its goal is to simplify game creation with a clean, intuitive API. While the engine already supports many core systems like rendering, physics, and animation, there’s still much to build and improve.
- Simple API: Focused on ease of use, even for those new to game development.
- Core Systems: Includes foundational systems for entity registration, rendering, physics, and more.
- Metal Integration: Leverages Apple’s graphics API for efficient rendering.
The Untold Engine is a work in progress, with ambitious goals to:
- Expand physics capabilities with collision detection.
- Enhance PBR rendering for more realistic visuals.
- Add new features to make game development a breeze.
- For Learners: A great way to explore game development with an engine that prioritizes simplicity.
- For Game Developers: An opportunity to contribute to an open-source project and shape its future.
- For Apple Developers: A Swift and Metal-based engine that feels at home on macOS and iOS.
The engine is far from complete, but with every iteration, it gets closer to being an amazing tool for developers. By trying it out, contributing, or sharing your feedback, you can help make the Untold Engine better for everyone.
Author: Harold Serrano
To begin using the Untold Engine, you’ll need:
- An Apple computer.
- The latest version of Xcode, which you can download from the App Store.
Ready to explore the Untold Engine? Follow the step-by-step instructions in Running the Untold Engine.
I’ve designed three different ways for you to Get Started with the Untold Engine. Whether you just want to explore or are ready to make your own game.
The Untold Engine offers an intuitive API for game development. Here's a quick look:
let stadium = createEntity()
setEntityMesh(entityId: stadium, filename: "stadium", withExtension: "usdc")
translateBy(entityId: stadium, position: simd_float3(0.0, 0.0, 0.0))
For a complete breakdown of the API, see API Overview.
The Untold Engine is powered by modular systems that simplify game development:
- Rendering System: Render 3D models with support for PBR and custom shaders.
- Physics System: Simulate gravity, forces, and movement.
- Animation System: Add life to your models with skeletal animations.
- Input System: Capture keyboard and mouse interactions.
- Steering System: Implement intelligent behaviors like path-following.
- Transform System: Manage entity positions, rotations, and scales.
Learn more about these systems in the Core Systems Guide.
Here are some examples of what the Untold Engine can do, showing its progress and current features in action.
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the 👍 reaction)
- Top Bugs (Add your votes using the 👍 reaction)
- Newest Bugs
Reach out to the maintainer at one of the following places:
If you want to say thank you or/and support active development of Untold Engine:
- Add a GitHub Star to the project.
- Tweet about the Untold Engine.
- Write interesting articles about the project on Dev.to, Medium or your personal blog.
Together, we can make Untold Engine better!
We welcome contributions to the Untold Engine! Here’s how you can help:
- Fix Bugs: Review open issues labeled help wanted.
- Improve Features: Enhance existing systems, such as adding collision detection to the physics system.
- Create Tutorials: Write how-to guides or share examples to help other developers.
- Expand the Engine: Suggest and implement new features like AI systems or advanced shaders.
See the Contribution Guidelines for details.
This project is licensed under the LGPL v2.1.
- Developing a Game: You can use the Untold Engine to build your game without needing to open source your game’s code.
- Modifying the Engine: If you make changes to the engine itself, those changes must be open-sourced under the LGPL v2.1.
For more details, see the full license text here.