Next SpaceTribute to Magic Systems

Home / About This Project

2026

About This Project

In two calendar days we brought a game from 1997 to the web browser, and over the next five days we fine-tuned it, put it through its paces and prepared it for the public web. The work was done by a team of AI programs, one architect and one person who made the decisions. An honest record: what happened and when, what we used, and how we checked that the game works.

Next Space (1997) ran under DOS, and today you cannot start it without special tricks. This project rebuilt it as a web application. The browser loads the original files from the CD (rooms, scripts, voices, music, videos), and the new program does what the original one did. The puzzles and the plot were not rewritten by hand: they come from the original data, just as in 1997.

The numbers on this page are not from memory. We checked each one again against the change history and the project documents. Anything that could not be verified is marked. The page was written on 2 October 2026; on 8 October 2026 we updated it with everything that has changed since.

The project in numbers

  • Start: the morning of 1 October 2026. The first files on the server appeared at 10:01, the first entry in the change history at 10:57. Nothing was done earlier: the preparation (phase 0) took place in this first hour.
  • The first two days: by 14:46 on 2 October 2026, almost 29 hours had passed since the first files, with an overnight break from 22:08 to 11:19. There were 127 entries, and by the evening of 1 October the game could already be played from start to credits in both languages.
  • The whole project: 6 days and 13 hours passed between the first entry and the last merge before this update (0:22 on 8 October 2026). New entries were added every day from 1 to 7 October.
  • Entries: 358 (253 ordinary entries and 105 merges of individual tasks’ work). Day by day: 96, 73, 53, 37, 31, 33 and 30, plus 5 just after midnight on 8 October.
  • Review: 79 merges carry a note saying they were reviewed by the architect. The other 26 are auxiliary: they only bring the latest main branch into a task still in progress.
  • Size: over 24,700 lines of game code (over 18,000 after the first two days), over 24,200 lines of tests (almost 12,000) and 30 main documents totalling over 124,000 words (21 documents and over 70,000 words).
  • Tests: 1,284 automated component tests (833 on 2 October) and hundreds of tests in a real browser – more on this below.

Timeline

The work proceeded in waves, with groups of tasks running in parallel. The labels T1 to T33, V1 and W1 to W7 are the task numbers assigned by the architect (see below). Many of the later tasks have no number; the table describes them in words.

PhaseWhenTasksWhat happened
0. Preparation1 Oct, 10:01 – 10:57groundworkFiles were extracted from the CD, the original program was decompiled into readable code, and the data formats and the scripting language were deciphered.
1. Plan1 Oct, 10:59 – 11:10architectureThe architect wrote the engine plan and divided up the work.
2. Foundations1 Oct, 11:05 – 11:42T1, T2, T3The application skeleton, the script interpreter (86 instructions), and the sound, music and video players.
3. Characters and gameplay1 Oct, 11:54 – 15:00T4, T5, V1Frank walks, clicking works, conversations and scenes play. A 345-step walkthrough was produced from the video. The game was playable about four hours after the first entry.
4. Dead ends1 Oct, 11:23 – 18:14T7a, T7b, T7cA computer worked through the game’s rules looking for places where the player could get stuck. The approved fixes were switched on.
5. Two CDs, two languages1 Oct, 15:47 – 18:46T8, T12The game also reads the Slovak CD from June 1997, and the page switches between Slovak and Czech.
6. Full playthrough1 Oct, until 19:26T6An automated player completes the game from start to credits in both languages (about 8.5 hours after the first entry).
7. Player comfort1 Oct, 18:15 – 22:03T9, T11, T13, T14, T16, T17Skipping the intro, a hint system, voice lines no longer cut off, cleaner controls, image scaling, uninterrupted music, a fix for audio dropouts.
8. All the endings1 Oct, until 22:08T15All the deaths, the bad ending, the good ending and the dialogue branches were played through.
9. Second day: fine-tuning2 Oct, 11:19 – 14:46T18 – T22Bug reporting, choosing a chapter and a starting place, playing “like a human”, a robustness sweep.
10. Web2 Oct, 12:49 – 13:56W1 – W3Media, texts and the website itself.
11. Saving, mobile, a website in three languages2 Oct, 16:16 – 18:05T23, T24, W4 – W6When loading, the game offers 61 positions from the story, and when saving, four free slots. The game can be played by touch on a phone. The website is in Slovak, Czech and English; this page was added, along with all the characters and their cast as given by Peter.
12. The English edition3 Oct, 20:37 – 21:14T26, T27Five agents translated 3,479 of the game’s texts (about 25,600 words) into English. The voices stay original; the subtitles and texts are in English.
13. Slow networks and the data pack3 Oct, 21:55 – 4 Oct, 20:35T25, T28 – T32The game copes with a slow connection and can be downloaded to the device. The picture no longer flickers between rooms. Voices, music and videos are in modern, smaller formats. The hints in all 61 positions were checked.
14. Bugs from play, security, the gate5 Oct, 10:45 – 18:49T33 and unnumbered tasksFixes for two bugs Peter found while playing, a security review, and a single command that checks everything before every update of the game.
15. Code reviews6 Oct, 10:50 – 20:25unnumberedTwo independent code reviews, Peter’s decisions on their findings, a Czech game interface, and updated libraries with no known vulnerabilities.
16. The public website7 Oct, 16:08 – 20:32unnumberedThe game and the website at one public address, a fix for needless downloading on the new host, an honest frame count, saving through the game’s original screens.
17. Refinements7 Oct, 23:16 – 8 Oct, 0:22unnumberedA numbers page with hard facts only, a footer with just the contact, a review of all the website’s translations, and a new default for voices and subtitles.

The chapter What has changed since the first two days describes these days in more detail.

What we worked from

Two CDs. The Slovak one from June 1997 and the Czech one from September 1997. The dates come from the files: the main game program is dated 28 June 1997 on the Slovak CD and 17 September 1997 on the Czech one. Between June and September the authors were still fixing the game: the logic differs in fourteen rooms; for example, they fixed a control freeze in room 37. That is why our engine plays the Slovak version with these fixes by the authors, and the original June state can be restored with a switch.

The game files are the source of truth. The images, texts, voices, music, videos and room logic all come from the CD.

A YouTube longplay (Next Space (1997) – Longplay – Slovenský dabing by MiNHO Dotus, published in 2018, Slovak voices, 3 hours 38 minutes 38 seconds) was used only for what the files do not tell us: the order in which a player moves through the game, the solutions to puzzles, and a check that our result looks like the original. From the video we produced a transcript of the dialogue, a room-by-room timeline and a 345-step walkthrough. When the game was actually played through, it turned out that the walkthrough was missing 50 steps and that 25 had to be modified. The gaps were filled in from the rules in the game’s scripts, not from the video.

A side discovery. On the Czech CD, the file VOICE/ROOM54.SAM hides 16 minutes and 10 seconds of Slovak voice recordings that the game never refers to. The documentation’s hypothesis: when the Czech version was made, some leftover Slovak recordings were accidentally left in the file.

Who did what: the AI models

The project was not written by a single program but by a team of agents. Here, an agent is an instance of a language model that is given a written assignment (for example, “write the sound and music player and verify it with tests”), works independently in its own copy of the project, runs programs and tests, and finally writes a report: what it did, which tests passed, what is still missing. No agent sees the whole game at once, which is why an architect is needed.

  • Claude Opus 5.5: the architect. It designed the solution, divided the work into tasks (T1 to T33, V1, W1 to W7 and further unnumbered ones), decided which would run in parallel, and reviewed every result (both the code and the screenshots) before merging it into the main branch.
  • Claude Sonnet 5.5: all the implementers. Each task was done by a separate agent in a separate working copy (82 task branches; 34 after the first two days), so that the agents would not overwrite each other’s work. In the first hour the plan assigned four tasks to run simultaneously (T1, T2, T3, V1), and a fifth (T7a) soon followed. Both code reviews were also carried out by separate Sonnet 5.5 agents. Of the entries, 216 are signed by Sonnet 5.5 and 71 by Opus 5.5 (51 and 11 after the first two days).
  • Claude Opus 5.5: the translation review. On 7 and 8 October a stronger model read the Czech and English texts of the website and the game interface: a lead and eight Opus 5.5 reviewers compared every paragraph with the Slovak.
  • faster-whisper large-v3: speech transcription. It turned the Slovak longplay and the hidden Slovak recordings into text with timestamps. That is how we verified that the Slovak voice from the CD matches the Slovak texts (18 of 18 samples) and that the video matches the Slovak texts (1,019 of 1,393 sentences with a similarity of at least 85%, compared with 243 for the Czech texts).
  • Models on fal.ai: the HD graphics experiment, see below.

The rules for the agents were set out in writing. The most important ones: every function ported from the original carries a reference to its address in the original program, and verification is mandatory (tests passing without errors, a screenshot from our engine and a comparison with the original running in DOSBox).

Tools

  • Ghidra: a program that reconstructs readable C code from the finished game (DOS4GW LE format). This gave us the code of every function in the original program, but not the original source files.
  • The Unicorn CPU emulator as an “oracle”: it runs the unmodified original machine code and compares its results with our program (pathfinding, clicking, character movement). When they disagree, the mistake is in our code.
  • Headless DOSBox-X: the original game running on the server, from which we take screenshots for comparison.
  • TypeScript and Vite: the language and the tool used to write the new engine so that it runs in the browser.
  • Playwright: drives a real browser (without a window) as a human player would: it clicks, waits and takes screenshots.
  • vitest: fast automated tests of the individual components.
  • Astro: the tool this website is built with.
  • The Opus audio format and AV1 video (with VP9 as a fallback): the modern formats in which the game has downloaded voices, music and videos since 4 October. They are much smaller than the original files and have been checked against the original.
  • Cloudflare Pages: free hosting for static files, where the public website and the game have run since 7 October.

How we checked that the game works

The principle: don’t guess – measure. Each layer is checked by a different kind of test.

Component tests. On 2 October 2026, 833 passed across 48 files. In the latest run, on 8 October 2026, 1,284 passed across 83 files and 1 was skipped; the whole run takes about 16 seconds. In addition there are hundreds of tests in a real browser that click like a player. How they have been run before every update of the game since 5 October is described under The quality gate and security.

A playthrough of the whole game. In the browser, a computer plays through the whole game in about 30 seconds (roughly 43,800 frames, i.e. 36 minutes of play), with the same result every time. This holds for the Slovak, the Czech and (since 3 October) the English version. The only exception: the Slovak version without the fixes gets stuck at step 209, because a bug in the original surfaces there. All the endings were played as well: seven kinds of death, the bad ending (the mirror forgotten in the cell’s toilet), the good ending and all the dialogue branches (16 trees, 1,071 nodes, 2,452 options). All 115 fatal actions that lie a single step off the correct path ended at the title screen.

Comparison with the original. In 13 chapters we loaded the same saved position in the original game and in our engine. The pictures differ by 0 to 3.1% of pixels, and what remains is down to animation phases.

Model checker. We ran the original scripts from the CD without graphics and sound, and at every point along the correct path (500 actions, both endings) a “virtual player” tried to stray from it in every way the game allows. The Czech version has 3,769 rules (the Slovak one has 3,772). We explored 17,351 deviations and 3,271 new states. In the original game the model checker produced 350 findings, including 210 control freezes and four “unwinnable situation” findings, all with a single cause: an island in room 21 from which there is no way out. With the fixes switched on, the freezes disappeared. Some suspicions remained that we could neither confirm nor refute: 108 in the original game and 71 in the game with the fixes. The model also made mistakes: in the real engine, two “freezes” in rooms 44 and 49 turned out to be errors in the model.

Robustness sweep. In the real engine, with real clicks, in both languages: 348 situations from the real game, each in 2 languages, gave 93,636 actions, plus about 120,000 actions from model states. Nothing froze in the real states. The second test, the click-versus-scene race, clicked at every moment in the middle of a scene when the player has control: over 47,700 clicks at precisely chosen moments. That is how we found a class of bugs in the original that no other method had detected.

Random poking. 1,500 runs, 101,000 actions in total, in real time: opening the INFO window in every possible way, saving, double-clicking, switching tabs, a slowed-down or interrupted network, sound failures. Of 27 reported failures, 26 came from the test tool or the environment. One case (a freeze in room 32 on an extremely overloaded server) could not be reproduced. The last big run (500 runs) passed without errors.

Playing “like a human”. An agent played in the browser using only what it could see on screen, the mouse and the keyboard, without reading the scripts. It did not reach the credits: in the hangar it got stuck for about 35 minutes before it found an almost invisible button. It recorded 10 bugs and 10 usability problems. Each finding was sorted into one of three buckets: a bug in our port, original behaviour from 1997 (which we do not change without approval) or our own layer (the hints, the INFO window). We fixed many of them, for example the repeated downloading of music and the subtitle setting (the default then became “voice + subtitles”; on 7 October Peter decided again, see Refinements decided by Peter).

Bugs in the original game and our fixes

First, the important part: the game can be finished even without the fixes – the correct path reaches both endings. The bugs we found are control freezes, one crash and one small sound issue. In a freeze, the hero stops responding and not even the menu helps. The authors themselves admitted a bug of this kind back in 1997: the file PROBLEMY.TXT on the CD (item 4) describes a freeze at the elevator outside the androids’ flat and promises a patch.

We switched on each fix only after the project owner approved it, and each one has a test along the lines of “without the fix the bug occurs, with the fix it does not”. All of them can be turned off with a switch (?fixes=0), and the game then behaves exactly as in 1997. There are twelve of them: nine in the engine and three in the scripts.

FixIn the original this could happen…Now…Found by (method)
actor_at_cellIf the player was standing 1 to 2 points from the spot the character should walk to after a click (for example at the elevator button), the game waited for an “exact point” and the controls froze for good. This affects 184 places in 43 rooms.A character already standing in the same map cell is considered to have arrived.static analysis of the rules, model checker, emulator of the original code; approved 1 Oct.
anim_hidden_doneWhen the hero was hidden (sitting on a bench, inside a cabin) and a script waited for his animation, it never started. 11 places in rooms 21, 39, 40, including the only real dead end (room 21).The animation of the hidden hero finishes immediately.model checker; 1 Oct.
actor_at_adjustedWhen the walk target happened to be blocked (a closed elevator, a wall), the character reached the nearest free spot, but the game kept waiting for the original one. 10 places in 7 rooms.Arrival at the substitute spot counts as arrival.static analysis, model checker; 1 Oct.
missing_room_stayIn room 4, using the pole on the pursuer would send the game to a non-existent room 0 and crash it. It cannot actually happen in play.The player stays in the room.static analysis; 1 Oct.
SL-04 (script, room 36)An inverted condition in the corridor in front of the elevator: if the player takes the chewing gum and comes back on foot while the elevator is away, “Pick up” freezes. The fix: 1 byte.The condition is correct.static analysis, simulator; 1 Oct.
SL-05 (script, room 24, laundry)After getting the android’s hand without having used the chewing gum on the sensor, a click on the container or the robot sent the character to a place from which control never returned. The fix: 8 bytes.Control returns.static analysis, simulator; 1 Oct.
SL-06 (script, room 37)A rule copied from room 29: if the “sitting in the pilot’s seat” flag remained set, the controls locked up. The fix: 1 byte.The controls do not lock.static analysis; 1 Oct.
hidden_walk_doneA hidden hero with a scripted walk (the conversation with the barman in room 40) was left without control for good.The hidden hero arrives at the target immediately.model checker; 2 Oct.
subtitle_edge_clampLong subtitles near the right edge were cut off: the game calculates the text width as if left-aligned but draws it centred. This affects 143 of 10,776 Slovak text layouts.The subtitles fit on the screen.playing “like a human”; 2 Oct.
late_click_guardIf the player clicked in the one frame (1/20 of a second) in which a scene takes over control, the game froze. Rooms 39 (teleporter), 26 (cell), 34 (pump).Such a click is discarded, as if it had arrived one frame later.click-versus-scene race; 2 Oct.
dialogue_room_change_resetIf the room changed during a dialogue, an empty menu remained and the controls were disabled (rooms 42 → 49).The dialogue ends cleanly and control returns.click-versus-scene race; 2 Oct.
load_restores_ambientAfter loading a game saved in a room with ambient sounds (machines, dripping), the room stayed silent until the player left it. The original records these sounds only when the player leaves a room.The ambient sounds play again after loading.code review; 6 Oct.

(Last column: the method that found the bug, and the date of approval.)

How it was verified. For late_click_guard we confirmed the freeze with the emulator of the original machine code. We could not do so in DOSBox, because the window is 1 frame in 14 to 34, which cannot be hit reliably at 20 Hz. Our confidence is therefore “very high”, not “verified in DOSBox”. Without the fixes, the click-versus-scene sweep found 340 freezes in the Czech version; with all the fixes applied, 0.

Production leftovers, not bugs. Five items can never be obtained in the game (cut content) and 33 rules never fire.

Bugs we made ourselves. Writing the new engine introduced bugs of our own, which the tests caught: the game depended on the computer’s clock, so the same sequence of moves led to one result one time and a different one the next (solved with a fixed-time mode); after loading a saved game the selected verb was forgotten; the music stopped playing after a while; and the sound stayed off after the INFO window was closed. More of our own bugs were found later by the code reviews and by Peter while playing (see below).

What has changed since the first two days

After two days the game could be played from beginning to end. The next five days went on things a player does not see at first glance: making the game work on a slow connection, on a phone and in English, having it checked automatically before every change, having independent eyes review it, and making it safe to publish.

English, slow connections and smaller data

The English edition. English arrived on 3 October: English subtitles and texts over the original voices. On the English website, the “Play” button starts the English edition.

Slow connections. Peter reported that on a weak connection the voices were sometimes missing. The cause: each line was downloaded only at the moment it was due to be spoken, and if it did not arrive within 2.5 seconds, the line played silently. The game now loads voices ahead of time, waits more patiently and retries a stalled download. Across ten simulated kinds of connection, the number of lines without a voice fell from 7 out of 755 to 0 out of 1,037.

Smaller data. Voices and music are in the Opus format and the 28 videos in AV1, and a check against the original confirmed that they match frame by frame. Downloading one language to the device went down from 532 MB to 173.5 MB. If anything in the new pack is missing or does not match, the game falls back to the original files by itself.

Bugs found by playing

The most valuable findings did not come from automated tests but from Peter playing the game:

  • Behind the force field (2 Oct). After starting the game from a chapter of the story, Frank stood behind the force field and the hints sent him elsewhere. The saved positions did not carry the full hint history. All 61 positions were generated again and each one was checked.
  • Flickering colours (3 Oct). When the androids shot Frank, the colours of the whole screen changed while the death animation was loading, and the picture also flickered when moving between rooms. Each room has its own palette of 256 colours, and the new palette was written before the new picture was drawn. Now the picture and the colours change together.
  • A stale list after death (5 Oct). After loading a position and dying, the old list of positions stayed drawn on the title screen. The fix was ready within the hour, and it revealed that a game saved in Slovak loaded incorrectly in Czech. That is fixed too.
  • A stuck opening (5 Oct). On a return visit the game stopped in the first scene and Frank slept for ever. The scene’s script starts a timer that in the original counted on half a minute of opening videos. On a return visit our engine had not been through them, so the timer never started. The game clock is now set before this scene as it was in the original.

Both bugs from 5 October had passed the tests of the time. This led to a rule: a test for every change, and no update of the game without a green quality gate.

The quality gate and security

Since 5 October the rule has been: no update of the game without tests. A single command checks the game and the website the way a player would: it opens the page, starts the game, skips the opening, walks around, opens INFO, jumps to a chapter, saves, “dies”, loads the saved game and checks that everything is exactly as it was before saving. It does this in Slovak, Czech and English, as well as on a phone with touch, and it takes about two minutes. The script that updates the game refuses to run without a green result for exactly the same version. The first update through the gate took place at 18:49 on 5 October.

The longer levels check every button, all 61 positions in three languages, the look of the key screens, performance and memory, and the whole website on a computer and a phone. Overnight they play the whole game through to the credits in Slovak, Czech and English. Altogether there are 1,284 component tests and hundreds of browser tests: the gate alone has 404 of them, 272 of which are for the positions.

Security. On 5 October the game and the website went through a security review with a test suite of its own. It made 17 findings; the most serious were of medium severity. For example, a tampered save file could make the game freeze (every file is now checked before it is loaded), and the usual build process would have packed the entire CD data into the bundle (the public bundle is now assembled by a separate, tested process). 15 have been fixed, one has been mitigated and one remains as a caveat: a game downloaded to a device stays there until the player deletes it in the INFO window. On 6 October all the libraries were updated, and since then they have had no known vulnerabilities. The public version has no test shortcuts and does not send bug reports anywhere; it only offers them for download as a file.

Two independent code reviews

On 5 and 6 October two separate agents read the code: one the engine core (the script interpreter, saving, the game clock, the characters), the other video, sound, the network, offline mode, mobile, the website and the tools. They compared the script interpreter with the original program instruction by instruction and found no difference. The bugs were almost always at the seams between the old game and its new environment, not in the ported game logic. For example:

  • every video was counted twice in the game clock, so script timers that overlapped a video ran twice as long;
  • after starting the game from a position, an interrupted line could stay on the screen for about 13 minutes, until the player clicked;
  • an original save from the Slovak CD of June 1997 was read from the wrong places in the file;
  • when a voice clip could not be downloaded, the game retried about twenty times a second and the line never ended, so the game looked frozen (the only high-severity finding);
  • a dropped connection when a phone switched networks ended in an error screen;
  • when the browser’s storage was full, the game said “saved”, but the save disappeared when the page was reloaded.

All high- and medium-severity findings have been fixed. A few low-severity details remain, such as the colour contrast in the list of saved games. Peter decided on the findings that change how the game behaves on 6 October (see below).

The public website

On 7 October Peter decided to publish the game and this website at one address. The website is at the main address (Czech under /cs/, English under /en/), the game under /hra/, and every “Play” button opens the game in the language of the page, or straight at the chosen chapter. Everything is static files on Cloudflare Pages’ free hosting: no server, no accounts and no visitor tracking. Saved games stay only in the player’s browser.

Before publishing, the whole bundle is tested the way a visitor would use it: three languages, a computer and a phone, the whole game from start to credits, all 28 videos, downloading the game to the device and the links from the website into the game.

A problem the tests did not see. Right after the first publication it turned out that Cloudflare Pages cannot send just part of a file: asked for a piece, it returns the whole file. The voices of one room are packed into a single file, so every line would have downloaded the whole bundle, up to 6.5 MB. The test server could send parts of files, which is why the tests passed. The game now handles both kinds of host: it downloads each file only once, in full, and reads further lines from it. Since then the test server behaves like Cloudflare.

Offline. In the INFO window the game can be downloaded to the device (about 174 MB for one language) and then played without the internet. On the public website the videos exist only in the new formats, so a browser that supports neither AV1 nor VP9 (an older iPhone, for example) plays the game without videos. It does not freeze.

An honest frame count

Peter, as one of the game’s authors, asked whether our frame count had included repeated animations. He was right. We had originally counted frames as they are played: 14,095 frames of 2D graphics and animations. A new analysis unpacked every frame from both CDs and compared them picture by picture: there are 8,565 different pictures, so 39% of the frames are exact repeats. In the 3D animations there are few repeats: of 10,099 frames, 9,775 are different. The Next Space in Numbers page now gives these figures.

Refinements decided by Peter

  • Opening logos only on the first start (5 Oct). After that the game starts straight at the title screen; the opening can be played again from the INFO window.
  • After the code reviews (6 Oct). The English website starts the English edition of the game. Loading a saved game keeps the player’s own sound and subtitle settings. Ambient sounds play again after loading (the twelfth fix of the original). The game interface is now fully in Czech as well.
  • Saving through the original screens (7 Oct). The buttons for loading and saving in the INFO window open the original LOAD and SAVE screens of Next Space instead of a list of our own. Saving to a file is still there.
  • Simpler pages (7 Oct). The Next Space in Numbers page gives only hard figures from the game data, with no estimates of effort or time. The website’s footer contains only the contact.
  • Translations (7 – 8 Oct). The Czech and English texts of the whole website and of the game interface were reviewed by a stronger model (see the models): every paragraph was compared with the Slovak and every quotation with the game texts, about 1,100 edits in all.
  • Voices and subtitles (7 Oct). The Slovak and Czech editions start with voices only, the English one with voices and subtitles. Lines that have no recording on the CD (such as the barman’s joke about the bear and the hare in the bar) are shown as text even in voice-only mode. The setting can be changed in the INFO window and in the game menu, and the game remembers it.

The HD graphics experiment

The game’s backgrounds are 640 × 400 pixels. We wanted to know whether it was worth offering a sharper picture on large monitors. We ran a pilot experiment on four rooms (Little Estóz’s Bar, the crashed ship in the greenhouse, the Teleporter Caves on Teleport Planet and G-HERN’s command bridge; rooms 40, 12, 1 and 50) and three characters (Frank, the barman and the guard). The backgrounds were enlarged fourfold, to 2,560 × 1,600, using models on fal.ai:

  • Topaz Upscale (Standard V2): the best for backgrounds. Sharp and faithful, it added nothing new.
  • Clarity Upscaler: “painterly”, but it changed the objects on a shelf and painted in textures that were not there.
  • SeedVR2: it amplified the dithering on backgrounds, but it was the best on characters. It made up the face, though: Frank gained glasses and a goatee.
  • GPT Image (edit based on the original): the best-looking result for characters, but it is a new rendering, not an enlargement. The face is “new” and the poses changed slightly. With Nano Banana, tested alongside it, the barman acquired a tie – invented content.

The failures: all the models invented “letters” on the displays in room 50, and the face-repair model (CodeFormer) changed nothing, because in the original the faces are only about 10 pixels across. The pilot’s recommendation: backgrounds via Topaz, and characters faithfully via SeedVR2 rather than “re-photographed”. HD mode is not part of the game yet.

What this shows and what it does not

What it shows. A team of AI agents with one architect and one owner rewrote a 1997 game for the browser in two days, to the point where it can be played from start to closing credits in two languages. Over the next five days came English, play on phones and without the internet, the test gate, a security review, two code reviews and the public website. Nothing was taken on trust. We verified each layer in a different way (tests, the original code in an emulator, the original game in DOSBox, automated playthroughs, random poking, an agent playing, code reviews), and the results are written down, including what did not work.

What it does not mean.

  • It is not a guarantee of a bug-free game. The model checker left about a hundred suspicions unresolved and ran only on the Czech data. Nor did it check the June Slovak version, without the authors’ fixes, for dead ends. We could not reproduce one freeze from the random poking.
  • The walkthrough from the video had gaps. It was missing 50 steps and 25 had to be modified.
  • Agents do not play like humans. Playing from screenshots revealed things the automated tests had missed (the invisible button, the game without subtitles), but the agent itself got stuck in the game. Judging how the game feels was left to a human.
  • Tests do not find everything. The two bugs of 5 October and the hosting problem of 7 October passed the tests and only showed up in real play and after publication. A real iPhone, an Android phone and the Firefox browser are not tested automatically; the tests run in Chromium and in WebKit, the engine behind Safari.
  • The owner decided. The agents proposed the fixes, and Peter Hegyi approved them: the first group on 1 October 2026 and the rest on 2 October 2026, when he decided that every bug that froze the game should be fixed. On 6 October he approved the twelfth fix. He also decided on the default display of subtitles, on publication and on the look of the website.
  • The authors of the original remain the authors. None of this was invented from scratch. It is a port of a finished work created by people. Peter Hegyi is one of them: the game’s credits list him for game design, 2D animations, editing and story.

Acknowledgements

Next Space was conceived, drawn, programmed, recorded and composed by the people of the Magic Systems studio. The game’s credits list: Roman Macko, Peter Hegyi and Michal Hegyi (game design); Michal Hegyi, Michal Horka and Michal Weis (programming); Roman Macko and Kornel Kabele (3D animations); Ján Šicko, Kornel Kabele and Viktor Číčaj (backgrounds); Martin Čorej (music); Miroslav Teker (sound effects); Michal Lučenič (story); Ján Valent (video production). Slovak voices: Vlado Zetek, Ivan Gontko, Agáta Solčianská, Jaro Strunga, Rado Skaličan and Juraj Hegyi. Also appearing in the game: Pavel Ondrejka, Katarína Horňáčková, Zuzana Horňáčková and Viktor Buzinkay. The game was developed by MAGIC SYSTEMS (© 1997) and produced by MAXTECH s.r.o. Special thanks go to the L-TEAM studio, to the companies European Peripherals s.r.o., HELDIS and Interline s.r.o., to the SYZ studio, and to Erich Pápay, Martin Grečner, Ing. Martinický and Peter Velčovský.

This website and the new engine are a tribute to their work.

Our thanks also go to MiNHO Dotus, who made the YouTube longplay with the Slovak voices. It helped us piece together the order of the scenes and the solutions to the puzzles.

Top