Game review

JunoJS

7 / 10

Developer
Robert Kotecki
Publisher
Robert Kotecki
Released
1 January 2013
Platforms
Web browser (desktop and mobile)
Genre
Arcade shooter
Monetisation
Free, open source, no ads and no in-game purchases
Players
Single-player only

The short version

JunoJS is about as simple as an arcade shooter gets: a low-poly ship auto-fires down an infinite tube while the player drags left or right to dodge a ring of white obstacle blocks, and the only goal is to survive longer than last time. It doesn't need to be more than that, because it was built for the very first js13kgames competition in 2013 and placed 2nd out of 20 entries that year — a genuinely notable result from the format's earliest days. What matters for this shelf is that both control schemes the author documented back then still work correctly today: a real touchscreen drag steers the ship smoothly on a phone, and mouse or arrow-key input does the same on desktop, with zero console errors across every test run.

Biggest strengths

  • Both documented control schemes were tested directly and both work correctly on the build served today — a real touchscreen drag on the left or right side of the screen steers the ship smoothly, and desktop mouse and arrow-key input do the same, thirteen years after release
  • Zero console errors, zero page errors and zero failed requests across every phone and desktop test run, which is a genuinely clean bill of health for code this old
  • The low-poly OBJ-based ship and obstacle models, plus the radial star-field and glowing engine trail, are legitimately attractive for a competitive entry built in 9.8 kilobytes

Biggest weaknesses

  • The title screen's "touch anywhere to play" instruction text overflows off the right edge of a 390-pixel-wide phone screen and is only partly readable; the instruction is short enough that it doesn't block play, but it's a real, easily reproduced layout bug
  • There is exactly one mechanic — dodge the ring, keep firing — and no upgrades, power-ups, or escalating structure beyond obstacles arriving faster, so the ceiling on how long this holds attention is low regardless of skill
  • Dying resets the run with no visible game-over screen captured in testing, just a hard cut back to a fresh "GO!!!" wave at zero score, which feels abrupt compared to modern arcade games' death feedback

Who it's for: Anyone who wants a two-minute nostalgia hit, or is curious what a competitive js13k entry looked like in the genre's first year

Our recommendation: Worth two or three short runs on whatever device is in hand; don't expect more than a high-score chase

7 / 10

There's a particular pleasure in confirming that something built for a 13-kilobyte code jam in 2013 still runs exactly as intended in 2026, and JunoJS clears that bar cleanly. It's a tube shooter in the old-school sense — a low-poly ship flies forever down a starlit corridor, firing automatically, while a ring of white obstacle blocks scrolls toward the camera and the player's only job is to not be where they land. Robert Kotecki built it for the very first js13kgames competition, and js13kgames.com's own archived results still show it placing 2nd out of that year's 20 entries — a real, citable result from the format's founding year, not a claim to take on faith.

One mechanic, executed cleanly

There isn't much to describe mechanically because there isn't much here: drag to steer, obstacles approach in a ring, auto-fire chips away at anything in the ship's path, and the score climbs for as long as the player stays alive. Reading the shipped code confirms this is genuinely all there is — no power-up system, no weapon variety, no level structure beyond obstacles arriving in denser waves over time. For a 2013 entry built under a hard size limit that's a perfectly reasonable scope, and it's worth judging on those terms rather than against a decade of games that came after it. The low-poly ship and obstacle models (built from actual .obj files converted into inline JavaScript arrays, visible directly in the repository) hold up well, and the glowing engine trail and radial star-field give the whole thing more visual identity than the mechanic alone would suggest.

Controls actually verified, not just documented

The game's own js13k description is specific: "use mouse to move your ship left and right" on desktop, and "touch the left / right side of the screen" on mobile. Both were tested directly rather than taken on faith. On the phone profile, a real emulated touchscreen drag from the centre of the screen out to either edge smoothly moved the ship to that side of the tube, confirmed by watching it visibly relocate across three separate test sequences. On desktop, arrow-key input (a control scheme the game doesn't advertise but which works anyway) moved the ship identically, and the on-screen score climbed steadily in both cases with no stutter or dropped input. Across every one of these test runs, browser console output stayed completely clean — no errors, no failed network requests, nothing — which is a genuinely clean result for a game old enough to predate most of the web platform APIs in common use today.

The one real interface flaw worth flagging: the title screen's instruction text, "touch anywhere to play," is sized for a wider screen than a modern phone provides, and on a 390-pixel-wide viewport it runs off the right edge with the final letters cut away. It doesn't stop anyone from understanding "touch anywhere," so it isn't a functional blocker, but it's a real, easily reproduced cosmetic bug on exactly the device class this shelf cares most about.

Final verdict

JunoJS doesn't pretend to be more than it is: a tight, single-mechanic arcade toy from js13k's first year that still runs cleanly and still responds correctly to both the touch and desktop controls its author promised. The ceiling on how long it holds attention is low — there's a real lack of structure beyond "survive longer" — and the one interface bug found here is a minor but genuine rough edge. What earns this a pass rather than a miss is that the thing this shelf cares about most, whether the controls actually work on the device in front of you, checks out cleanly on both counts, backed by a real js13k placement that's stood for over a decade.

Pros and cons

Pros

  • Both documented control schemes were tested directly and both work correctly on the build served today — a real touchscreen drag on the left or right side of the screen steers the ship smoothly, and desktop mouse and arrow-key input do the same, thirteen years after release
  • Zero console errors, zero page errors and zero failed requests across every phone and desktop test run, which is a genuinely clean bill of health for code this old
  • The low-poly OBJ-based ship and obstacle models, plus the radial star-field and glowing engine trail, are legitimately attractive for a competitive entry built in 9.8 kilobytes
  • A real, verifiable historical placement: js13kgames.com's own archived results rank it 2nd out of 20 entries in edition 1 (2013), the first year the competition ever ran
  • No build step, MIT licensed, and the only asset shipped alongside the game is a small archival copy of the original competition zip under 10KB — nothing to strip, nothing to worry about

Cons

  • The title screen's "touch anywhere to play" instruction text overflows off the right edge of a 390-pixel-wide phone screen and is only partly readable; the instruction is short enough that it doesn't block play, but it's a real, easily reproduced layout bug
  • There is exactly one mechanic — dodge the ring, keep firing — and no upgrades, power-ups, or escalating structure beyond obstacles arriving faster, so the ceiling on how long this holds attention is low regardless of skill
  • Dying resets the run with no visible game-over screen captured in testing, just a hard cut back to a fresh "GO!!!" wave at zero score, which feels abrupt compared to modern arcade games' death feedback
  • This is a 2013 curiosity rather than a live project — the GitHub repository hasn't been touched since its release week, so nothing here has been maintained or revisited since

Category scores

Category scores are the reviewer's read on each area. They inform the overall score but do not average into it — the number at the top of the page is a judgement, not a calculation.

  • Gameplay 6 / 10
  • Visuals 7 / 10
  • Performance 8 / 10
  • Value 8 / 10
  • Originality 7 / 10
  • Replayability 5.5 / 10
  • Interface 5.5 / 10