SkillAgentSearch skills...

PalicoEngine

Metal-Based Game Engine in Swift 🐑

Install / Use

/learn @forkercat/PalicoEngine
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Palico Engine: Metal-Based Game Engine in Swift 🐑

macOS license

platform-compatibility swift-version-compatibility

Implement a game engine on macOS using Metal API. Still in development. Currently I am working on a more capable entity-component-system MothECS :)

<p align="left"> <img src="gallery/screenshot.jpg" width="100%" alt="Palico Engine Screenshot"/> </p>

Palico - It is a cat-like combat companion in Monster Hunter!

<p align="left"> <img src="https://www.touchtapplay.com/wp-content/uploads/2021/04/Monster-Hunter-Rise-Gathering-Palico.jpg" width="25%" alt="This is Palico! Credits: Francesco"/> </p>

Palico Engine's Sprint Board on Jira (need permission request). Currently there are 65 issues in total!

🔧 Install & Run

# Clone
git clone https://github.com/forkercat/PalicoEngine.git
cd PalicoEngine

# Compile
swift build

# Run
swift run Editor

📝 User Guide

Mouse Controls:

  • Command + Left: Rotate camera
  • Right: Look around
  • Middle: Pan
  • Scroll: Zoom in/out

Keyboard Controls:

  • Tab: Select next in-scene object
  • F: Focus on object
  • Q: No action
  • W: Translate
  • E: Rotate
  • R: Scale

Create GameObject:

<p align="left"> <img src="gallery/create-gameobject.jpg" width="40%" alt="Palico Engine Screenshot"/> </p>

🍻 Dependencies

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:

🥺 Future Development

Rendering:

  • [ ] Add skybox
  • [ ] Add shadow
  • [ ] Support PBR
  • [ ] Support deferred rendering (render pass has already been setup)

Model:

  • [ ] Load 3D models
  • [ ] Load textures in models
  • [ ] Load animation

Other:

  • [ ] Improve MothECS
  • [ ] Integrate ImGuizmo
  • [ ] Property/Inspector panel
  • [ ] Game object selection
  • [ ] Scene loading (yaml)
  • [ ] Content browser (Asset Panel)

🙏 Reference

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!

View on GitHub
GitHub Stars46
CategoryDevelopment
Updated3mo ago
Forks2

Languages

Swift

Security Score

92/100

Audited on Jan 1, 2026

No findings