explaingit

kaijuengine/kaiju

4,496GoAudience · developerComplexity · 4/5Setup · moderate

TLDR

A 2D and 3D game engine written in Go with Vulkan rendering, a built-in visual editor, physics, 3D audio, and cross-platform support for Windows, Linux, Mac, and Android.

Mindmap

mindmap
  root((kaiju))
    What It Does
      2D and 3D games
      Built-in editor
      Plugin system
    Rendering
      Vulkan backend
      Live shader edit
      Particle effects
    Features
      Physics
      3D spatial audio
      HTML CSS UI
    Platforms
      Windows Linux Mac
      Android
    Language
      Written in Go
      Go plugins only
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a 2D or 3D game in Go without needing to learn C++ or a separate scripting language

USE CASE 2

Design game UI layouts using HTML and CSS inside the Kaiju editor

USE CASE 3

Add particle effects and skeletal animations through the built-in visual editor

USE CASE 4

Write Go plugins to extend the engine with custom behavior and systems

Tech stack

GoVulkanHTMLCSS

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires cloning with a pre-built library submodule and installing Go plus platform build tools.

In plain English

Kaiju is a 2D and 3D game engine written in Go (a programming language known for being fast and straightforward to read). It uses Vulkan, a low-level graphics system, to render games at high speed. The engine comes with a built-in visual editor, meaning you can build and preview your game without leaving the tool itself. One notable design choice: the editor is actually a game running inside the engine, which demonstrates the team's confidence in the engine's own foundation. The engine covers a wide range of features: 2D and 3D game creation, particle effects, skeletal and sprite animation, a custom UI system with an option to write interface layouts using HTML and CSS, physics simulation, 3D spatial audio, and live shader editing that lets you see visual changes in real time without restarting. Games built with it can run on Windows, Linux, Mac, and Android. The team chose Go specifically because it is a modern systems-level language that is fast, easy to learn, and avoids the complex template and macro systems found in older engine languages like C++. The engine's performance is a stated priority: in the creator's own tests, an equivalent scene runs several times faster in Kaiju than in Unity. The team attributes this to careful memory management and direct use of Vulkan rather than higher-level graphics wrappers. The project is open source and actively developed, with a public project board and a Discord community for contributors and users. The engine itself is described as production-ready, but the editor is still a work in progress and not yet stable for production use. The engine supports plugins written in Go, so developers can extend it without learning a separate scripting language. Fast build times are a deliberate goal of the project. To get started, you clone the repository along with its pre-built library submodule, install Go and the required build tools, and run a single build command. Local documentation is available through a separate tool called mkdocs.

Copy-paste prompts

Prompt 1
How do I clone and build the Kaiju engine in Go, and create a simple 3D scene with a rotating cube?
Prompt 2
Using Kaiju, write a Go plugin that spawns a particle effect when a player collides with a wall object
Prompt 3
How do I use HTML and CSS to create a health bar HUD displayed over a Kaiju 3D game?
Prompt 4
Show me how to add a skeletal animation to a character in Kaiju and trigger different animations from Go code based on player input
Open on GitHub → Explain another repo

← kaijuengine on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.