Metal-Based Game Engine in Swift π
Implement a game engine on macOS using Metal API. Still in development. Currently I am working on a more capable entity-component-system MothECS π
Palico - It is a cat-like combat companion in Monster Hunter!
Palico Engineβs Sprint Board on Jira (need permission request). Currently there are 65 issues in total!
# Clone
git clone https://github.com/forkercat/PalicoEngine.git
cd PalicoEngine
# Compile
swift build
# Run
swift run Editor
Mouse Controls:
Command + Left
: Rotate cameraRight
: Look aroundMiddle
: PanScroll
: Zoom in/outKeyboard Controls:
Tab
: Select next in-scene objectF
: Focus on objectQ
: No actionW
: TranslateE
: RotateR
: ScaleCreate GameObject:
dependencies: [
.package(url: "https://github.com/forkercat/OhMyLog.git", .branch("main")),
.package(url: "https://github.com/forkercat/MathLib.git", .branch("main")),
.package(url: "https://github.com/forkercat/MothECS.git", .branch("main")),
.package(url: "https://github.com/forkercat/SwiftImGui.git", .branch("update-1.86-docking")), // forked from @ctreffs
.package(url: "https://github.com/forkercat/SwiftImGuizmo.git", .branch("master")), // forked from @ctreffs
],
Thanks to SwiftImGui by @ctreffs I am able to use ImGui in this application.
I forked the repository and wrapped ImGui v1.86 and added new OSX backend file. Related PRs:
Rendering:
Model:
Other:
Started by following game engine turotial series by TheCherno and wrote implementation in C++. Also check out Hazel Engine repository. It is a great learning resource!