Solo arena · source-checked
The solo arena, explained.
Eighteen computer-controlled snakes, four behaviours and no network match. These numbers come from the shipped game.js and bot-brain.js, not from a recording of a player's run.
This page is not a live Gulper.io server
The name may suggest an online match. This build is a single-player arena: every rival is simulated in your browser, and the rankings describe the current run. The table separates what this page does from what an online service might offer. We did not test the original online game, so its exact rules are not claimed here.
| Question | This build | What it does not provide |
|---|---|---|
| Opponents | 18 computer snakes with four play styles, simulated locally. | No other people, matchmaking or network connection. |
| Rankings | A local arena list for the current run. | No global, live or persistent multiplayer leaderboard. |
| Progress | Personal best and sound setting in this browser. | No account, cloud save or cross-device sync. |
| Source | An independent implementation with its own rules and interface. | Not the original Gulper.io code or online service; details may differ. |
| Access | A static browser game; a school or work network can still block it. | No guarantee of being unblocked; .io does not mean online. |
Keep the solo boundary in mind when comparing advice from other Gulper.io pages: tactics built for human opponents, teaming or a global server do not transfer directly to these bots.
Boost is a budget, not a free sprint
Boosting raises speed from 3.60 to 7.00 units per frame at the starting size. It also burns score every four frames. At 60 frames per second that is 15 burn ticks per second.
The burn is 1 + floor((radius − 12.5) × 0.06) per tick. At 100 score the radius is 12.5, so the cost is 1 point per tick: 15 score per second. At 3000 score the radius is 31.1 and the cost is 2 points per tick: 30 score per second at that moment.
Those are starting rates, not a fixed budget. Each update recalculates the radius from the current score; above 450 score, natural decay also removes points every 20 frames before the boost burn. As the score falls, the radius and the per-tick burn can change. A one-second estimate is therefore useful, but dividing a large score by its starting burn cannot predict the total duration.
| Score | Body segments | Boost speed | Burn per tick | Burn per second at that score |
|---|---|---|---|---|
| 100 | 16 | 7.00 | 1 | 15 |
| 500 | 66 | 6.61 | 1 | 15 |
| 1,000 | 133 | 6.46 | 1 | 15 |
| 2,000 | 266 | 6.29 | 1 | 15 |
| 3,000 | 400 | 6.16 | 2 | 30 |
Worked check: one second at 100 score
With no food collected and no collision, holding boost for one second spends 15 points and leaves 85. If you keep holding from 100, the base radius stays 12.5, so each tick still costs 1 point and boost stops at 50 after about 3.3 seconds. That clean run is a threshold check, not a promise for a normal run with food and rivals.
Correction: release before empty
Release after about 2.5 seconds (37–38 points spent at the starter rate) or start the escape at 150–200 score. A mass-1 pellet adds 2 points after flooring; a kill adds 180. At the starter burn, a kill funds 12 more seconds of boost.
The score floor is not a safe health bar. It only controls whether boost is available; a collision still ends the run. The body-segment column uses the boosted floor of 16 segments and may start one or two segments higher before the first burn tick. The table gives the rate at the listed score when boost starts, not a countdown to the floor.
What the bots can actually see and do
Each rival has its own brain and its own reaction roll. They do not share a plan, and they are not remote players. The four profiles differ in vision, reaction time, how long they commit to a chase, and how often they sprint.
| Style | Vision | Reaction window | Chase commitment | Sprint chance | Hunt roll |
|---|---|---|---|---|---|
| Collector | 540 | 233–367 ms | 1.40 s | 18% | 6% |
| Hunter | 610 | 150–233 ms | 2.50 s | 48% | 72% |
| Drifter | 500 | 283–450 ms | 1.80 s | 30% | 24% |
| Rookie | 430 | 367–583 ms | 1.30 s | 22% | 16% |
Vision is a hard limit: targets and food beyond the profile's range are not considered. The hunter sees up to 610 units, the rookie up to 430. A bot also occasionally lapses for 18–37 extra frames, so its next decision can arrive more than half a second late.
A hunt only starts when the bot's score is above 85% of the target's, the target has at least 130 score, the distance is between 100 and 80% of its vision, and neither snake is shielded. That last threshold matters: below 130 score you stop being selected as prey, but you are also one mistake from the end.
Failure: follow a larger hunter
A 3000-score hunter turns on a 94.5-unit radius while boosting (45.2 at base speed). Following its tail keeps you inside its body line and gives it the next decision.
Correction: cross the nose, then turn inside
At 500 score your boost turn radius is 81.6 units, smaller than the hunter's 94.5. Commit to a crossing angle, then turn inside its arc rather than chasing behind it. The bot may choose a new goal on its next reaction, so this is geometry, not a guaranteed trick.
Baiting works because the bot aims at a predicted point: a lead of 45–100 units and a flank offset of 45 units plus your radius. A late turn can still put you under its head. Keep the boundary behind you rather than beside you when you try it.
The boundary needs more room than it looks
The arena radius is 1600 units. The bots begin an inward turn at 180 units plus their radius from the wall; you get no such assist. Your head dies as soon as its center passes the boundary, and the spawn shield does not protect against the wall.
At boost speed, your minimum turn radius is boost speed ÷ turn rate. Add your body radius to get the distance from the wall you must preserve while turning. The table gives the geometric minimum, with no reaction time included.
| Score | Base-speed margin | Boost margin | Boost turn radius |
|---|---|---|---|
| 100 | 50.4 | 86.2 | 73.7 |
| 500 | 61.9 | 102.9 | 81.6 |
| 1,000 | 66.4 | 109.6 | 85.1 |
| 2,000 | 72.1 | 118.6 | 90.3 |
| 3,000 | 76.3 | 125.6 | 94.5 |
Failure: turn 50 units from the wall
At 3000 score and boost speed, the turn needs 125.6 units including the body. Starting at 50 means the arc reaches the boundary before the snake is heading back inward.
Correction: turn earlier, or release first
Start the boost turn at 125.6 units or more. Releasing boost lowers the requirement to 76.3 units, but that is still more than 50. Leave another margin for reaction time.
Sweep lanes, do not chase single pellets
The arena starts with 550 ambient pellets and 35 high-energy pellets. The ambient field averages about 120.9 units between pellets, but the positions are random every run. The magnet radius is 105 units, so its suction diameter is 210 units.
A mass-1 pellet adds 2 points after the score floors. A mass-2, 3 or 4 high-energy pellet adds about 5, 8 or 11 points; the mass-3 and mass-4 ones drift slowly. When the field drops below 520, the game adds one new ambient pellet per frame until it reaches 520, so waiting in one spot is usually worse than sweeping.
Failure: cross 200 units for one pellet
At base speed 3.60 units per frame, 200 units takes about 56 frames, just under a second. One ambient pellet pays 2 points; a lane sweep at boost speed covers more ground and more pellets.
Correction: overlap your suction circles
Space lanes about 180 units apart. The 210-unit suction diameter leaves a 30-unit overlap, so you do not leave a gap between passes. Detour for a drifting high-energy cluster, not for a single ambient dot.
Controls and the first thirty seconds
- Move the pointer over the canvas to steer; on touch, drag a finger.
- Hold the left mouse button or Space while the arena has focus to boost. On touch, use a second finger. Release to stop spending score.
- Your own body is safe to cross. Another snake's body and the outer boundary end the run.
- New runs start with a 3-second shield against snake collisions. It does not protect against the boundary.
- The first thirty seconds: collect two or three nearby pellets, stay outside 610 units of the hunter's vision when you can, and keep at least 100 score before using boost to escape.
Where these numbers come from
The calculations use the constants and update rules in this repository's game.js (arena radius, speed, radius curve, boost burn, food values) and bot-brain.js (vision, reaction, chase and sprint profiles). They are demonstrations of the shipped rules, not recordings of a player's run. The 18 rivals are local simulations; there is no network play.
This is an independent Gulper.io-style arena. It is not the original online Gulper.io, and no claim is made here about the original's current rules, player counts or leaderboards. Fonts and third-party assets are listed in the notices.