FIELD MANUAL

your only weapon is f(x)

01THE GOAL

Each player commands a team of soldiers on a Cartesian plane. On your turn, one of your soldiers fires a mathematical curve: you write a function f(x), and the shot travels exactly along its graph. Any soldier the curve touches dies, enemy or ally. The last alliance with a soldier standing wins, and each player picks their team (2v2, 1v3, free-for-all…).

02THE TURN

  • The red ringmarks whose soldier is up. Each team cycles through its soldiers in a fixed order, and deaths don't change who's next.
  • You have a time limit per turn (30s by default, configurable when creating the match). Run out, and the turn passes without a shot.
  • You can type your function at any time, even during your opponent's turn; only the Fire button waits for your turn.
  • The shot history sits beside the field, visible to everyone. Hovering over a line highlights the soldier who fired it. Clicking a function in the history copies it into your box, great for tweaking a shot that almost landed.

03HOW THE SHOT WORKS

  • The x in your function is the distance ahead of your soldier: x=0 is the soldier itself. The shot always starts exactly where they stand: the curve is shifted to begin at the soldier, so adding a constant (x^2 + 5) changes nothing.
  • Each soldier fires toward the side with more field ahead: anyone left of the y-axis fires right, and vice versa. The character's eye shows the direction.
  • f(0) must exist: log(x) and 1/x are rejected, so use log(x+1), 1/(x+1).
  • The shot dies when it leaves the field, explodes on a rock or hits a sudden jump in the function (asymptotes of tan(x) or 1/(x-5), for example). Small jumps (up to ~30 in height) get through: x % 4 makes a nice sawtooth.
  • It kills any soldier within 0.7 of the curve. Friendly fire is configurable under ⚙ Settings: on (the default), the curve kills allies caught in its path; off, allies (including your own soldiers) are immune. The shooter is always immune to their own shot. The shot doesn't stop on a kill: it passes through and can score a double kill.

04ROCKS, CRATERS AND TUNNELS

The black circles block shots: a shot explodes at the first point of solid rock and digs a real crater there (radius 1.2). The rock never disappears, but later shots pass freely through the cratersalready dug. Keep hammering the same spot (~4 to 6 shots on a big rock) and you'll open a tunnel straight to the target on the other side.

05BUILDING FUNCTIONS

You can use pretty much any math expression: numbers, + - * / ^, parentheses, implicit multiplication (3x, 2(x-1)), pi and e. The main tools:

ToolExampleWhat for
Line-0.5xstraight diagonal shot
Parabola0.1x^2 - 2xdips and comes back up: the classic ballistic arc
Kneemax(0, x-10)a line that changes slope at x=10; add it to your shot to "bend" the trajectory at an exact point
Vabs(x-12)goes down and back up with a spike at x=12
Bell12exp(-((x-10)/4)^2)rises, hops over a rock centered 10 ahead and returns to its original height
Wave5sin(x/3)weaves between obstacles (amplitude 5, period ~19)
Smooth step8tanh(x-15)changes height without a spike at x=15
Stairs / sawtoothfloor(x), x % 4small jumps are allowed, and the vertical part of the jump kills too
Conditionalx > 20 ? -2(x-20) : 0piecewise curves: straight until x=20, then dives
Clampmax(min(x,3),-3)locks the curve between a ceiling and a floor

Also work: cos, tan, atan, sqrt, cbrt, log2, log10, sinh/cosh, sign, round, hypot, comparisons inside math ((x>5)*2)… Don't work: root/log of a negative number (the shot stops there) and a bare comparison (x == 5 on its own).

06RECIPES TO STEAL

  • -0.5xsimple diagonal to a target down and ahead
  • 0.05x^2 - 1.5xlong dive that climbs back up at the end
  • -0.5x + 3.4*max(0, x-24)goes straight down and breaks upward at x=24, two targets in one shot
  • 12exp(-((x-10)/4)^2)hops over the rock between you and the target
  • 5sin(x/3)snakes through the middle corridor
  • x > 15 ? 10sin(x-15) : 0straight, then turns into a wave: slips under and rises weaving

Tip: the field grid has lines every 5 units, and you can turn on mouse coordinates in the match settings, so measure the distance to the target before writing the function. Remember: the x in the function is the distance from your soldier, not the map coordinate.

07PLAYING ONLINE

  • Create a room and share the link. The lobbyshows who's joined; besides picking a seat, each player chooses a team and marks Ready. The game (and the timer) only start once everyone confirms.
  • Anyone joining a full room becomes a spectator: they see everything, history included.
  • Lost your connection? Reload the same page: your seat stays reserved and the game pauses (timer included) until you're back.
  • The match settings are set by whoever creates the room and apply to everyone: number of players (up to 4), soldiers per team, rock count, map size (up to 2x), turn time and positions (sides, quadrants or random).
← Back to menu