BETA · A PLAYABLE MOD SYSTEM

instacalc: the game

Starring Calcy

A shooter whose source is part of the game.

Play Calcy. Press [I] to open the live .ic sheets. Change Toki's firing rule and watch the next volley change. No rebuild. The game, the tutorial, and the mod system are the same thing: readable sheets that all run on InstaCalc itself.

DESIGN PRINCIPLE
The game is the tutorial is the mod system.
PLAY THE SHOOTER  →  INSPECT THE RULE  →  EDIT THE SHEET  →  KEEP PLAYING
IT ALL RUNS ON INSTACALC ITSELF
INSTACALC: THE GAME
THE GAME IS THE TUTORIAL IS THE MOD SYSTEM
PLAY · INSPECT · CHANGE
LIVE PARAMETER BRIDGE
// Parameter bridge demo: this value updates player movement
🚀
LIVE GAME / LIVE RULES
WASD move · mouse aim · [I] inspect
PLAYABLE MOD SYSTEM Change the running game from a readable sheet. No rebuild, no separate mod editor.

Follow a rule into the mod

Every sheet here ships in the game's mods/ folder. Pick one to read its real source. The speed slider in the game view is a working beta parameter bridge; press [I] in the game to open the source-level inspector and edit the loaded sheets live while you play.

PARAMETER BRIDGE DEMO
mods/core/art/
calcy.ic Sprite
parsley_bot.ic Robot
mods/core/characters/
calcy.ic Calcy
crew.ic Crew
mods/core/weapons/
simd_inferno.ic 43 lines
pratt_laser.ic 43 lines
gatling.ic 37 lines
buzzsaw.ic 37 lines
railgun.ic 37 lines
mods/doom/ (3D Raycast)
raycast.ic DDA
weapons.ic Weapons
mods/std/ (Standard Lib)
geom.ic Vectors
mods/core/foes/
wanderer.ic Diamond
spinner.ic Pinwheel
serpent.ic Wave
waves.ic Director
mods/core/physics/
spring_grid.ic Grid
reactor_thermo.ic Thermal
mods/core/bosses/
exponent_titan.ic Titan
mods/core/upgrades/
evolutions.ic Recipes
mods/core/meta/
manifest.json JSON
engine/ (JS host runtime)
IcCompiler.ts JIT
skins.ts Skins
characters/calcy.ic Ship specs, kinematics, and clock limits
Presets:
player_speed: 350
dash_mult: 2.5

A GAME YOU CAN OPEN

Play the game. Read the rules. Change the rules. Keep playing.

InstaCalc: The Game is a dual-stick shooter whose rules are moving into small, readable .ic sheets that all run on InstaCalc itself. They ship with the game and open inside it. The same simple language that calculates a result can define what a weapon does, so the game doubles as its own tutorial and its own mod system. There is no separate scripting language to learn and no rebuild between editing a rule and seeing it in action.

01 / PLAY

It has to be a real game

Dodge, aim, shoot, and survive. The calculation pipeline becomes the world you fight through, with its stages turned into enemies, weapons, and decisions.

02 / OPEN

The mod is already there

Press [I]. Open the active sheets for Calcy, weapons, and Toki's firing rule. Read the formulas and their live values inside the game.

03 / CHANGE

Learn by making it yours

Change a rule and watch the next volley. You learn the system by using it, and you learn the game by reading how it works.

// toki-fire.ic
aim_allowed = manual_mode > 0 ? manual_aim : (manual_aim + target_present > 0)
fire = (level > 0) * (cooldown <= 0) * aim_allowed
THIS RUNS IN THE GAMEToki's firing decision is a sheet you can edit.

Change when Toki is allowed to fire. The next shot uses the new rule, while the run continues. No compile, restart, or separate mod editor.

Program your robot friend

Open companion.ic in the game. Its formulas decide when the robot follows you, approaches a target, retreats, and fires. Change its behavior sheet while you play and the robot uses the new decision on the next update.

This is a beta, and the whole game is not in .ic yet. Player tuning, Toki's firing rule, and the companion's decisions are live sheets. JavaScript still handles rendering, input, audio, sensing, collisions, and other gameplay the current sheet runtime cannot express.

WHAT'S ACTUALLY IN .IC TODAY

Measured, not promised.

These are real counts from the current build, not a projection. The standard library is genuinely self-hosted in .ic. The game's rules are partway there: player tuning, Toki's firing decision, and the companion robot's behavior are live sheets; the rest of the game is still JavaScript and is being moved over sheet by sheet.

mods/std/*.ic323 lines across 9 sheetsconstants, geometry, grid, math, physics, random, solver, stats, Excel subset
Stdlib functions32 registered · 30 compiled from checked-in .icwith live source inspection in the game
mods/core/**characters, weapons, foes, physics, upgrades, storythe mod content model, loaded from a manifest
Host runtime~11,000 lines of TypeScriptstill handles rendering, input, audio, sensing, and collisions

The claim here is live iteration, not line count: change a gameplay rule in place and keep playing without rebuilding the host app. Where a rule still lives in JavaScript, that is the next thing to move into a sheet, not something hidden.

Try the live speed-change demo ↑