The random ramblings of a French programmer living in Norway...
2025
← Writting to floppy disks
  Encounter - One year later
Mon 15th December 2025   
Encounter was released on December 20th 2024, about one year ago.

The game was not originally supposed to be a commercial release, but we had discussed for a while the feasibility of making commercial games for the Oric, so I decided to try that for Encounter!

Let's see how it has gone with some numbers and graphics for you.

Introduction

This article is a bit long, but the idea was to give a complete view of the project, which also means it contains spoilers regarding the game content!


Since some of you just want the juicy bits and don't care about the details, you can just jump to the end summary.

Now, the rest of the article is going to be heavy in facts, images and dates, but a post mortem without data (and some analysis) is not worth anything, so pardon me in advance for the heavy content!

I've put a timeline of the development, some detailed financial results, but also things like development hurdles, testing method, localization, issues specific to retro-gaming, etc...

Feel free to jump around in the article, there's a lot of information and was written more as a "mental dump" than as a well structured document, so yeah just skip things you are not interested in.

One important thing is that this project has been 40 years in the making, with a first attempt in 1984, a second one in 2018, and the final one that resulted in the 2024 release of Encounter.

The 1984 attempt

I already wrote this older article about how Encounter came to be, but I guess a more focused retelling would not hurt.

1984-1985

In 1984, I bought the original Encounter game from Severn Software.

The game that started it all: Encounter (c) 1983 Severn Software
The game that started it all: Encounter (c) 1983 Severn Software

Using my French-English dictionary I painfully tried to understand what was happening:

What is a "Thug"?

Is a "Greenhouse" a house painted green?

What does "seedy" mean?

A 100% BASIC text mode adventure game
A 100% BASIC text mode adventure game

I really enjoyed the game, it was short and simple, but it was also rooted in reality instead of being your usual fantastic or magical...

What it really lacked was graphics.

During the next summer holidays I tried to improve the game by adding graphics using CURSET, CURMOV, CIRCLE, etc... and ran out of memory.


"Artist recreation"


That was my very first software development failure at project management!

The 2018 reboot

I rediscovered the Oric in 1996 when I found the "Euphoric" Oric emulator on a CD ROM accompanying a magazine... and even better, a few people had bundled together a C compiler, assembler and a set of libraries that could be used to make Oric programs!

From that point, I regularly wrote program for the machine, from minigames to demos, and I eventually ended up with a quite solid knowledge of how the machine work.

Upgrade Time video series

I had started a YouTube channel a few years earlier, and thought it would be a cool idea to do a dev log on how to make a game... and that's how the "Encounter: Upgrade Time" idea came up.

Basically I would start from the original 1983 game, and try again what I did back then, except this time the game would load images from a floppy, which would solve the memory error I got.

This eventually turned into a series of about 17 videos made from March to August 2018, and indeed I managed to get the "Encounter with graphics" game I was dreaming of when I was a kid.

The
The "Upgrade Time" playlist

Most of the progress in the game was documented in this Upgrade Time: Encounter thread on the Defence Force forums1.

The first post was about bug fixing the original game, because the versions we had archived on Oric.org were actually a bit corrupted.

Defence Force forum thread
Defence Force forum thread

One of the first things I did was to get a colorful intro picture and a custom font for the game. Nothing fancy, basically scanned the original artwork, added a logo, and then just use the automated converter.

Encounter 2018 title picture before conversion
Encounter 2018 title picture before conversion

Here is what that looks like after conversion, it's not awesome but it's good enough for a prototype as a place-holder graphics.

Encounter 2018 title picture after conversion
Encounter 2018 title picture after conversion

Since the whole point of the exercise was to have images for all the locations of the game, that became the priority.

The Fancy Staircase

My first scene was the entrance hall of the mansion with the fancy stair case. This is an important location in the game, so it had to look right, and nailing the style and view point was also important so the game would feel consistent all over.

I made a bunch of quick sketches on paper and scanned them.

Stair case sketches
Stair case sketches

And after some work, these drawings became pixel art:

Stair case as pixel art
Stair case as pixel art

If you are interested in the process, I made a timeline video of how I converted some of the hand draw roughs from paper to digital versions that fit the Oric resolution.


These continued to evolve during the development of the game, so just to be exhaustive here is what it finally looked like in the final game.

Final result
Final result

I had some other versions with some attempts at adding tiles or floor boards, but in 240x128 monochrome things get very noisy, so I decided to keep the floors white here.

Game Locations

Since making graphics for each of the 42 unique locations of the game took time, I used some placeholder graphics from "image search"2 converted automatically to ugly black and white, good enough to have working images to load from the game when moving around.

First pass of location graphics
First pass of location graphics

Over time I replaced the placeholder images by proper ones, and eventually ended up with this.

Final location graphics
Final location graphics

As you can see there are quite a few more images, because I needed variants for the demo version of the game, the views with or without the tape blocking the light in the basement, plus a few variants for when the player uses items like the protection suit googles, etc...

Screen Layout

Around April I worked on improving the way the game user interface looks, from just an endless scrolling with all the messages from the game, to something with various sections for the decriptions, an input field, and a separated inventory section.

Improved UI (Market Place)
Improved UI (Market Place)

This is not the final form of the UI, and the final version in the released game looks quite different.

In addition, we (some of the forum members participated) did some sound effect experiments to make things like the alarm ringing, the dog barking, etc... but the game being still in BASIC that did not work very well.

Devlog Video Quality

In May, one of the forum users mentioned that the Upgrade Time videos had some quality problems, problems I was painfully aware of, but making the videos was already taking way too much time, doing some proper editing would just have been the "straw that breaks the camel's back".

Editing could be better...
Editing could be better...

This would eventually result in a blog post in September about the hidden cost of making videos... which culminated into this August 2019 post about burn out.

Leaderboard

The game had a basic scoring system, but no way to save it, so in May 2018 I added a leaderboard saved to disk, like arcade games.

Encounter 2018 Leaderboard
Encounter 2018 Leaderboard

Optimizations and Misc Improvements

In June 2018 I worked on having items visible in the scene, I did it for the ladder in the orchard and the book on the table, all drawn in vector graphics, and also started adding custom images for when the player had interaction with the thug... and also finally got rid of every single placeholder graphics in the game.

The rest of June and July was spent on optimizing the code, refactoring it, etc... because I was seriously running out of free memory and the code was becoming difficult to work on.

Most of this work was spent improving Bas2Tap{The OSDK tool used to convert text file containing a BASIC program into a .TAP binary file possible to run on the Oric}

I announced in August 2018 that I stopped doing the video updates because it took too long to do, and now that I was expanding the game beyond what was originally present that would spoil the content.

Mission accomplished?

That's also then that the direction toward a kind of "noir graphic novel" was chosen.

Noir Graphic Novel style
Noir Graphic Novel style

The game was playable, but you still had to type "N" to go "North", there were no animation, loading were a bit slow, and there were no sounds.

But the biggest issue by far was that the game had the exact same gameplay as the 1983 original, which means there were some of the typical obnoxious traps you cannot possibly avoid until you know them because you have fallen into them once already.

So at that point we had a game, it was magnitude better than what little 14 years old Mickaël wanted to do, but there was this nagging feeling that I would not be satisfied if I released that as "done".

The last post on the forum regarding this version of the game is on December 1st 2018... and there would be no update until April 10th 2020, for a variety of reasons.

2019

2019 was a bad year, I kind of burnt-out, got some severe case of insomnia, so as a result I put most of my projects on hold.

On the positive side, I did some significant progress on my learning of Norwegian.

2020

In March 2020 I passed all the Norwegian language tests, then in June the Citizenship test, so I was a bit busy with reading and practicing... And Encounter was more or less on the back-burner as a real mess of a project not knowing in which direction to go.

Norwegian test certificate
Norwegian test certificate

Of course, that was also more or less the period of time when everybody had to work from home thanks to the COVID-19 epidemics.

Abandon the BASIC?

In April 2020, I posted a video explaining why I paused the project, and mentioned that rewriting the game from scratch in C or Assembler would probably be the better idea.


And then a few days later another one presenting the first draft of the rewrite using the "FlopppyBuilder" codebase which was used mostly for demos but also for Blake's 7.


That's technically what became the start of the final incarnation of Encounter... but that was not the end of the zig-zaging!

And then on the forum, nothing posted between April 2020 and January 2022.

Back to BASIC?

Then in January 2022 I posted another video turning back 180 degrees, going back to the original BASIC code... but adding some assembler subroutines


Yeah, that's a mess...

The 2024 release

Abandon the BASIC: For real this time

I finally realized in 2023 (took some time!) that BASIC plus assembler would never give me the results I wanted, but after so many public announcements going nowhere I decided to just shut up and get stuff done.

Git Time

Historically most of the Oric projects were made using Subversion, but SVN hosting solutions turned to crap one after another, so I eventually had to migrate to Git. I still don't like Git but with GitHub and VSCode pluggins it's usable.

In March I did the first GIT commit of the new (and final) version of Encounter

13 march 2023 / 19:01:29
* First commit of the FloppyBuilder version of Encounter.
I don't know if I will finish it, but at least that will give a base for doing
adventure games using the keyboard and FloppyBuilder to get a maximum of memory
available.
This is just a dirty "glued together" version, with the intro showing the picture,
then press a key and you get to the "game" which is just a way to test that we have
a working IRQ that reads the keyboard and display a clock, while still allowing the
loading of data.

Two commands are implemented: LOAD (which loads the next picture) and QUIT
(which goes back to the intro).

The screen is not cleared, and there's no "half text mode" implemented.

The development of the current version started in March 2023, but since I had a full time job this was obviously work I did in evenings and weekends.

Here you can see the commit history on the repository.

GitHub commits
GitHub commits

There were a total of 960 commits on this period, the activity grew up regularly in early 2024, then there was a pause during summer, and then the activity increased a lot in the first few months before the December 2024 release.

Let's Embrace the Floppy Builder

In April 2023 I clarified the whole 360 going nowhere changes, and in particular the fact that I was going back to the FloppyBuilder is because some the things I was missing (like a proper keyboard handling system) had been worked on in the mean time.

That's also the moment when I started doing my game updates mostly on Twitter to try to get a bit of interest from outside the Oric world.

Twitter update
Twitter update

One of the biggest benefits of changing from BASIC+SEDORIC to C and assembler is that it made it much easier to dynamically change what happened in the scenes.

Bitmap Overlays

BASIC is not fast enough to draw bitmaps, so I needed multiple variants of the same image, like "the stair case with the dog standing guard", and the same picture but where "the dog is lying down dead", and another one with "the dog is jumping at you".

Staircase variants
Staircase variants

Using Assembler on the other hand made it "easy" to just use a single base image and then overlay some bitmaps on top.

Dog and Thug as bitmap sprites
Dog and Thug as bitmap sprites

I need to give credits to Jonathan Bristow (Twilighte) for coming up with the idea of using the two unused bits of graphics data as a way to get a rough mask information embedded directly in the bitmap without any additional storage requirement, this helped a lot!

April was definitely a busy month, because I also implemented the dynamic display of items such as the "rope" and the "bucket" near the well based on their presence... all that implemented with my brand new scripting system.

The Typewriter

To fully embrace the Noir adventure style, I decided to implement a small type writer intro sequence to briefly explain the players who they are and what they are doing.


And in the same spirit I started adding images to things you could investigate.

Investigating things
Investigating things

Since I had quite a lot of room (all things considered) on disk, that alleviated the need to add more text to the game, because I was running a bit short in main memory!


August 2023 Update

Then in August I finally published this video where I shown the state of the game using this new FloppyBuilder codebase.


And this time there was an almost playable game using the new system to show that this time was the right time.

This August 2023 version has the entire intro, including the type writer sequence, real time clock, the navigation cross, the comic book style texts bubble as well.

2024

The work on Encounter continued during the first few months of 2024, up to the point I was confident enough I will be able to release the game to actually contact people to help with for the rest of the project.

Let's Get Music

In March the Swedish musician Per Almered (also know as XiA in the demoscene world) agreed to make the music tracks for Encounter, and by March 14th the Arkos Tracker replay routine was integrated into the project with the first test tracks playing during the game introduction.

XiA logo
XiA logo

Adding backgrounds

Quite a few of the game locations only shown the parts relevant to the game, without any effort to get them anchored in the world. So I spent a bit of time adding hills, grass, trees, etc... to make these location feel like they are part of some actually larger place.

Adding backgrounds
Adding backgrounds

Itch.io Store Page

Soon after (May 23rd), the Itch.io page for Encounter was created, which as you can see was quite bare bone, without any attempt at making it fancy.

First Encounter itch.io page
First Encounter itch.io page

I then spent the next four months working on the game, mostly collaborating with Per who tested my ideas and graphics updates.

Investigating the car
Investigating the car

Among the improvement was an attempt at having some kind of interactive cut scenes.

Interactive cut scenes
Interactive cut scenes

Final Screen Layout

Among other changes was the complete overhaul of the way the data is present to the player. Here on the left you can see the status of the 2018 BASIC prototype, and on the right is the new version which comes with a significant number of changes:

2018 UI (left) versus final user interface (right)
2018 UI (left) versus final user interface (right)

  • The descriptive line has been removed from the text section and integrated into a text bubble on top of the image
  • The "Moves" has been replaced by a real time clock just under the image
  • The "Score" had always been there but was not displayed, so I added it on the left side under the image
  • Instead of printing the directions, they are now shown as a directional cross that overlaps the image and the text area
  • Pressing the SHIFT key highlights all the elements you can interact with, such as the bag, car, newspaper and plan
These are simple changes, but they made the game area feels less busy, easier to read for players.

Disk space worries
Disk space worries

Unfortunately, because it's a 8bit game running from a floppy disk, there are some real constraints there, and a big part of the work at that point was spent rewriting some working code or shuffling data around so I could get a kilobyte here or there in order to get something more shoved in the game.

And for the ones saying "but you have still have 2KB free!", that was the English version... French takes more room!

Despite my very small QA team, I somehow managed to get users with QWERTY (English), AZERTY (French) and QWERTZ (German) keyboard layouts, so I had to add support for that in the game.

Configuration menu
Configuration menu

Ramping Up for launch

The period from October to December 2024 got very hectic, I was pushing new versions all the time, got a lot of super useful feedback from my testers, participated to a bunch of live interviews, and worked on the Steam release of the game - something I did way too late:

Testing the game

The 'QA team'

In general in the Oric world games are not commercial: We make them, some people help here and there when asked, some come onboard to help with localization or quickly test a few versions, and then the game gets released on Oric.org and/or the website of the creator or now often Itch.io.

If the game has some bugs or rough gameplay, it's still fine because it's a free game so people are just happy to have some new game to play on their Oric.

When you release a game commercially, that does not work anymore: People who paid for something expect a significant higher level of quality and will not hesitate to leave bad reviews if there are some obvious quality issues, if the game crash on their machine, or the game is too short, or too easy, or too hard, etc...

So for Encounter I had to get some serious quality control, but I did not have a budget!

Another important parameter was that I needed to onboard some people who weren't necessarily retrogamers, people who would normally play more modern games.

So in October 2024 I started poking a few people around to ask them if they were interested in helping me. Some had already expressed their interest earlier on my forum or on social media so I contacted them as well.

I already had Per (the musician) providing quite a lot of feedback for a few month while I was integrating the music, but in addition I ended up with the following people:
  • eXpl0it3r, an active member of the SFML community which I had known since around 2012 when I was toying with the idea of making a small pixel art RPG on PC
  • Phreak, a member of the Little Big Adventure community whom I met online during the LBA anniversary online celebrations
  • Retroric, a long standing member of the Oric community
A couple other people answered the call (like Dom, Symoon and Chema among other), but they had a limited amount of free time for the project, as we often say "Life got in the way".

Distributing the builds

Before I got the game available on Itch or Steam, I had to provide them with zip files containing a batch file to run the game, then after I got Steam up and running I provided them with some Steam keys so from that point they could just have the game auto-update each time I would push a new version.

Steam builds up to release
Steam builds up to release

Regarding the testing itself, the testers had no knowledge of the other testers and could not influence each other. My main communication channel was whatever they were fine with, which was Twitter private messages for some, Discord for others, and Facebook messenger for the last one.

Video Recordings

For the actual testing, I took a page out of Valve's famed "Cabal playtesting process" and basically asked my testers to record themselves commenting out loud while playing the game so I could later watch the replays and note things that confused them or that they missed.

eXpl0it3r's trying to enter the church
eXpl0it3r's trying to enter the church

And oh boy was there quite a few things I had to fix! The most common issues experienced by the testers were:
  • They all missed the entrance at the rear of the mansion and spent time walking around like headless chickens not knowing what to do
  • They kept trying to interact with things that were just background graphics elements like the church, shops on the market place, the well, etc...
  • They typed things which were not part of the vocabulary accepted by the game parser

Phreak's trying to open a window
Phreak's trying to open a window

Among other things were the lack of warnings or hints to the player before triggering some of the failure conditions such as the alarm system.

Not being able to give hints to them was eye opening, so I ended up doing quite a few changes in the game, such as adding interactible items for things like the well or the church with proper messages when the player tried to use them.

Implementing changes

The biggest improvement was the graphics change regarding the rear entrance.

Changing the rear entrance
Changing the rear entrance

This looks like a small change, but that was basically enough for pretty much everybody to now notice that yes they could go south.

Another minor change was to modify the design of the flourish around the navigation arrows, because for some reason it made one of the testers actually did not notice the indicated directions!

Changing the navigation arrows
Changing the navigation arrows

So these were the biggest changes, but there were quite many over the three month period before the game launch, like the input buffer improvements to limit the number of missed key inputs for example.

One place where my testers really helped was the quality of the texts: Phreak being a native from England really helped with making the game actually match the "it happens in Britain" vibe, while Retroric has helped a lot with fixing typos and style issues in French. I am French, but I've been living in Norway for 20 years, using English as my main everyday language, so you can imagine how worse my French had become.


Anyway, big shout out to the testers!


And no, it did not cost me anything other than mentioning their names in the game credits, on the Moby Games page, and sending to a couple of them a physical edition of the game3

Asking colleagues

I also attended the Halloween party at work with a backpack full of Oric gear, and asked my video game professional colleagues to try the game.

Testing at work
Testing at work

I got quite a few positive returns... but I also came back with a piece of paper full of notes of things I absolutely needed to fix before launch.


You can thank my colleagues
for suggesting that using the matches
when you have gasoline or gun powder around you
should result in an explosion and a game over.


You're welcome!

Interviews

On November 6th I was part of a 5 hours interview(in French) by Dr JVTek, covering all my career, from Demoscene beginnings to my work in Lyon at Adeline Software, Heliovision, Eden and finally my move to Funcom in Norway in 2005... and obviously I had to mention that I was working on this Indie game called Encounter.


On December 12 I was on the French Generation Micros youtube channel for a Technical presentation of Encounter for which I had to prepare some powerpoint presentation.


You can download the presentation in English or French if you are interested.

Launching on Steam

On November 9 the Steam Store page for Encounter was finally up and running, but by only having it on for only one and a half month before launch it was not possible to collect many wishlists for the Steam algorithm.


Creating a Steam page can be overwhelming: There are so many things to edit in so many places, so many assets that need to be following specific rules regarding positions of logos, size, etc... choosing keywords for the type of game, description, localization of the page in various languages, etc... it's a massive amount of work.

Steam Store Page before Launch
Steam Store Page before Launch

And then a few months later you discover that your page is broken because the rules changed and now some of the animated gifs are not loading anymore.

Steam is the leading platform, but the back-end part is kind of a nightmare4.

Wishlists

Most of the Steam algorithm experts think that to ensure a successful launch a game should have at least 7000 wishlists on launch day, because people get informed when the game launch, which means a bunch of these wishlists convert to sales, which in turn tells Steam that people are interested in the game so the game will be shown to more people.

Wishlists at launch
Wishlists at launch

Unfortunately with 465 wishlists at launch I was far below this.

Could I have reached thousands of wishlists had I launched the Steam page six months earlier? No idea, but that's something to keep in mind for sure.

Game Launcher

I quickly realized that having the emulator directly launch when pressing the Play button was not a great idea, because modifying the settings of the emulator require to press F1 and then do some menu navigation that may not be obvious.

Nobody likes launchers, but that was the only option I could see working for me, so on November 10 I started working on the launcher for the game, which would allow the users to easily tweak various parameters before they launch the game.

Encounter's game launcher
Encounter's game launcher

I've been working with the Win32 API for a few decades, and despite being old it's still a good option if you don't want to add megabytes of dlls or require the installation of third party dependencies.

Encounter's install size
Encounter's install size

That may be a quaint idea in 2025 when games are routinely in the many dozens of gigabytes in size, but Encounter occupies just 380 KB5 on a floppy, the emulator itself occupies about 5MB, and the GameLauncher just 412 KB.

So yeah, I would have felt dirty using something like Electron just to display a few buttons and check boxes.

What about the memory usage? After all the price of RAM is skyrocketing and some people even bought 64GB of RAM just to be able to play some high-end games comfortably.

Encounter's memory usage
Encounter's memory usage

As you can see on this screenshot, you need about 16 megabytes of RAM to run the launcher, the emulator and the game itself.


Now of course,
if you compute the price of Encounter per byte,
it's clearly a very expensive game!


Steam Cloud

One advantage of having a launcher, is that it allowed me to implement the Steam API without having to modify the emulator, so I embraced that and made it so the launcher was able to extract from the Oric floppy file the data related to high scores and achievements, and then save them in the Steam cloud.

It's not a particularly elegant solution, but basically when the game saves data, the time stamp of the virtual floppy disk changes, the launcher detects that and searches for the SAVESTRT and SAVE-END strings in the file, then it loads and extract this content.

High Scores file
High Scores file

A big benefit of this approach is that it made it possible for me to update the game without the players losing what they already did.

Basically, each time the launcher runs, it either updates the floppy disk with the content of the cloud save, or updates the cloud save from the content of the floppy disk, depending of what was determined to be the most up-to-date content.

I then extended the system to actually unlock Steam achievement from the launcher: Since the launcher already had access to the game saves, why not decode the result to replicate the unlocked achievements for real?

This proved to be very practical when I was looking for metrics when I wrote this article: How many people did start the game, finish it, etc... it's all in the achievements!

Steamworks: Achievements
Steamworks: Achievements

Basically all I had to do was to match each of the 50 Oric achievements from the save file to the ones defined in the Steamworks API

Achievements mapping
Achievements mapping

At that point I just need to compare the status of each achievements when I reload the save file to know which have changed and then unlock them using the Steam API.

If you are interested in the implementation details, the entire source code of the launcher is available.

Game Launch

The days before the launch I tried to get a bit of hype, mostly by posting this type of "advertisement" on various platforms, with a moderate success.

Achievements mapping
Achievements mapping

Finally, on December 20 2024 the game launched for real on Steam and Itch.io.

The launch was accompanied by a teaser for the game.

Not great by any metric, but the idea was to replicate in real life the end sequence of the game, from basically this...

Game credits sequence
Game credits sequence

...to that...


And no, that's not whisky, that's actually Julebrus6.

This will eventually become the basis for the Physical Edition of the game, with basically the same content but made to look like it was a 40 years old case file retrieved from some archiving boxes.

2025

The launch of the game was only the beginning:

Getting more players means getting more confused people, people wishing this or that was implemented, etc...

The most satisfying thing post-launch was to see that some of the buyers downloaded the game, and copied the .dsk files to their Oric to play on their real machine!

New Year update
New Year update

After launch, one of my forum users who had bought the game on Steam reported that it did play just fine on his Steam Deck... except using the virtual keyboard made it far from enjoyable.

Encounter on the Steam Deck
Encounter on the Steam Deck

Among other reports were a few typos and keyboard sometimes missing some keys, so on December 23rd I pushed update 1.0.1.

Update 1.0.1
Update 1.0.1

By now you probably figured it out already, but I basically skipped Christmas that year:

My partner visited her family up north in Norway while I stayed in Oslo because I knew I would not be able to enjoy the festivities knowing that there were some bugs to fix.


Don't release a game before Christmas
(or any important family or social event),
it's dumb!


So anyway, here is the list of all the updates made in 2025.

2025 game updates
2025 game updates

Steam Deck

Among the big ones was a proper Steam Deck support.

The game did work on the Steam Deck, but you could not use the controllers, you had to use the virtual keyboard.

I fixed that in March by making the game possible to play using just a joystick, and by providing Steam Deck controller schemes for the game.

I did not have a Steam Deck myself, so thanks to Funcom for letting me use one for a couple weeks!

Minigame

The player was able to find a Game & Watch in the mansion, but trying to interact with it would tell you that it did not work.

15 years ago I had written a version of that game for one of the minigame compos called 4KKong


One of my "nice to have" was to be able to play the game from inside Encounter, the main problem being that I did not have much memory to spare.

It took some time, but finally in May I was able to release a version 1.2.0 of Encounter with a fully playable version of the game, with saved highscores, and improved graphics using the full 224 pixels vertical resolution of the Oric.


The player can go back to Encounter when they are done, and whatever score they managed to do is added to their current play session.

And we finally arrive to December 2025, when I finally manage to finalize my Physical Edition and send it to the various players who bought it.


Pricing

One of the many mistakes I did was pricing the game too high on release.

The $9.99 suggestion was provided by a friend who released a successful rogue game, but the important part I missed is that his game is by nature replayable, while an adventure game is generally played once and when it's solved, it's solved. Encounter is probably more replayable than most games of the type due to the achievements and alternative solutions, but ultimately when you know what to do you can finish the game in less than an hour.

So as I said, the game was initially priced at $9.99, but then I dropped it to $4.99, then quickly to $3.99 and finally $2.997.

Price History (data from steamdb.info)
Price History (data from steamdb.info)

This graph is courtesy of SteamDB, there are plenty other graphs you can look at if you are interested: https://steamdb.info/app/3319780/.

The small dips in the graph represent the various discount periods:
  • March 13: Spring Sale, 10% off
  • June 26: Summer Sale, 75% off
  • September 29: Autumn Sale, 50% off
You may be wondering about the very random values? Well, I was experimenting. And why no Winter sales? Well it's because they were not yet started when I started writing this article.

So, let's see how these prices correlate with sales numbers.

Sales numbers

Please remember that all the sales numbers are before taxes, and before whatever cut the site owner takes for themselves (which is 30% for Steam).

Here are the revenue and units sold during the same period of time:

Revenue and Units (data from Steamworks page)
Revenue and Units (data from Steamworks page)

From this graph we can see the following:
  • 15 games were sold on launch day at the full price of $9.99, for a total of $153
  • 35 games were sold on the first day of Summer Sales, for a total of $26 (Because at %75 off that made the game at $0.74)
  • 8 games were sold on the first day of the Autumn Sales at $1.49
Obviously it's a very zoomed out view, and there were sales on the other days, what we saw on the graph are only the spikes.

Ultimately I sold 2458 games on Steam, 4 of these were refunded, ending up with 241 games for a total of $712 net revenue.

Another thing to remember is that you need to pay a $100 fee for each product you put on Steam, so that must be subtracted from the actual income.


This means the average income I made per game sale is:
($712-$100)/241 = $2.54


Here is a detailed view of what I actually received.

Payment History (data from Steamworks page)
Payment History (data from Steamworks page)

As you can see, Steam only pays when there's at least $100 to collect, so I did receive a first payment in January when I got the bulk of the sales made at full price, and a side effect of smaller price with fewer sales is that it took longer and longer to reach the $100 threshold.

Email from Steam: No payment this month
Email from Steam: No payment this month

And the last four red lines indicate that I've only $50 worth of sales, so I will probably need a miracle to get this money paid!

Geographical spread

So, who did buy the game in the world?

Here we can see the top countries, USA is first with 23% of all sales, followed by France with 17% and UK with 8%.

World Distribution (data from Steamworks page)
World Distribution (data from Steamworks page)

We can safely assume that these 58 games sold in the US have been from people who have never heard of the Oric before, because the machine was never released there, and when I tried to contact various magazines and reviewers in the USA, most had no clue the system had even existed.

Having France and UK in second and third position makes sense since that's where Oric machines were sold, and most of my "marketing" basically was seen by members of the Oric community.

Did they play it?

So, going back to the Steamworks site, on the "Sales & Activations Reports" I can see the following.

Number of players (data from Steamworks page)
Number of players (data from Steamworks page)

So, we know that 245 persons bought the game, but 4 refunded it, but we also had 17 activation by Steam keys (most probably my testers and reviewers for the game), so at some point 262 people had the game in their Steam library.

The interesting line is the "Lifetime unique users": 104 of these 262 people actually installed the game, so that's a 40% ratio.

We can also see that the median time played is of 19 minutes... which brings the question: How many players did actually finish the game!

And to answer this question, I will use the achievement system as an information proxy!

Global achievements
Global achievements

As we can see on this image, I unlocked 50 out of the 51 achievements, but we can also see that in the "Global Achievements", 99% of the players have unlocked the "Welcome" achievement.

That one is actually automatically triggered by the launcher when you press the play button, so 99% means than one or two players have installed Encounter and pressed the play button but did not press the Launch Game button9.

Encounter's game launcher)
Encounter's game launcher)

Where things get interesting, is that only 55.7% of all players got the "You did it!" achievement... which is the one that triggers when pass the intro sequence and finally load the game... so basically 46 players launched Encounter, and either left it running in the attract mode or quit it and never launched it again.

At this point we are left with 55 players who actually started the game itself.

Achievements

So, let's see how these players did, first looking at the most common game over conditions:

Game Over!
Game Over!

Since the achievements images and texts are designed to be a bit cryptic, here is what that mean in clear English:
  • 37 gave up (using the QUIT command)
  • 37 triggered the alarm system
  • 27 got maimed by the dog
  • 23 got stuck into the pit
  • 21 died in an explosion
  • 19 ran out of time
  • 17 were shot by the thug
Game Over in game
Game Over in game

There were a number of obstacle on the way, including a very aggressive dog and a thug sleeping in the master bedroom, let's see how players solved each of these issues.

Dog handling)
Dog handling)

As we can see, there were a number of ways to pass the dog that block the access to the upper floor of the mansion:
  • 31 players found a way to make the dog sleeping (there are two ways you can do it in the game)
  • 16 players killed the dog (there are two possible ways to do that)
  • 11 players were able to find out how to get the dog to leave the house!
In the original game the only alternative was to kill the dog, the non lethal options were added by me to make the game more palatable, they also provide replayability value since they give different scores based on my purely subjective own criteria!

What about the thug?

Thug handling
Thug handling

There are only two ways to handle the thug
  • 23 players drugged the thug to ensure it would not wake up
  • 20 players decided that kill the thug was even more safe!


I'm proud of my players:
Most of them decided to go for the non lethal approach!


So now, let's see how far they have gone successfully!
  • 36 opened cabinets to look for things
  • 36 used the ladder, and 29 used the rope
  • 34 found the chemistry recipes
  • 28 looked behind the curtain
  • 26 found a way to get some gasoline
  • 25 manage to craft black powder, but only 21 made a bomb from it
  • 25 got enough points the enter their name into the leaderboard
  • 24 managed to access the alarm system
  • 22 managed to open the safe
  • And finally, 20 solved the case!
So here is our final funnel:
  • We started with 262 game owners
  • 104 (39%) installed the game
  • 99 (38%) pressed the "Play" button in Steam
  • 55 (20%) pressed the "Launch game" button in the Encounter launcher
  • 20 (7%) managed to rescue the victim
As you can see, achievements can be used as a way to get some form of telemetry without actually implementing any telemetry or spying on your players.

Retro gamers
Retro gamers

Of course, some of the players do not appear to have played on Steam... because they played on their real Oric!

Recommended... but did you play it???
Recommended... but did you play it???

That's actually kind of a problem with the way Steam works, because these players seem to only have played like 3 minutes or so, which makes their review on Steam look a bit bonkers.

Playtime Analysis

The great thing about how Steam works is that there are lots of numbers available, and quite a few sites crunch these to provide graphics.

Well-known examples include sites like SteamDB, but there are others like Niklas Notes, where I found this easy-to-read graph.

Encounter Playtime Analysis (Niklas Notes)
Encounter Playtime Analysis (Niklas Notes)

Since there are very few Encounter players, we can safely assume that the three dots on the right with 30 to 70+ hours of playtime are people who tested the game during development, while the clustered dots on the left are the actual players.

Looking at the clumped dots, we have a range of 4.1 to 9.1 hours of playtime, which to me sounds reasonable.

What about Itch?

Itch.io is an interesting beast.

Because of the way Steam works, you are not allowed to compete with Steam by having the same product sold at a different price on another shop, so I had to get the prices and discounts on Steam and Itch kept in sync.



While on Steam you put a price and people pay that price, on Itch the buyers are free to add a tip to the price, and that has a major impact on sales!

Additionally, you can set some "goals", and that seems to motivate people to give beyond the asked price.

Itch sale goal
Itch sale goal

You can also do a reverse discount, where you increase the price by a certain percentage... I tried that last autumn and got ZERO sales, so I'm not quite sure of the benefits of that!

For a small game, selling on Itch makes perfect sense, because you do not have to pay the initial $100 Steam fee, and quite a few players happen to be extremely generous!

Itch dashboard
Itch dashboard

From this graph we can see that on the same period there were 46 sales of Encounter, for a total of $302.17, which means the average income per sale is $302.17/46 = $6.56, that's about 2.6 times higher than what we got from Steam.

Itch sales graph
Itch sales graph

We can clearly see on this graph that there are bunch of outliers, people who gave quite a few more money, sometimes rounding up to the next integer, sometimes adding $10, or sometimes adding $40 line this huge spike on the left shows.

So yes, I would highly suggest not neglecting Itch, I would even suggest making your initial release of your game on Itch and use it as a kind of early-early access where you can get feedback on the game, fix what does not work or implement player suggestions, and then when you have something that looks solid, launch on Steam.

Here you can see what I actually received from Itch, so actual revenue after whatever Itch and the payment processors remove:

Itch payments
Itch payments

Total for the year 2025 has been $129.53 + $69.03 + $6.09 + $35.56 + $7.22 = $247.43 USD

Launching on Steam

The Steam launch was my biggest mistake: Since I did not know until very late that the game would be launched on Steam, I did not have a store page early enough, so by the time the game launched we had barely 600 wishlists, which is way insufficient for a successful Steam launch.

Steam Wishlists
Steam Wishlists

And to add to the injury, there was no playable demo, no proper trailer either, all these hurt the game sales quite a lot, because Steam is heavily algorithm based and it the sales for a game do not pick-up early, the system will figure out it's probably not a game worth promoting and it quickly fall out of view.

There's an entire videogame development sub-culture dedicated to how to maximize the chances to be successful on Steam, I highly recommend anyone who wishes to be successful to at least read and watch basic information on what to do (and not to do) in regard to designing store pages, capsules, when to get the store page up, Steam Next Fest, Events, Festivals, etc...

The bottom line is, you have ONE opportunity to launch your game, if you fumble it it's very hard to recover.

Physical Edition

I like to have boxes on my shelves, so I absolutely wanted to have a Encounter box on mines.

So I made a physical edition: It was long and painful, took forever, cost an arm, but ultimately people were willing to pay the price so I covered my cost!


Basically each of the physical edition cost about 46€ just for the costs of materials, and that does not include the prototyping, failed prints, etc...

Physical Edition bill of materials
Physical Edition bill of materials

Just to make it clear, the reason it cost so much is because it was for an Oric Adventure Game, if it had been for an Amiga or Megadrive Shoot-em-up or a Commodore 64 plateformer the cost would probably have been lower, the reason being "economies of scale".

There are not many people interested in the Oric computer, among the Oric users very few have working 3" floppy drives, and even among these, not that many people are interested in adventure games.

I originally judged that I could probably make 20 units, but when I realized how many of my 3" floppies had surface damages and could not be formatted to 42 tracks without errors I reduced my ambitions to just 10 units, which is not enough to get decent prices from companies making boxes, prints, etc...

3
3" floppies reliability...

Basically you start getting acceptable prices when you are doing over 100 units of something, the reason being for most companies there's a startup cost, and then there's the individual cost of actually making each unit of the product: The more units are produced, the more the initial cost is spread over.

That's why I tried to do as many things as possible myself, but I used some professional print shops for the manual covers, box inlay and stickers.

The case files (letter, map, polaroids, etc...) are all home made, using combinations of laser printed documents, sprayed water, brushed tea, oven cooking, sand paper and metal brush to make them look ancient.

I also used a bunch of 3D printed contraptions to help making some of the props.

To make the "fakaroids" I needed a way to cut a small window inside photo paper, accurately and multiple time, so I printed something for it.

Fakaroids assembly
Fakaroids assembly

When assembling a manual, it's always difficult to properly align the pages and the cover, and then stapple all that together, but I found a nifty device on Makerworld that helped doing that. Unfortunately it was designed for US Letter format, but I asked the creator and they made a A4 version, which I used to make all the manuals.

Assembling booklets
Assembling booklets

There's a bunch of YouTube videos on my channel showing how I did the various bits, so just dig there if you want more details:
The white box with the Encounter logo, Encounter and Defence Force stickers, as well as the packing foam were all ordered from Temu sellers.

The "confidential" craft sleeves are cut down craft envelopes, the confidential label was printed on some adhesive paper.

Making the floppies was the hardest part, it required getting a Greaseweazle device, finding some non corrupted 3" floppies, and a lot of patience and testing. If you are interested in the topic, I wrote a technical article about it.

After checking the prices of "Limited Run" and other "Collector" editions, and poking a few people, we came up with the price of 65€ for the Physical Edition of the game (plus shipping), which makes me a 20 euros income.

Fortunately buyers were satisfied, and one of the French users even made an Unboxing video for it :)


And some other shared photos of the game under their Christmas tree!

Facebook message
Facebook message


Marketing and promotion

I've to be 100% honest: One of the reasons why I decided to give a shot at releasing an indie game was that I was fed up seeing all these posts of people complaining about their games not selling at all, which when you asked them how did they market the game answered that they did not do anything other than launching the game and wishing for the best.

Obviously Encounter is not what we could call a massive success, it's not like it made enough money to live from it, but the sad thing is that Encounter did better than quite a few indie games, so I'm already in the top 50% of successful games released in 2024.

That's both sad and cool.

So anyway, marketing is difficult, specially when you are alone, and if you have to pay someone to do it, there's better be a return on the cost!

What I personally did was:
  • Video dev log
  • Social media presence and updates
  • Regular dev log updates on Itch.io
  • Contacted blogs, youtubers, streamers and magazines
  • Made sure to participate to all the possible events and seasonal sales

Industry credentials

One thing I deliberately didn't do was highlight my industry credentials in any of the promotion for Encounter or in my attempts to contact people.

It’s quite possible I would have generated more interest in the game if I had emphasized my "30 years in the industry", or mentioned that I’m a former developer at Adeline Software, Eden Games, and Funcom, or that I worked on titles like Little Big Adventure, V-Rally, Test Drive Unlimited, The Secret World, and Dune: Awakening.

The problem is that doing so would likely have created false expectations and attracted the wrong audience for this particular type of game.

Besides, the whole point of the exercise was to experience how hard it is to gain visibility as a pure indie developer. Leaning on my past industry connections and résumé would have felt like cheating.

Seasonal sale

Most the sales of the game happened at launch, when quite a few wishlist converted to actual sales, but after that, the biggest spikes in sales for Encounter were during the Summer and Autumn sale events. Interestingly the Spring sale event only had a tiny impact, go figure.

Events & Deadlines
Events & Deadlines

Detective Fest (January 2026 update)

A niche game like Encounter rarely fits any of the traditional events, it's not "story-rich", it's not a "rogue game" or a "futuristic fps", etc... so none of the 2025 events quite matched the game.

Detective Fest 2026 banner
Detective Fest 2026 banner

In October I noticed there was a "Detective Fest" coming up, but unfortunately Encounter wasn't automatically flagged as matching the criteria. Thankfully there's a button you can click to ask the Steam team to take a look at a game you think should fit - you just fill in why, give a few examples, and then you wait.

A few days later I had this in my mailbox:

Eligible for Detective Fest
Eligible for Detective Fest

I originally set the usual 75% discount on the game, but after some feedback that the game was already very cheap, I changed it to 33% off - bringing the price down to exactly $2.00.

Encounter entry at Detective Fest
Encounter entry at Detective Fest

So, how did the game do?

Encounter results from Detective Fest
Encounter results from Detective Fest

As you can see, the game sold an additional 17 units, for a total of $36 in revenue. So I guess I'll stop the 75% discount and keep the 33% off for a while.

As a side note, I aligned the price on itch.io to match the Steam price... and got a grand total of 0 sales.

You can't always win!

Typing Fest (February 2026 update)

Interestingly, the very next Steam Fest did also pretty much match Encounter, and similarly to the Detective Fest I had to do an explicit request - which was accepted.

Type Fest 2026 banner
Type Fest 2026 banner

The main issue is that I was unfortunately not able to provide a discount because I had one less than 30 days prior, and Steam clearly state on the event page that joining the event without a discount would hurt the visibility of the game.

Event conflicts
Event conflicts

Still I gave it a shot, and as I suspected there were way fewer games participating in the Typing Fest10 than there were to the Detective Fest... and when I checked the top sellers about one hour after the start of the sales there were only three games featured, which gave me an idea for some sneaky science experiment!

On IRC I asked if anyone had both Steam and PayPal and was willing to buy Encounter - and I would reimburse them -, just for science.

Two people answered the call (and told me to not bother paying them back the $2.99 price tag), and about 45 minutes later the results were in!

Typing Fest Best Seller
Typing Fest Best Seller

These two sales were enough to propel Encounter in position #4 in the Typing Fest 2026 Top Sellers category!

Obviously that was never going to last, but this artificial ranking boost was enough to get an additional two sales by the next morning.

So how many games did I sell that week?

Typing Fest week results
Typing Fest week results

As can be seen on the graph, I sold 14 games for a total of $48 (before cut).

I know these numbers are tiny, but over time that adds up, especially if you have a number of games on Steam that generate income over time.

Advertisement

Since I had zero budget for advertisement, I had to rely on my posting home made ads to Twitter, Bluesky, Facebook, LinkedIn, discord, etc... this felt very much like being one of these spammers that I despise, but I could not find any other way to get eyeballs.

Encounter ads
Encounter ads

I can't say for sure how effective these were, but at least I felt like I at least tried, which seems to be quite a lot more than what many developers I've talked to seemed to have done.

I also tried a few funny/sarcastic ones to try to trigger some retweets, but that did not have a big effect.

Encounter system requirements compared to Indiana Jones
Encounter system requirements compared to Indiana Jones

I got a few chuckles, a couple retweets, but that's about it.

I tried a couple of time to post on Reddit, but this site is brutal. I also tried Tik Tok, but that quickly felt like a lot of effort for not many results.

Community outreach and devlogs

One thing I tried very early on was to be super open on the state of the game, how it was made, graphics updates, new features, etc... both on my forum, social media but also on the devlog of Itch.io.

Itch.io devlogs
Itch.io devlogs

The Upgrade Time: Encounter thread on my forum reached 30 pages, with 15 messages per page that's more than 400 posts with quite a lot of user engagement.

Magazines, blogs, youtube

If you want the details, I've a Media Review" section on my site where I listed every single place I could find that mentioned Encounter, but basically I managed to get featured in three paper magazines, half a dozen blogs, one podcast, and a few twitch and youtube channels.

Indie Retro News has quite some following, so I was quite happy when I managed to get featured there.

Indie Retro News
Indie Retro News

Retro Gamer is probably the oldest and most well known retro related magazine, so having a double page there was welcome, I just wish I could also had the game reviewed and get an actual score!

Retrogamer issue 269
Retrogamer issue 269

Another big one was to manage to get Encounter shown for almost one minute in one of the Peri Fractic "Retro Recipes" videos, with about 16000 views that's quite a few people who at least saw it.

Retro Recipes
Retro Recipes

I tried my best, but honestly marketing is a full time job, it's too large of a task to do it properly while developing the game, and also you need to have contacts, else you are almost guaranteed to not pass the filters: There are simply too many games for anyone to be able to answer every request from anyone who made a game.

Reviewers

I tried to contact real reviewers, like the ones who make it to the MetaCritic list, without much success. I picked up a few indie games which were more or less in the same category, checked which magazines or reviewers contacted them and tried to contact the same, without much success either.

I also tried the Steam "Curator Connect", but that did not work very well, only got a couple "informational" reviews, and that's it.

Steam Curator Connect
Steam Curator Connect

So basically that's the core of the issue: If you did not manage to get enough interest early on, it's pretty much impossible to get visibility, which in turn guarantees you stay invisible.

If you can pass this hurdle, and assuming your game is not bad, you are pretty much guaranteed to have a much larger amount of sales.

From what I gathered, the ways to get this initial interest are to do things like kickstarters, have some patreons with some exclusive content for the followers, have a Discord channel for the game where people can discuss the game, ask for things, etc... but yes, it's a full time job.

Reviews

For me, the biggest up in the whole process is that people liked the game!

The big problem is that most people don't leave reviews, and the way algorithm works it's a big problem.

Basically if a game has fewer than 10 reviews from paid customers, the game will not appear to be Positive (or Negative) in the search results, it will only have a small gray box.

As soon as you get your 10 reviews people can see the actual sentiment about the game, so yeah, it's very important to unleash this.

Which mean I had to nag people.

Please, leave reviews!
Please, leave reviews!

Here are quotes from some of the user reviews:

"Finished. The game is fantastic and fully replayable. Surely the game of the year on the Oric platform and one of the best in the whole library. Indispensable."

"Clearly a game made with love, fantastic vibes, good music, great theming and I can't wait to play through to the end."

"In short, for this price, it's definitely a steal and I would recommend it to all adventure games fan, and even to those like me that used to go through them with walkthroughs when they were young!"

And the reviews from the two magazines are not bad either:

"Dbug has managed to extract the maximum from this story, enhancing it with everything needed to make it unique and squeezing every bit of potential out of the Oric, possibly creating the best adventure for this system." - CAAD

"Encounter HD is a standout homage to the golden age of gaming, crafted with care and precision for the Oric Atmos. With a captivating plot, clever design, and plenty of classic charm, it’s an irresistible trip down memory lane. Adventurers, prepare for an unforgettable journey." - BrewOtaku

I wish I could have had reviews from the "big" reviewers, the ones that are accepted in Open Critic and Meta Critic, but despite all my efforts I could not get any big reviewer to go through the game. *sigh*

And yes, that's one of the biggest challenges for an indie developer: Sure, making a good game is difficult, but even if your game is good, if you cannot manage to get eye balls in front of it, if people don't know about your game, your game will not sell.

That being said, I managed to get three printed magazines to talk about Encounter, so that's a win.

Encounter was featured in the issue 269 of Retrogamer magazine.



The game receives a 85% score in the issue 68 of magazine BrewOtaku in May.


And finally, the spanish magazine CAAD gave a 9 out of 10 score, as well as a 8 pages "making of" section


So all in all, not a massive success, but could have been much worse!

So, did it go well?

More than 18000 games were released on Steam in 2024.

Encounter is just one of these.

And recently some statistics were released showing the gross revenue of games sliced in categories:

Steam Yearly Stats
Steam Yearly Stats

In 2024, out of the 18121 games released on Steam, the bottom 30% of games made about $28 in total revenue, which means they did not even manage to recover the $100 Steam fee.

The median revenue was $222, and the Top 25% revenue was $3000.

Just to compare, here is what I earned with Encounter:
  • Steam: $859 (gross)
  • Itch.io: $302.17
  • Physical edition: $184
That's a total of $1345.

It's obviously a ridiculously small amount considering the amount of time spent on the game, but considering that we generally release Oric games free to the community that's "free money".

And now if you go back to the stats above, you should realize that my ridiculously small and insignificant Oric adventure game has done six times the median revenue of games released in 2024 on Steam.

And yes, I'm cheating because I added the Itch and Physical Edition income to the total, but even just with the $859 from Steam that's 3.8 times the median.

So yes, for all intent and purpose, the game did well all things considered.

How much time and effort?

These things are hard to evaluate, but based on the timeline above we can say the game has been done over three periods of time:
  • 6 months, from March to August 2018 (BASIC version)
  • 10 months, from March to December 2024 (C and Assembler version)
  • 12 months, from January to December 2025 (post launch)
The work intensity was not constant during all this period, but we can probably say that 2018 and 2024 were the most intense, while in 2025 that was mostly bug fixes and minor updates.

GitHub activity in 2024 and 2025
GitHub activity in 2024 and 2025

I do not have any hard numbers, but it is reasonable to think that during the intense periods I was like working on the project every evening for about 2 hours, and possibly 6 hours during the weekends, which gives us something like 5d*2h + 6h = 16 hours a week = 64 hours per month.

That would mean I spent about 6m*64h = 384 hours in 2018, and 10m*64h = 640 hours in 2024, so about 1024 hours before the launch of the game.

Post launch I reduced the work significantly, mostly because I wanted to make meaningful updates, not just add things for the sake of it.

The biggest post-launch update was the integration of the playable minigame, but other than that I guess I probably worked maybe a quarter of what I did in 2024, which would be then something like an addition (10*64)/4 = 160 additional hours, for a total of 1184 hours.

This is not including the fact that the whole project is using things developed over a few decades, like the FloppyBuilder system with real-time decompression, routines to change resolution cleanly, keyboard and joystick handling research, etc...

I do not have actual recorded metrics, so take these numbers with a grain of salt.

If we take these numbers and divide by 8, we get 148 "full time days", divided by 5 we get 29.6 "work weeks", or about 5 months full time, which seem reasonable really.


If I had been working on Encounter as a full time indie,
I could probably have done it in half a year.


And oops, yes I also worked on the physical edition of the game in November and December, spent quite a few days designing, printing, cutting, cooking, dying, assembling, etc...

Technical tidbits

Lines of code is a crap metric, but it still kind of give a vision on how large a project is.

VS Code Counter
VS Code Counter

Encounter has 10k lines of 6502 assembler, 3k lines of C, and the game logic script is about 6k lines long.

As mentioned already, the entire project source code for both the game and the launcher is on GitHub, so if you want to take a look at it, or even want to port it to your favorite retro machine, feel free to do so11

Compiler woes

I wrote Encounter using the OSDK (Oric Software Development Kit), which itself is a derivative of the original 1996 oric dev kit. The main issue in the OSDK is that the C compiler is an antiquity: It works very well, it's relatively ANSI compliant, but it generate some humongously large code because it's a generic compiler that generates pseudo code for a virtual 16 processor, and this virtual assembler is converted to 6502 using a set of macros, which results in a very inefficient code with redundant loads and stores, inefficient parameter passing, etc...

There are better compilers now, and I will definitely update the OSDK to add support to these, but that was not an option for Encounter so I had to deal with it.

The consequence is that I quickly ran out of memory and had to do horrible things to reduce the code bloat.

One of the ugly tricks was to use macros to avoid using the stack to pass parameters:

Macro parameter passing
Macro parameter passing

Another consequence is that I regularly had to reimplement in 6502 assembler some of the C code that had worked just fine for months, that probably added two months of development time.

Scripting system

Memory saving is also the core reason why I decided to implement a scripting system: Implementing game logic in C or assembler takes a lot more room than the type of dedicated language I came up with.

If you are interested in the scripting system, it's fully documented in the github repository.

Jasmin compatibility

The FloppyBuilder loader was initialy made to support the Oric Microdisc equipped with a Western Digital 1793 FDC, but thanks to the effort of Chema and Fabrice the code was quickly adapted to work on the T.R.A.N Jasmin disk drive system equipped with the older Wester Digital 1773 FDC.

Or at least we thought so because it worked in emulation.

Wester Digital FD 179X datasheet
Wester Digital FD 179X datasheet

Except it never worked on real Jasmin, and we did not really know because we did not know anyone having a Jasmin in working order that could be actually tested on.

A few weeks ago a Spanish user joined our forum and confirmed that did not actually work, so Chema and Iss helped trouble shooting that, and we may actually be able to get a proper fix that will make Encounter run on both systems.

I do not have a full idea of what is wrong, but apparently the Jasmin design is relatively unreliable, the cable is way too long, and even their own code does not always handle errors properly if you actually try to repeat tests many times.

So yes, there will be some update in 2026 to handle that, hopefully that will not increase the size of the loader because I'm dangerously close to a complete out of memory error situation.

Disk Interleave

Most of my FloppyBuilder tests had been made using virtual floppies: On Emulator, or on the real Oric using a Cumulus or LOCI device.

But when I tried on the Cumana Reborn and on my real Microdisc, the performance was significantly worse than on the flash memory based systems.

I eventually figured out that the problem was that our tool chain did not handle the sector interleave factor, which resulted in some horrible performance on system that needed to move a reading head physically and had to spin a disk to access the next sector.

That resulted in a few videos and some rework on the Floppy Builder to implement the interleave factor, as well as testing the performance of the various values on the real hardware.


The whole point of making a game for a retro platform is to make sure owners of the platform get a premium experience, something we can easily forget when the main development system is based on emulators or modern devices which run much faster than whatever we had in the 80s.

Sound System

In the past I had been using the MYM format for the music, but it was unfortunately not particularly efficient for either replay speed or size in memory.

Fortunately some people had ported the Arkos Tracker 2 replay routine to play on the Apple II equipped with a Mockinboard sound card, and this card happens to use the same soundchip as the Oric... and well, the Apple II is also 6502 based, so it was not very difficult to port it to run on the Oric.

Arkos Tracker 2
Arkos Tracker 2

As I mentionned earlier, Per made all the musics for the game, but I already had a running sound effect engine and I had made quite a few effects, and one of the limitations of the AY/YM chips is that you only have 3 channels, and some of the features (such as the envelope generator) are common to all three channels.

So in order to mix sound effects with the music, I had to agree with Per that he would not use hardware envelopes, and I had to develop a system allowing me to modify separately sound channels so the sound effects and the Arkos music player would not conflict with each other.

Typewriter intro
Typewriter intro

An example of this simultaneous replay is during the typewrite sequence when the intro music plays on two channels, while the third channel is used to simulate the typing sounds.

Disk Space

Disk space was a real issue.

It's not uncommon these days to have games that take 20, 40, 60 or even 80 gigabytes on disk.

Encounter is limited by the capacity of a 3" floppy, which in my case happens to be a two sided piece of magnetic media, with each side split into 42 tracks, each track containing 18 sectors each containing 256 bytes, for a grand total of 2*42*18*256 = 387072 bytes (about 380 kilobytes).

I started the project with 17 sectors, the standard value we had used for quite a while, but then I realized that 18 sectors or even 19 sectors should be possible, but when I tried it did not work. I eventually found out that the GAP parameters for the floppy geometry were incorrect for 18 sectors, and after fixing the values I was able to get an additional 21 KB (2*42*256) for the game \o/

Another thing that really helped was the fact that since it was our own disk loading system we were able to do whatever we wanted with the data, including decompressing data while loading it from disk.

The traditional Oric dos like SEDORIC can only load and save blocks of memory, they can't decompress anything, which makes sense because there was not enough memory (or power) on these machine to compress the data. But thanks to cross compatible tool chains, it's now trivial to crunch data on your PC.

Ultimately I achieved roughly a 50% compression ration, which mean that Encounter contain more than 700KB of uncompressed data.


Localization

I wanted the game to be available in more than one language, so I needed some way to localize the text.

Because of the limited room on disk, it quickly became obvious that trying to fit multiple language on the same floppy would seriously limit what I could do in the came, so I made the system so my build script would be able to pass a parameter to specify if the resulting file should be in English or French.

Using some environment variable, the entire build process became aware of that, so I was able to include specific assets in French or English, so this simple script...

#ifdef LANGUAGE_FR
AddFile ..\build\files\masked_rough_map_fr.msk
#else
AddFile ..\build\files\masked_rough_map.msk
#endif
AddDefine LOADER_SPRITE_ROUGH_PLAN {FileIndex}

...would pick-up the proper image based on the value of the LANGUAGE12

Localized assets
Localized assets

For in-game messages, one of the issues of the Oric is that there are only 96 displayable characters in a charset, so it's not technically possible to support multiple languages at the same time with all their custom accents and specific letters.

So I ended up adding a pre-processor to automatically replace specific characters found in strings into whatever character I had redefined on the Oric for that purpose.

Compile time charset localization
Compile time charset localization

Typically in French Oric programs, the { and } characters are used in place of é and è, and @ is often used for à.

And as you can see, the same type of #ifdef is used to compile either the French or English text.

So yes, the texts are embedded into the source code, which provides some benefits when doing the scripting, because instead of refering text, you can just embed it as part of the command.

Localized scripts
Localized scripts

And for the ones wondering, technically adding support for languages like Spanish, German or Norwegian would work, even Russian, but due to the limited 6x8 charset resolution it would not be possible to make a Japanese, Corean or Chinese version of the game.

Proportional fonts

Because I like pain, as well as pretty things, it irks me when non proportional fonts are used.

I did not have a choice for the bottom part of the screen since it's displayed on a grid based hardware text display system, but for the top area I had full freedom to draw proper characters.

This involved using an actual proportional font.

Palatino Linotype Size 10 proportional width font
Palatino Linotype Size 10 proportional width font

On startup the program scans the font and compute the width of each character by ORing each of the scanlines vertically

Tunnel description
Tunnel description

The final bit of the puzzle is a hand maintain table which lists each pair of characters that may require an offset when being displayed.

Kerning table
Kerning table

This could technically have been pre-computed, but it worked well enough, and when I played the game I wrote down when some lines were not looking good enough and fixed them when I was done.

If you are still not sure about what this is all about, just look at this before/after image:

Without and with kerning
Without and with kerning

See the difference?

Emulator issues

The original emulator that started it all was Euphoric, because it contained a significant amount of x86 hand crafted assembly it ran remarkably well on older PCs, but that made it difficult to port to other architectures, and eventually other emulators appeared, such as Oricutron which is the most used these days.

I encountered a number of issues when using Oricutron as a game engine:
  • By default the emulator had a status bar at the bottom showing the performance, disk accesses, etc... and there were no way to disable that originally.
  • Oricutron uses SDL as an abstraction layer for things like screen rendering, sound output or controller support, but unfortunately the support is now perfect so I ended up with some controllers not being supported, and with the video display being weirdly truncated or distorted on some machines.
  • Also in the display department, Oricutron only has a fixed size Window mode and Fullscreen mode, there's no intermediate zooming factor and the window cannot be resized, which is impractical on very high DPI screens.
  • Some emulators supports some kind of API that allow emulated software to force the emulator to do a few things... such as being able to quit the game from inside the game, unfortunately we do not have that in Oricutron, so when the player launches the game they basically have to either know how to quit (using F1 and QUIT option), or they have to ALT-F4 or somehow close the window.
So really nothing major, but we probably want to consider making Oricutron easier to deploy as a game emulator usable on various platforms.

Other issues

There were plenty of things I had to implement for the game, such as the cross fade transition between images, the 1mhz 6502 is not the best performing processor of the universe, so having to cross fade an entire 240x128 pixels image required some significant work before it reached a point where it looked good without being too slow.

Memory management was also a though one: Due to the mixed video mode I used I had data interleaved all over the place, between the screens, in the alternate charset, etc... this made it very easy to corrupt data by mistake, but by adding a few conditional checks I was able to detect automatically when a buffer or some data started to overlap with some other memory areas.

Anyway, going through all the hurdles would require writing an entire book, and that's not the purpose of a post mortem, if you have any specific question just ask in a comment and I'll try to provide satisfying answers.

Legal notes

Videogames have traditionally been a minefield in regards of legal matters.

Between IP rights, ports of games, different publishers depending of which country a game was published, etc... it's often quite hard to know the status of a specific game.

The Encounter IP

The original Encounter game was published in 1983 by Severn Software.

Severn Software (on Moby Games)
Severn Software (on Moby Games)

Encounter was released for the Oric, Commodore 64, Sinclair Spectrum, and Sharp MZ, but no author is mentionned for the game.

Based on other games released by Severn Software, we suspect that the author was Adrian Sheppard, but I've been trying to get a confirmation about that since 2018, I did extensive internet searches, I even contacted the Severn's town "chamber of commerce" to know if they had any information about the company, I also poked some famous British Retro Youtubers (and also some on Twitter or BlueSky) to know if anyone knew anything, and nada, nobody knew.


If you, reading this document, happen to have been involved with Severn Software, or have been the one creating Encounter, I would be very happy to have a talk with you, pick your brain for anecdotes and stories about the development of these games, and yes I'm willing to send you a share of the massive amount of money13 I made with the game!


So no, Encounter is probably not "abandonware" or free of any IP impediment, and no, it's not smart to make a commercial game based on somebody else's property, but I took my chances and so far nobody sued me into oblivion.

Emulator and ROMS

Another issue was the legality of embedding Oricutron with the game.

I got the authorisation by the Oricutron maintainers to release it with Encounter, which left us with the legability of using the Oric ROMs.

Some people have been trying to track the ownership of who actually owns Oric after it was bankrupt, and as far as I know that was never solved.

Oric ROM 1.0
Oric ROM 1.0

Funily enough, the Oric ROMs were not even legal when the Oric computers were being sold: The Tangerine company got a license to use the Microsoft BASIC in their Microtan 65 computers, but when the Oric division was create they seemed to have reused this code without actually licensing it, for all purposes that made these ROM infringing Microsoft rights already back in 1983.

Technically, Encounter does not use the Oric ROM at all, as soon as the game boots on the Microdisc Eprom (which technically is also an Oric property), the Oric ROM is completely bypassed and the game loads my boot sector and the loader is installed in the top 16KB of overlay memory, completely shadowing the ROM.

Now, the game has an easter egg: There is an Oric 1 in one of the cabinets in the mansion, and you can switch it on and reset the game back to BASIC, which in this case actually use the Oric ROM.

So that's another gray area, yes I'm using unlicensed ROMs, but nobody knows who owns them.

Monkey King

That last one is actually the most risky one.

Back in 1982 I bought a Donkey Kong "Game & Watch" dual screen game, and since Encounter happens in 1982, I decided to have one such game in the kids room.

And then later I actually made the game playable, based on my 2003 4K Kong game.

So yes, I'm having a reproduction of a game from one of the most litigous (is that a word) video games company in the world, which is why I named in "Monkey King".

Monkey King
Monkey King


If you are an attorney for the company, I would understand you sending me some letter full of legalese, and yes I'm willing to remove all traces of the game from Encounter, but that's really just an another homage/easter egg: To play it in the game you need to start the game, run to the mansion, pass the dog, climb the stairs, find the batteries, go to the kid's room, insert the batteries, and then you can play the game.


In the mean time, I will cross fingers and hope for the best.

AI use

The use of AI in game development has become a big topic, so I guess it makes sense to have a section about that.

Did I use AI for Encounter? Yes, I did.

Christmas Wishes

For Christmas day I posted on social media a "Merry Christmas" image where the characters of the original Encounter game box art was transformed into a Christmassy scene.

AI Generated version of the Encounter box art
AI Generated version of the Encounter box art

So yes, I did use generative AI to do some marketing images, and it was so obvious it was AI that everybody was poking good fun at how weird it looked :)

The victim photo

I also used generative AI to create the face of the girl for the newspaper and polaroids.

AI Generated version of the victim
AI Generated version of the victim

The reason is that I wanted something that looked like a real person, but which would not match any existing person.

I know the face does not quite match the pixel art version, but it was actually generated from it.

That's about it all for the visual parts.

Code review

Two years ago, most LLMs (at least ChatGPT, Grok, Copilot and Mistral) were not able to produce something like a working "Hello World" program for the Oric using 6502 assembler.

The result would be something bonkers with a mix of 6502, x86, etc... possibly referring to some screen address only valid on the Commodore 64 or Apple II.

Six months later, the code as actually all 6502, but still not working correctly.

Six months later, I actually got something that ran out of the box on the Oric. Not optimal, but it worked.

Six months later, Grok knew how many bytes each instruction took as well as the number of clock cycles and which flags were modified during execution.

Basically at that point I started using it to review some code changes, specially for things I'm not very good at, like properly comparing 16 bit values.

I also used it to ask for suggestions on how to reduce the size of some code I wrote. Most of the time that did not pan out, but sometimes there were some actually good ideas.

So yes, there was some AI generated code in Encounter, probably something like a dozen lines of code in total.

Localization

I did not localize the game using AI, but I had written the game in English, and when I started localizing to French there were a number of places where the text would not fit on the screen.

The Oric has a resolution of 240x224 pixels in total, which in Encounter translates into a 240x128 pixels graphical area at the top, and a 40x12 characters area at the bottom.

French language tends to be more verbose than English, so there were quite a few times where I ended up with text that wrapped around or get truncated.

I found out that Grok was very good at answering queries such as:


"I do have this English text FOO, which I translated to French as BAR, but unfortunately the text does not fit the width of the screen, would you have alternative suggestions that would fit in less than 38 characters per line?"


And it delivered, so yes, some of the French lines were suggested by AI.

Mistakes

There's been a bunch of mistakes, but at the core the main mistake is that Encounter is the wrong kind of game for the modern video game world.

Type of game

If you want your game to sell, as I said, you need people to know about it.

And these days, you need to get influencers (streamers, reviewers) to play the game, and you need the game to somehow get viral, you need people to talk about it, share it on Discord and Reddit and Twitter and Facebook and Tik Tok.

But, for that to work, the game need to be the type of game that does not get spoiled!

And that's the problem with adventure games:


If a streamer play the game on Twitch or Youtube and finishes it because he really likes it... why would any of the viewers buy the game?

So that's the number one thing: You probably want to make a system based game, a game which is infinitely replayable, that is different every time you try it. Not a game based around a story with a start, a middle and an ending which pretty much never change.

If people can make a walk-through of your game, it's probably not adapted to the market14.

Game name

I used the name "Encounter" and "Encounter HD" at some point to make it clear to the Oric community that this game was related to the original Encounter game, but out of the Oric community nobody knows this name, and truth be told it's a terrible name: "Encounter" is an English word, and there's been a bazillion of games with "Encounter" in it.

The problem became very obvious when someone asked to share capsule art and they would guess what the game is all about.

Encounter capsule gotcha
Encounter capsule gotcha

Oops.

So I eventually agreed and made a name change.

Encounter renamed
Encounter renamed

It's more like a "band aid" than a big change, but I wanted to keep the original illustration, so all I did was to add a subtitle "8-Bit Nor Adventure" and a magnifier on the image to hint about the fact that it's a private investigator adventure.

Not perfect, but hey, I tried my best.

Definitely something I will keep in mind if I am to make another big game at some point!

Pseudo Retro vs Real Retro

Don't bring a knife to a gun fight is how it felt when pushing an Oric game to Steam.

There are many "retro inspired" games on Steam, with FPS giving homage to the first PlayStation, ShootEm up that look straight out of a Mega Drive or NeoGeo console, RPG or plateformers that look like they could be running on an Apple II or a PDP11... but all these games are real PC games, some are using Unity, some are using custom engines, but basically they have access to the full power of your CPU and graphic card.

Encounter on the other hand is on the same market, but limited by real constraints that are not possible to exit.

So when I wrote that I wish I could implement this or that but I'm out of memory or disk space, that's a real thing.

Was it Worth it?

Well, I like making games, I've been professionally working on games since January 1995, so that makes 3 decades of game making... except that none of these games were MY game.

I did games for Adeline Software, Heliovision, Eden, Funcom, but none of these were my game, so Encounter is basically the one game I can call mine: It's based on a 1983 game, but I did write the entire code, all the graphics (other than the title picture which comes from the original game box art), updated the gameplay, most of the tool chain, the sound effects (but not the music), ... but I also did the marketing, the Steam work, managing events and seasonal sales, etc...

In short, I've "upped my game" by learning and doing quite a few things I never had the opportunity to do while working professionally on games.

So yes, that was worth it.

What's next?

There will be other games (hopefully), but there will not be as ambitious as Encounter was.

The first I'd like to finish is Quantum FX Turbo Ultra, because even if it won the CEO Winter competition a few years ago, it was mostly a technical demo without any gameplay, so I'd like to add an actual game behind the visual fluff, and some music possibly, but it will definitely not be released on Steam.

The second game is the Dungeon Crawler game, but that will not be a clone of Dungeon Master: It will most probably have some homage and references to Dungeon Master, but that will be a completely different game, both in appearance and global structure, and if the game looks like it's strong enough it may make it to Steam.

Basically I will try to apply everything I learnt from Encounter on this new project:
  • Game must be replayable
  • Designed to be entertaining for streamers and watchers
  • Must have plenty of things to discover
  • Mechanics must be easy to learn
  • Game must feel rewarding early on

Final Summary

Here is the summary of what I presented above (updated to reflect the Winter Sale which happened while I wrote the article!):
  • Encounter is a real 8bit game for the Oric computers (1mhz 6502, 64KB RAM, 380KB floppy disk), emulated on PC for the Steam and itch versions
  • Team Size: one full time developer (me), one musician for half a year, three testers on the last three months
  • Development Time: 40 years from start to finish... but probably closer to 1184 hours for me alone
  • On January 1st 2026 the game had sold 348 units in total split as 288 on Steam, 52 on Itch.io, and an additional 8 Physical Editions, for a total amount (on my bank account) of $907.74, split as 4806 nok ($472.55) from Steam, $247.43 from Itch.io, and 160€ ($187.76) from Physical Editions
  • As of today's update (March 3rd 2026) the sales numbers are now 419 units (356 on Steam and 55 on Itch.io), for a total of $1076.44, split as 5836 nok ($602.23) from Steam, $286.45 from Itch.io, and 160€ ($187.76) from Physical Editions
  • The few people who played the game did actually like it and quite a few gave positive reviews
  • The game was featured in 3 printed publications
  • Two Twitch streamers (one Italian and one Australian) played the game from start to finish
  • A full episode of Generation Micro (French youtuber) was about Encounter
  • The game was mentioned in This Week In Retro, the Retro Show, Indie Retro News and a few other blogs and videos
If you have any question, things I did not think of, etc... feel free to comment and I'll try to answer as well as I can.

Thanks for reading!


1. You need to register to see the images, thanks to AI bot scrappers that DDoSed me a couple of time for that
2. People would now use generative AI to achieve the same
3. The others did not want it so...
4. You know it's bad when people have to bookmark all the places because they can't remember how to reach them
5. The .dsk file is larger because it contains meta data for the floppy disk drive
6. A type of soda sold in Norway during the Christmas period, my favorite is the "Hamar og Lillehammer" one.
7. Which is probably too low, but at that point I just want people to play the game really.
8. 259 right now since the Winter Sale started
9. Or the launcher crashed, did not managed to trigger the achievement, etc...
10. There were about 265 games, many of them "coming soon"
11. If you want to make it commercial though we may have to agree on a few things
12. And yes, it should be a #if LANGUAGE= so I can support more languages
13. Probably enough for a a bottle of Champagne or something like that
14. Strategy/hints guides are fine.
comments powered by Disqus