SwiftArche aims to develop an exclusive game engine for the Apple platform based on Swift and Metal. This idea stems from my many practices in engine development, including the experience of developing on Vulkan, WebGPU, C++ and other platforms. As a personal project, I hope to focus on a single platform to reduce the workload of development, and I like the Swift language very much, I think it has the potential to be comparable to those game engines based on C#.
The architecture of the entire engine adopts a component system architecture similar to Unity. And similar to Unity, I will use a lot of C++ third-party libraries and bridge them through OBJC++, so the whole project is a mixed project. I will try my best to improve the comments to make it easier for other developers to understand the structure of the code, but I don't have much time to write additional documents. Developers can Clone this project and use Xcode to generate Apple-style documentation.
This repository contains submodules for external dependencies, so when doing a fresh clone you need to clone recursively:
git clone --recursive https://github.com/ArcheGraphics/SwiftArche.git
Existing repositories can be updated manually:
git submodule init
git submodule update
Please Refer to Demos which show some gifs.
- Face Tracking with morph
- Collider
- Character Controller
- Joint
- Scene Query
- Cascade Stable ShadowMap
- PBR Rendering (roghness-metallic, clearcoat)
- HDR IBL Lighting and baker (pure compute shader)
- Fog (Linear, Exponential, ExponentialSquared)
- ACES ToneMapping with auto luminance exposure
- Custom Shader with split Metal Shading Library
- Skinned Animation
- Morph Traget
- SDF Text
- Debugger tools with auxiliary wireframe rendering
- Fluid simulation
In order to speed up the speed of git clone, assets are not introduced in the way of submodule. Since this project mainly builds and tests on the Mac, and then develops on the iOS platform, a series of assets are required for Mac testing:
- glTF-Sample-Models
- other assets include hdr, texture and others downloads from: