Content Warning: Too many words, distractions, programmer art, brackets, videos, geeky terms, hyperlinks, attempts at humor.


Prologue

Note: 95-99.9% game projects started never get published. Source: Random Reddit question I found

In early 2021, after my previous 2 year long personal project (ANXCamera) and 3 Games (ANXBounce, ANXBattle and ANXDefense). I was getting bored and craving to build something new and share with the world.


I tried making some prototypes in Unity Game Engine inspired from Elite Dangerous, like an asymmetrical spaceship doing 6DoF movement


I dabbled on some realistic thruster based flight stabilization and guns


I destroyed some rocky rings with pointy defense canons (as seen in The Expanse)


Got distracted and made something inspired from Just Cause Grappling Hook

Combined that with Portal

Broke the in-game reality (maybe it was just a bug with my code) (WARNING: strobing effect)

(All above 3D Models made in blender)

And I stopped working on the above ideas as I couldn’t think of a game idea around those mechanics.


The Journey

When one fine day I thought about combining Trackmania and Elite Dangerous and making a game.

Since I didn’t have the time (had a full-time job working on a widget) and skills (I am a grate artist) to make a full-fledged 3D game with 3D graphics and 3D music, I disintegrated one dimension to reduce the scope, efforts, skills and time needed to make the game. I decided to make a 2D game with 2D graphics and 2D (stereo) music.

So I took a 2 weeks Christmas vacation from work in 2021 (I had accrued enough leaves, and they were at risk of getting lapsed). And I embarked on the journey of creating and publishing a game seriously (meaning on the platforms where big (AAA and AA) companies publish their games, and not only on Google Play Store).

Goal: Publish a game on multiple platforms.

I researched what I needed to do and found an easy tutorial somewhere as below:

  1. Have an Idea

  2. Make game

  3. Publish

Very similar to Van Oktop’s “how to draw a horse” tutorial


So I started working on it. I fleshed out the idea as below:

Make a racing game like Trackmania, but with spaceships. It should have good replayability, be physics based, with non-irritating music. The game should be easy to learn but hard to master.

We should also have a track editor as well as a spaceship skin painter. Bonus: Have a spaceship creator too.

Elite Dangerous has a Flight assist system. That ensures your spaceship always stays in control and doesn’t reach relativistic velocities/vomit inducing spins. We also should have a similar system. But it should be only enabled when user is applying power to the thrusters of the spaceship

I then started developing this in Godot because I read somewhere that Godot is a great engine for 2D game development and I also wanted to learn Godot, but dropped it and went back to Unity due to weird physics decisions taken by Godot. Within 2 weeks I had basic core loop ready using Kenney Assets as below:

Shared it few friends, few of them played it and liked it.

And one even offered to create music for the game.

Mibris

(Their music is now in-game as well as in the official trailer).

Added an online leaderboard and a basic track-editor in a week and released a beta version on Google Play Store on 4th Jan 2022.

The game server stored data in LiteDB (an embeddable NoSQL .NET DB)

I also integrated a telegram bot to administrate the game server. Telegram Bot

Administrating the game server using telegram

The game published had 3 tracks, 1 spaceship, 4 input modes and worldwide ranking leaderboards.

Note the Android 12’s Material You inspired rounded corner UI.


5 days later a friend discovered an exploit

Timur

Speedrunners/Bug Exploiters when they discover time traveling.

20 days later he discovers a way to modify tracks to finish them instantly

It seemed people were putting serious effort into testing it. After this I added hash-based validation on spaceship and track data. Also moved the server from NoSQL based LiteDB to SQLite + Dapper ORM. (Due to some unresolved issues regarding DB corruption in LiteDB)


N.B. Everyone needs friends who make memes

Meme

No Trackmania inspired game is complete without a press-forward track.

After fixing some bugs and a month of development, integrated first external sign-in mechanism

Also added a Track Draw-er


In April 2022, made the first trailer for the game. (Using Shotcut)


6 months after start of the game’s development, first windows build was published, with Discord’s rich presence and sign-in mechanism.

and then Mod Support was added

By this time the game was available as Open Beta in Google Play Store and Early access in Itch.io (Itchio is like Valve’s Steam, but without an entry fee)

Many people said by this time that game felt slow for a racing game. One of the players created a (uncontrollably) fast spaceship, using the spaceship creator as seen below:

8 months after the start of the development, real-time multiplayer was added. I used reliable UDP library known as LiteNetLib. To save on server resources/cost, only 1 track+spaceship combination is available for real-time racing, as “Race of the Day” (changed weekly or bi-weekly, because why not), Everyone joins the same multiplayer session.

Skip the below video to 8m:14s to see it in action.


By this time my first major bug was discovered. The game was not as deterministic as I had thought it was supposed to be. Players discovered, that the first run, without any resets was faster, than consecutive attempts after reset.

This was due to a combination of two bugs.

One, I had set the physics timestep to 0.02 sec, and was measuring timestamp accurate to 0.001s, which doesn’t make sense.

And second, Unity misses applying forces on first physics frame after re-enabling a physics object. Making next race attempts slower. This was very difficult to find out. I had to analyze multiple recorded ghosts/replays.

First one was fixed by changing the physics time to 0.001. Second was fixed by re-enabling the physics object at the start it self. So as to be consistently slow everytime.

After this I had to reset the leaderboards, since previous timings had become invalid.


Then I implemented a web-based spaceship painter, (The actual skin editor needs to be launched from inside the game)

Spaceship Skinner

Svg-Based Skin Editor


The Game was shown 2nd in New and Popular Racing Games category of Itchio on 21st Aug 2022.

Itchio Topper

In the same month the game participated in Indie Racers Festival 2022

To gather feedback from non-friends, I started peddling the game to twitch streamers. I also made up an entry for the game on IGDB. This is used by Twitch streamers so they can select the correct game, while streaming.

Shared 1K Replay Video on Trackmania Reddit Sub

Attracted attention of few pro-players from there, They still play the game.

Gathered a lot of feedback by talking with the players on reddit and discord.


Players finally started learning the Flight Assist Off trick (Which didnt slow down the spaceships)


Around 10th September 2022, the game got 600th player’s registration.

600th Registration


Then development slowed down for few weeks. And suddenly YouTube suggested me this.

Went down the rabbit hole and made an OpenAI Gym environment for the game.

Note: No AI was trained during the making of this video. I lack hardware capable of training any AI.

Sadly this was my most viewed youtube video for a long time. Wrong audience had more interest in the game.


Went back to working on the fun part of the game.

Created the iconic A-01 Race track in my game.


Improved the Telegram bot, to have interactive buttons.

Bot Improvement 1

Ability to publish/unpublish tracks on demand, as well as Set Race of the Day track.

Bot Improvement 2

Same for spaceships

Also added notifications to Discord

Discord FOMO

Competitive server members get notified about latest world records

Now that I was approaching almost an year of development (Xmas 2022), I started working on a Super Mega Update, This update contained changes that moved me away from Kenney Assets, so that the game feels less of an asset flip. Leaderboards were cleared again. And official List of tracks was created. This tracks are still in current game. Leaderboards have not been cleared since then.

Very soon an updated trailer was created using Kdenlive.


Early 2023, Generative AIs were on the rise. After having multiple discussions with them (Yeah, you read that right. I had multiple discussions with AIs, i.e prompt engineering), I updated the blurb on game’s homepage.

https://studios.aeonax.com/racers/

Created an Among Us inspired track (on player request)

And started a multi-month long UI overhaul project.

In April 2023, finished the first part (Visit below link for details)

https://aeonax.itch.io/racers/devlog/520505/bundle-123-for-androidwindows-x64-ui-overhaul-part-1

In March 2023, the a track from the game was part of Mobile Speedrunning Competition'23 Round 3. Video below shows everyone’s attempts on the same track.

In July 2023, finished the entire UI overhaul,

https://aeonax.itch.io/racers/devlog/566292/bundle-131-for-webglandroidwindows-x64-ui-overhaul-part-2


By this time a WebGL build was published on Itchio. The game was released on Microsoft Store for Windows and Xbox as well. Initially it was free, since I didn’t have an Xbox to validate. It was made paid once few people tested it.

I also had a Steam page up. And was slowly (in hindsight very slowly) accumulating wishlists.

Only thing remaining now was Apple. To publish on Apple App Store you need yearly subscription of Apple Developer Account. To get an Apple Developer Account, you need an Apple Device. Finally after much pondering and counting my savings, bought a Mac Studio M2 Max. Spent a month along with multiple calls to apple support to get the Developer account activated.

Luckily they didn’t need me to have an iPhone and iPad to publish the game to iOS AppStore. Couldn’t release it on tvOS App Store, since I don’t have iTV or Apple TV device (whatever its called). Publishing apps to AppStore is a mindboggling slow, wasteful process. I guess when you have a secure walled garden, you need to ensure the devs take a lot of pain, to publish to your store. But the hardware and software integration is great.

The game published to iOS App Store just worked™


On 21st Aug 2023, moved the game from open beta testing to production release on Google Play Store. On that day Google sent around 30 new users to the game, and we crossed total 1600 player registrations in-game

1600th Registration

Captured on the day the game went into production on Google Play Store, note the peak at the end.

On 27th Aug 2023, clicked the big green “Publish Now” button on steam

Steam Release Button

Many indie game projects never reach this stage.

One thing of note, once you release the game on Steam, You receive many mails from allegedly in-active streamers saying, that want to start streaming again, and find your game perfect to start streaming again. They want at least 2 steam keys, so that they can play the game with their best friend on the stream. You can safely ignore this emails/spam them back broken keys or (1 working and 1 broken for maximum damage).

Spam 1

Nothing was whispered on Twitch. It doesn’t matter coz this imposters don’t have access to this twitch accounts.

Spam 2

Again no keys were sent from my side. They don’t complain about it either.

By 31st Aug 2023, I released it on Epic Games as well, Making the game available on 6 Game Stores, namely:

The game runs on Windows PC and Xbox, Linux, MacOS, iOS (iPhones and iPads) and Android Phones/Tablets and TVs, as well as browser (WebGL).

Around the same time I created the current trailer of the game in blender.

Post release continued on fixing bugs and adding few features.

A notable one, Medals were added, since I got many requests for this. Players wanted a sense of achievement when they put in some effort. It shouldn’t be necessary to be in top 3 world wide. Good enough time from good enough effort should be rewarded.

Medals

Since no more glaring bugs were in the game. I have been only creating new maps in last 2 months. Also since I switched jobs 2 months back, I wanted to take this a bit slow.

Epilogue

Recently the game completed 2 Years of development.

I learnt a lot while working on this game, like 3D Modelling and Video Editing in Blender, Vector Graphic Design in Affinity Designer, Discord Integration, Telegram Bot Integration, Compute Server Hosting, Database Design with SQLite and Dapper, SEO, Publishing processes of Steam, Apple, Epic Games and Microsoft.

Some numbers/charts from my own self-implemented analytics are shown below as well as observations if any (Screenshots from Metabase connected to my game server):

9000th Registration

Reached 9K Total Registrations on Christmas Eve of 2023. The steeper climb started after Google Play Production Release.

Trivia Anonymoux

Good to see people caring about their privacy. (Or they are just lazy to fill the registration details)

Trivia Devices

Android TVs and Set-Top boxes seems to be in serious need of more games like mine

Trivia Countries

I have no idea why the game is so famous in Vietnam. I guess they have lots of Android TVs there, and they like a free game.

Trivia Ships

Players liked to race in the meme spaceship (HyperBoi) more than the slower official spaceships

Trivia Events

The above chart exposes a lots of trivia.

For e.g.

  • 110K Races were started, but only 25K races were finished, 85K times they were reset.

  • 800 times tracks were liked, but 240 times they were reverted.

  • 2.2K times players studied how others played the tracks

  • 5K times “Race of the Day” was joined, 850 times it was spectated.

  • 240 attempts to login with non-existing user names. There were 7 attempts to send bogus scores.

You might have been thinking what about “Monetization” of the game.

Over the course of 2 Years, I researched it and thought about it a lot. I didn’t like what I saw. Dark Patterns, like lootboxes, pay to win, daily rewards, sunk cost, FOMO etc. Not everything could be avoided. A game needs to hook the player in, for them to keep playing. But I took care not to add something unethical intentionally. I have not added ads, but kept the path open for paid skins.

Currently the game is free on Android, because ads don’t pay much there. But the game is priced at a small amount on other platforms so as to not be clubbed with free abandonware. Except Apple, If one can afford an apple, they can afford the apple tax.

Back to hard numbers, keeping in mind, monetization was never the goal.

People have paid the following sums:

  • 31 USD on Itch.io (where payment was totally optional)

  • 48 USD on Steam (where it was priced between 1 USD to 3 USD)

  • 16 USD on Epic Games

  • 9 USD on Microsoft Store

Whats Next

Investigate paid advertising/marketing.

I plan to keep the game servers online for 3 more years assuming the costs are manageable, or game’s revenue is enough to sustain them.

Some QoL improvements will be performed. SQL Query optimizations/Database cleanups, will be needed as the number of users, scores and tracks increases with time.

I plan to release a self-hostable multiplayer server.

Whenever the game servers I host online will be stopped permanently, I plan to release a self-hostable version of the same.

I think its now OK to say “Mission Accomplished” of publishing the game to multiple platforms and stores

Thank You for Reading! Also Wish You a Happy and Prosperous New Year!!!

Get/Try the game here: https://studios.aeonax.com/racers/

Credits from the game:

Credits