kaiju

KaijuEngine活跃维护

用 Go 语言和 Vulkan 写的通用 2D/3D 游戏引擎,自带编辑器,适合想用 Go 做游戏又不想折腾底层图形接口的开发者。

General purpose 3D and 2D game engine using Go (golang) and Vulkan with built in editor

26.10.31.1-nightly发布于 2026-10-31 08:13 UTC4,745star +4 / 7 天211fork同步于 2026-11-10 17:38 UTC

怎么上手

由 README 提炼,执行前请确认
git clone --recurse-submodules https://github.com/KaijuEngine/kaiju.git
mkdir bin/ && cd src && go build -tags="debug,editor,filedrop" -o ../bin/ ./
硬件要求按 README 说明

README 未说明具体显存或 GPU 型号要求,仅说明基于 Vulkan,需自行配置 Vulkan 环境;可在 Windows、Linux、Mac 上开发,并可发布到 Windows、Linux、Mac、Android。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Go 和 Vulkan 编写的 2D/3D 游戏引擎,自带编辑器,适合想用 Go 写游戏的工程师

用 Go 语言和 Vulkan 写的通用 2D/3D 游戏引擎,自带编辑器,适合想用 Go 做游戏又不想折腾底层图形接口的开发者。

核心能力

  • 用 Go 编写游戏逻辑,无需切换脚本语言
  • 基于 Vulkan 渲染,内置自定义数学库
  • 内置编辑器,编辑器本身也是引擎运行的游戏
  • 支持粒子系统、骨骼动画与 2D 精灵表
  • UI 系统可选 HTML/CSS 标记,GLSL 着色器热更新

容易踩的坑

必须加 --recurse-submodules 克隆,否则缺少预编译的 Soloud、Bullet3 等依赖库需自行编译;Windows 运行时报 libstdc++-6.dll 缺失需安装 mingw;编辑器仍处于重度开发中,尚不算生产可用。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本26.10.31.1-nightly
  1. 26.10.31.1-nightlyNightly 26.10.31.1-nightlypre-release最新正式版2026-10-31 · 2026-10-31 08:13 UTC

    Nightly build for 26.10.31.1-nightly

  2. 26.10.16.1-nightlyNightly 26.10.16.1-nightlypre-release2026-10-16 · 2026-10-16 08:21 UTC
    查看更新说明

    Nightly build for 26.10.16.1-nightly

  3. 26.10.15.1-nightlyNightly 26.10.15.1-nightlypre-release2026-10-15 · 2026-10-15 08:25 UTC
    查看更新说明

    Nightly build for 26.10.15.1-nightly

  4. 26.09.13.1-nightlyNightly 26.09.13.1-nightlypre-release2026-09-13 · 2026-09-13 08:19 UTC
    查看更新说明

    Nightly build for 26.09.13.1-nightly

  5. 26.09.08.1-nightlyNightly 26.09.08.1-nightlypre-release2026-09-08 · 2026-09-08 08:22 UTC
    查看更新说明

    Nightly build for 26.09.08.1-nightly

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    kaiju-engine-logo

    Kaiju Engine

    Kaiju is a traditionally designed and coded, 2D/3D game engine written in Go (Golang) backed by Vulkan. The goal of the engine is to use a modern, easy, systems level programming language, with a focus on simplicity, to create a new kind of game engine.

    • 📄 2D / 🧊 3D Game Engine
    • 🖥️ Built-in editor
    • 🪟 Windows, 🐧 Linux, 🍎 Mac, 🤖 Android
    • 🎊 Particle systems
    • ⏯️ 2D/3D Animation
    • 🎶 Music, SFX, and 3D sound sources
    • 🔣 UI - Custom built system with optional HTML/CSS markup
    • 🪄 Live shader updates on GLSL changes
    • 🔌 Editor plugins support (via Go)
    • 🚚 Faster builds than other game engines
    • 🔥 Better performance than other game engines
    • ⚠️🚧🏗️👷‍♂️ Work in progress, under heavy development

    Sponsor the project

    If you like the project, and would like to support it, please consider becomming a sponsor on GitHub.

    Join the community

    ⚠️ WORK IN PROGRESS ⚠️

    Though the engine is production ready, the editor is not, feel free to join and contribute to its development.

    For the latest updates, please join the Discord or check my Twitter/X.

    Please review the Ad-Hoc editor readme

    Getting started building the engine/editor

    You can choose to get running quickly by recursively cloning the repository. This will also download the src/libs submodule that includes all the pre-built library files needed to compile. Or, you can build the dependency libraries yourself.

    NOTE: On Windows, If you get an error with something like libstdc++-6.dll missing when you try to run, you may need to install mingw to get those libraries. We'll be looking at adding these to the prebuilts with this issue.

    Clone the Repository with pre-built libraries

    git clone --recurse-submodules https://github.com/KaijuEngine/kaiju.git
    

    If you have Go, C build tools, platform libs, and Vulkan setup, you can start by running:

    mkdir bin/
    cd src
    go build -tags="debug,editor,filedrop" -o ../bin/ ./
    

    Or just open the repository in VSCode (or other IDE) and begin debugging it.

    If your environment isn't setup, check out this doc on getting it setup. You can skip the library building steps (Soloud and Bullet3), you already have this libs from the submodule clone.

    Clone the Repository without pre-built libaries

    git clone https://github.com/KaijuEngine/kaiju.git
    

    If you clone in this way, you'll need to manually build the library dependencies yourself. Please view this doc for how to build Soloud and this doc for how to build Bullet3.

    Documentation

    To run the documentation locally, you need to install mkdocs and mkdocs-material.

    1. Install dependencies:
    pip install mkdocs mkdocs-material
    
    1. Serve the documentation in watch mode:
    mkdocs serve -w ./docs
    

    Kaiju Engine

    An open source game engine and editor, written in Go backed by Vulkan.

    An editor, built in the engine

    The editor is a testament to the engine's flexibility, because the editor itself is a game running in the engine.

    editor.mp4

    2D

    Making 2D games is as simple as switching the editor to "2D" mode.

    2d.mp4

    3D

    A completely custom built math library backs the 3D rendering.

    3d.mp4

    Particle systems

    Compose multiple particle emitters into a system for stunning visual effects.

    particle_systems.mp4

    Animation

    Full skeletal skinning, 2D sprite sheets, flip books, and material animations.

    animation

    UI

    A very fast, completely custom-built, retained-mode UI with the option of using HTML/CSS for markup.

    ui.mp4

    Physics

    Simulate your worlds with 3D physics.

    physics.mp4

    Live shader updates

    Easily visualize your GLSL shader code in real time.

    live_shader.mp4

    Development velocity

    Unmatched edit-build-launch speed. Iterate quickly with incredibly fast build times.

    development_velocity.mp4

    Cross platform

    Create on Windows, Linux and Mac.

    Deploy to Windows, Linux, Mac, and Android (more platforms added soon).

    Audio

    Play sounds and music, even in 3D space, powered by Soloud.

    Editor overview

    (YouTube) Kaiju Engine Editor Introduction

    Editor plugins

    kaiju-editor-plugins.mp4

    Why Kaiju?

    The current version of the base engine renders extremely fast, faster than most would think a garbage collected language could go. In my testing a release mode build of a game in Unity with nothing but a black background and a cube runs at about 1,600 FPS. In Kaiju, the same thing runs at around 5,400 FPS on the same machine. In fact, a complete game, with audio, custom cursors, real time PBR rendering with real time shadows, UI, and more runs at 2,712 FPS (in "debug" mode) screenshots or it didn't happen.

    Why Go (golang)?

    I love C, and because I love C and found out that Ken Thompson played a part in designing Go, I gave Go a chance. It has been such a joy to use and work with I decided to port my C game engine to Go. Go is a modern system-level language that allows me to write code the way I want to write code and even have the opportunity to do some crazy things if I want to (no strings attached). Also the simplicity and "just works" of writing Assembly code was a great boost to my happiness.

    What's more, it's a language that other developers can easily learn and jump right into extending the engine/editor. No need for developers to re-figure out some bespoke macros or crazy templating nonsense. It's flat, easy, straight forward, and the foot-gun is hidden behind some walls, but there if you want it. Furthermore, developers can write their games in Go directly, no need for some alternative language that is different from the engine code (but we'll include Lua for modding).

    What about the Garbage Collector?!

    I am creating this section because I get asked about it when I mention "Go", possibly not realizing that most public game engines use a garbage collector (GC).

    The GC is actually a feature I'm happy with (shocker coming from a C guy). Well, the reason is simple, if you're going to make a game engine that the public will use and needs to be stable, you need a garbage collector. Unity has C# (and possibly an internal GC as well), Unreal has a GC (and it could use a tune up if you ask me), Godot has a GC albeit their scripting language or when you use C#. It is actually very important for public engines to have a GC because people are only human and make a lot of mistakes, mistakes they'll blame on you (the engine developer) before they blame themselves.

    Coincidentally, the overall design I have for the engine plays very well with the GC and last I measured, I have a net-0 heap allocation while running (may need a new review). If you don't abuse the GC, you shouldn't generally feel it, it runs concurrently as well.

    I'll be the first to admit, I think the developers of Go can create a better GC than I can, and probably better than Unreal and Unity too.

    Star history

    Star History Chart