The language that just runs
Simple.Sharp.Useful.
MAKO is a small programming language for scripts, tools, games, and engine-side experiments. It runs with mko and has a planned Modularity profile called ModuMAKO.
What MAKO is
Small language. Real runtime.
MAKO is not trying to be C++, Rust, Unity, or Unreal. It is trying to be easy to read, easy to type, and useful enough to make real things without fighting boilerplate.
No ceremony
Write a .mko file, run it with mko, and get moving. No project setup required.
Made for tools and games
MAKO has packages for 2D, 3D, input, audio, UI, HTTP, and engine experiments.
Built-in JSON
Encode and decode dicts, lists, strings, numbers, booleans, and none without imports.
Safe HTTP
using Net gives you requests, headers, JSON helpers, and clean failure handling.
Command-line ready
args() makes MAKO useful for scripts, tools, test runners, and automation.
Testable
mko test runs every .mko file under tests/ and catches regressions before they ship.
Example
It reads like a script.
MAKO keeps the surface simple: functions, loops, dicts, lists, packages, and clear names. The engine and tooling pieces stay behind the API.
game.mko
using Mako2D;
using Inputs;
using Audio;
main() {
Mako2D.init(800, 600, "MAKO Demo");
Mako2D.fps(60);
beep = Audio.tone("square", 440, 0.1);
x = 400;
while Mako2D.running() {
dt = Mako2D.delta();
if Inputs.key_down("RIGHT") {
x = x + 300 * dt;
}
if Inputs.key_pressed("SPACE") {
Audio.play(beep);
}
Mako2D.begin();
Mako2D.clear(Mako2D.BLACK);
Mako2D.circle(x, 300, 24, Mako2D.SKYBLUE);
Mako2D.end();
}
}Packages
Batteries included, but not bloated.
MAKO keeps the language core small and grows through packages. Use what you need, ignore what you do not.
using Mako2D;
Sprites, shapes, Camera2D, text, and 2D game loops.
using Mako3D;
Cameras, primitives, models, raycasts, and 3D demos.
using Inputs;
Keyboard, mouse, cursor, and gamepad helpers.
using Audio;
Sound files, synth tones, music, and positional audio.
using MakoUI;
Dear ImGui-powered windows, panels, menus, tables, and tools.
using Net;
HTTP requests, JSON responses, headers, and URL helpers.
Modularity
MAKO has an engine path.
MAKO is the standalone language. Inside Modularity, the engine-focused version is planned as ModuMAKO — MAKO shaped around Modularity’s scripting rules, node metadata, and engine workflows.
The goal is not to replace ModuCPP. ModuCPP can grow into the lower-level compiled language, while ModuMAKO gives Modularity a simple scripting layer for gameplay, tools, editor panels, automation, and quick experiments.

ModuMAKO
MAKO syntax, adapted for Modularity.
player_controller.mko
script "PlayerController";
Modu_CODETYPE = ModuNode;
using Modularity;
fn start() {
log("Player ready");
}
fn update(dt) {
if Input.key_down("W") {
self.move(0, 0, -5 * dt);
}
}MAKO
The standalone language and runtime for scripts, tools, games, JSON, Net, UI, audio, and graphics experiments.
ModuMAKO
The Modularity-focused MAKO profile with required script metadata and engine-side behavior.
ModuCPP
The deeper compiled Modularity language path, built closer to C/C++ and lower-level engine systems.
Try it while it is weird.
MAKO is alpha software. APIs will move. Names will change. Some things will break. That is the point right now: build fast, test hard, and make it better.