Introduction
Introduction
Welcome to my blog which documents my game development journey! You will notice that most of these posts are in the past tense as they have almost exclusively been done retrospectively. I only came to realise recently that it might have been a good idea to show what I went through to come from playing games to attempting to create them myself...
January 2019: The seed was planted and watered daily
For as long as I can remember, I have been fascinated with technology and anything electronic. I fell in love with gaming from a very young age. My first encounter with any form of digital game was the Atari 2600. My uncle had one and we were all hooked on Space Invaders. A short while later my dad bought one too and the whole family could not stop playing Tennis (such original game names in those days). Next up was the ZX Spectrum when I was about 7, a teacher had one on display and I vaguely recall him playing Batty (it must have been this because Arkanoid had not been released yet). Then just before my teens it was the Commodore 64 and the Nintendo Family Computer at my best buddy's house. We played Super Mario Brothers 3 into the wee hours of the morning - there was something magical about that game and it is probably still one of my all time favourites to this day. Some people agree, touting it as the best 8-bit game ever made! Another firm classic at the time was Super Contra which we clocked many times!
Not sure whether the younger generation still use the term "clocking" but in the good old days we used this to describe completing all levels of a game. In most cases, one could not save your progress like you can these days, so you would have to play continuously - which is why completing a game was a momentous achievement!
My cousins would sometimes visit us and would bring along their Sega Master System, while Sonic was popular at the time, I was completely hooked on the built in game: Alex Kidd in Miracle World, which was extremely addictive...
Years later I was introduced to PC gaming on an authentic IBM running OS/2 Warp. At the time, most people had either green, orange or white monochrome monitors, but this beauty had CGA or EGA (I cannot remember which one) so we could play California Games and Leisure Suit Larry in colour. Firm favourites at the time were Space Quest 3 (clocked this on a green monochrome monitor) and Prince of Persia. Fast forward to leaving school and I was playing games on my dad's work PC, in between invoicing customers we would play Warcraft 2 ("Ready to Work" π) on the LAN. This was probably my first true multiplayer experience and it was an absolute thrill to be competing against another person who was physically in a different room!
My dad then bought me my first PC after I beat him at a game of darts! This was a 486-DX with 4 MB RAM (an absolute monster) and had a 540 MB HDD - at the time I had no idea what I was going to do with all that storage! Games around this time for me were Alone in the Dark (also one of my all time favourites), Blackthorne, Crusader: No Remorse, Diablo, Doom, Duke Nukem, Flashback (25th anniversary edition is available on Steam now), Indiana Jones (clocked both Fate of Atlantis and Last Crusade), Might and Magic 3: Isles of Terra (not Heroes of...), Phantasmagoria, Quake (also played multiplayer on a 28.8 kbps modem), Sim City 2000, StarCraft, The Dig, Ultima (7 and 8 were the best), Warcraft 3, Wing Commander 4 (which featured Mark Hamill in brilliant cut scenes) and Wolfenstein. Good times, very very good times!
Oh and by the way, there were arcade games as well - there were many times when all my weekly pocket money was spent at the local arcade. In the 80s it was 1942, Bubble Bobble, Ghouls n Ghosts (this one took most of my money), Golden Axe, Kung-Fu Master, Pacman and Track and Field... In the 90s it was Mortal Kombat, Simpsons, Street Fighter, Teenage Mutant Ninja Turtles, Terminator and Time Crisis (another coin thief).
Of course, I would be remiss not to mention the newer consoles and the influence they have had on my gaming journey. While I chose not to invest in the latest and greatest PlayStation or Xbox every two years, I did end up with a PlayStation 3 which I still have to this day. My son claimed it when he was younger and spent more time on it than I did, but my favourite games have been Assassins Creed, the God of War series, Mafia 2, Need for Speed, Ratchet and Clank and the Uncharted series...
So the gaming seed had been planted from the early days - and as they say: once a gamer, always a gamer - the need to develop something myself had been festering for years...
Then finally in January 2019 (must have been a new years resolution), long before the apocalypse (COVID) was upon us, I started seriously dabbling with the idea of developing my own game and started exploring options such as Unity and Unreal. I ended up settling on Unity as it was very popular back then (and still is) and I had loads of experience with .NET and C# so it was a natural fit...
For the remainder of 2019 I taught myself as much as I could about game design and development with a focus on mobile games and the strategy behind monetization. I knew my strengths were on the coding side and I was going to struggle when it came to art and 3D modelling, nevertheless I still wanted to learn about all aspects of game development. As a result, I made a conscious decision not to use free assets but to rather create everything from scratch. A decision I would find myself constantly questioning in the days, weeks, months and years to come!
May 2020: Jebley sprung from the ashes
After more than a year of sporadic dabbling, fiddling and learning about game development, things suddenly got serious two months after the apocalypse (COVID) started. We were in full lock down and I had nothing better to do other than build puzzles and stare at the street outside waiting for zombies to walk past (it honestly felt like that was imminent)...
In the initial stages, I was tinkering. I had created and discarded several projects using demo templates and free assets while trying to figure out what type of game I should develop. Should it be 2D or 3D? Should it be adventure, first person shooter, puzzle or side scroller? Should I still target mobile or would Steam be a better choice?
Eventually I settled on an arcade style, scrolling space shooter for mobile. I was about to create the Unity project when I realised I first needed a name for the game! The problem was that every game name imaginable had already been taken of course π³ So I ended up using letters from the names of my wife, kids and surname for the main character. Jebley sprung from the ashes. Then optimistically, I came up with a concept where the main character will have many adventures and this game would be one of many to come, similar to the famous wizard book series or an epic space saga. As I said, optimistic... Jebley and the Orbit Rocket had a nice ring to it and was related to the premise of the game in which one must navigate space and use a rocket ship to orbit asteroids (or something like that)... Okay, we had a name now and the Unity project was created.
What followed is a bit of a blur... as I get older I tend to forget things so I got into a habit of making notes about everything I had learnt and also created a list of tasks as I went a long. This task list or backlog just kept growing and for every completed task I would add two new ones. Looking through the notes now, I thought it might be pertinent to summarize the key aspects of game design and development (as I understand it) so you have an idea as to everything I was (and am) dealing with... There are general aspects to consider and then the aspects which would make my game unique. In addition to all this, I felt I needed to develop this in a way which would allow me to reuse as much as possible for the next game in the series (there is that optimism again). So all my development has been contained in a custom Unity package which can be imported and used for any future games (with one or two minor and possibly major tweaks - we will only know once we start that second game I suppose).
Okay so time to get into it - you can skip this part if you are not interested in developing a game yourself π
Equipment, software and tools setup (versions are as at the time of writing):
Linux Mint PC with Intel i7 11th Gen, 16GB RAM, 250GB SSD, Nvidia GeForce GT630, 27-inch monitor.
Unity 3D (v2022.3.20f1) for building the game of course.
Unity 3D packages: Cinemachine, Ink, Polybrush, ProBuilder, TextMeshPro, Timeline, URP.
VS Code (v1.100.2) for C# coding of the scripts.
Blender (v3.0.1) for 3D modeling and textures.
DaVinci Resolve (v20.0.1) for creating marketing videos.
DosBox (v0.74-3) for validating ideas and taking a break.
Gimp (v2.10.30) for raster art and web site content.
GitHub Desktop (v3.1.1) for managing source control without a CLI on Linux.
Inkscape (v1.1) for vector art and sprites.
LMMS (v1.2.2) for audio clips and sound tracks.
And that is it - quite impressive that one can develop a game using only this core set of software. Of course there are many alternatives out there, these are just the ones which I chose to use π€© Then in addition to this, I have also used the following:
DeepSeek instead of trawling Stack Overflow and other technical sites for help.
GitHub for source control.
Google Admob for rewarded adverts.
Google Analytics for advert performance insights.
Google Cloud for games services.
Google Firebase for hosting adverts configuration.
Google Play Console for achievements, in-app purchases, leader boards and publishing the game.
Google Sites for blog, policy and terms documentation.
Unity Gaming Services for package and environment management.
Then as for those aspects which would make my game unique, these are the core principles I have applied:
Build clean responsive and adaptive user interfaces to cater for all form factors and platforms.
Design for localization and globalization from the start and support multiple languages even when offline.
Design for landscape and portrait game play also to support multiple devices and platforms.
I then hooked up Jebley and the Orbit Rocket to source control and was ready to crack this thing in five to six months - or so I thought!
Looking back at the code base now, the oldest code I have is from the 25th of May 2020 but my first official commit to this repository would only happen much later on the 6th of May 2021... but that is a story for the next post...
Where all the magic happens...
May 2021: Apocalypse swallowed my homework
Scanning through the commits I can see that I worked consistently from that first commit on the 6th of May 2021 all the way through to the end of April 2022 with an average of four substantial commits a month. Bear in mind that this was all after hours and on weekends as I had (and still do have) a full time job!
But we need to take a step back... I am getting ahead of myself... as per the post title we are now only in May 2021. So what happened between May 2020 (the time of the previous post) and May 2021 you might ask? We know it was the apocalypse and we were in lock down for most of this time. However, why had I set everything up and then made zero progress in an entire year? ...oh the joys of blogging years after things happened!
So I dug a bit deeper, worked through all the old demo projects, looked around for other repos... nothing π€
Then I found it - just some random folder in the middle of nowhere - which triggered multiple flashbacks all at once! I remembered what I was doing back then... for some reason after setting up Jebley and the Orbit Rocket in May 2020, I second guessed myself and thought a third person adventure shooter type game might be a better option, so I had spent this entire time building this concept out... Mystery solved π§
By the way, this concept game was called Jebley and the Galaxy Stones - who knows, this might end up being the second game in the series?
Now after looking through this code base, I recalled learning a lot about animations and models (and used free assets from Adobe Mixamo). In fact, during this time I had built out the foundation for the custom Unity package which, besides containing my own game assets, also included camera, device, game, level, player, screen and sound controller scripts which would form the basis for my game mechanics going forward.
So all was not lost. The apocalypse had not swallowed my homework. I had been productive during this time and the work was not throw away...
p.s. note to self... even commit demo projects to source control so you do not waste time figuring out what you did with a year of your life!
October 2021: What if this becomes the next Flappy Bird?
Work on Jebley and the Orbit Rocket was now in full swing, it was taking proper shape... we were slap bang in the middle of that very productive period where I was smashing 4 substantial commits / features a month on average. During this time, a significant amount of work had gone into the menu system (animations, flow, look and feel, mechanics, responsiveness, sounds, sprites), a basic asteroid and spacecraft model, the weapon system and object and damage system. Lastly, a level system was completed, in which one can configure level waves, the objects to spawn, level theme and background particles which are then all generated procedurally. Pretty nifty, no need to manually build out levels!
It got me thinking... what if this actually works and becomes the next Flappy Bird?
(Not sure what you were doing in 2014 if you have not heard of this: Flappy Bird)
Hey there is that minuscule chance that all of this hard work might result in a published game which brings in a couple of coins... if that happens then I probably need to configure payment details on the Google Play Store so that I can get paid π€ For that, I will need to set up a company... now all I need is a company name. Here again, I went through a long list of possible company names and just like the game name, most were already taken so once again I incorporated the family name to ensure it was unique!
And so Beckley Games was registered as a private company, and with the DUNS number and payment details set up, we were good to go and ready to accept payments. Just one thing missing, that published game...
May 2022: All hope is lost
So just a reminder (for you and myself), from May 2021 all the way through to the end of April 2022, I was flying through features. Most of the time still with the "move one to done and add two to the backlog" approach so it felt like the list of tasks was not getting any shorter π Although I was still optimistic and motivated. I kept my head down and by the end of April 2022 I had what looked like a pretty decent shell of a game...
I had got through some hefty work with almost every one of these features potentially worthy of a blog post on their own as I typically needed to learn a new skill and each of them took anything from 1-2 evenings to 2-3 weeks to complete. Besides improving the landscape and portrait orientation support, I had thrashed through the about screen, addressables, chromatic aberration effect, confetti particles, damage particles, dust particles, engine particles, explosion particles, fuel, hyperplane, joystick controls, lives, multiple language support, options, profile screen, ranks, resume, re-spawn, scores, shake screen (vibrate), shop, splash screen, stars and tracks screen. Moving from built-in rendering to the Universal Render Pipeline (URP) was insane but well worth it as it significantly improved the visuals and cross platform support...
But... it still felt bland and boring, it had no heart or soul and it was not much fun to play... This was maybe because I had spent most of the time on the foundation of the game and not the actual game play yet? Potentially also because I had been working on it for so long and had got used to the "cool" parts of it? It felt like it had not been worth all the effort and that I should have got to this point a lot quicker than I had...
So I took a step back again to figure out what was missing? What was the bare minimum required to get this game published and for it to be successful? What was success - having more than my family and three friends play it for more than a day? Then it dawned on me - it would be all good and well to have a decent amount of downloads, but how would one ensure that people keep playing the game? Also what is the point of 10 downloads with 10 DAUs (Daily Active Users) and no money coming in to fund the coffee I needed to keep developing the game? Even if I hit 1000 downloads or 100 000 downloads - fame is not going to pay for the coffee! So I needed to focus on two areas: 1) Making the game fun to play to retain players and 2) making money while they play!
And at that point... life happened - nothing major - I just got distracted, I lost motivation, making the game fun and adding the elements required to make money felt daunting, I had lost all hope of ever publishing this game...
...so I took a break π₯
May 2023: Hiatus over and out
What is it about May? May-be May was a good time for a reboot? May-be May was going to be the beginning of the end?
Well whatever it was, I found some motivation, reignited some of the passion and decided to pick up game development again π₯³
One of the challenges with big gaps (a full year in this case) between the development stints is that you have to refresh your skills (and memory) and update the technology as it is forever changing... When I started again back in May 2023, there was a new LTS (Long Term Support) version of Unity, many of the packages needed to be updated (some with breaking changes), including the Android SDK (which is an absolute pain to change) and Google and Unity online services had changed or been deprecated. So I spent quite a bit of time getting everything up and running again...
I could no longer put off making the game fun to play or incorporating those monetization mechanisms, the two things which scared me off a year ago...
In terms of monetization strategies, the two obvious and most popular ways to do this are to include advertisements throughout the game, typically incentivising the player with a reward for watching an advert and the other is for them to purchase game boosters or to unlock benefits.
Advertisements
There are several advertisement formats one can implement, the main ones are: banner which is the annoying ticker tape one, interstitial which is full screen at intervals or breaks in the game and rewarded which is full screen and the player gets a reward for their pain if they watch the advert till the end! I needed to get clever here by making sure the adverts are not too intrusive and to give the player rewards just when they need them. In the end, I went only with rewarded adverts as I really did not want to annoy people too much. The hope is that the game will be cool enough to play that people would be more than happy to waste 30 to 60 seconds of their lives watching adverts just so they can carry on playing the game π
Purchases
I had already created a shop which allowed the player to use the game currency they had earned by playing the game. They could then spend this game currency in the shop on permanent boosters such as a fuel magnet, shield or improved weapon. Awesome! Problem was that none of this was putting real money into my bank account (to pay for my game development expenses: coffee, coffee and more coffee). So I went ahead and integrated several products which require the player to spend their (or their parents) hard earned cash on virtual game items which will either eradicate those pesky adverts, allow them to choose on which level to start the game or upgrade their weapon to make it easier to progress. In addition, they can also purchase more game currency which they can then use in the shop for the game currency products or in the game to resume the game when they perish.
Now I was feeling better, two great ways to monetize the game and on the slight chance the game actually becomes popular and has repeat players, a consistent manner in which to bring in revenue...
This is now probably a good time to point out that all the work above took place between May 2023 through to the middle of July 2023... while the Hiatus was disrupted by the resumption (is that a word?) of work, it was unfortunately short lived. I then took yet another "break" and only started working on the game again late in February 2024... seriously!
February 2024
Upon resuming work here, in addition to these "big ticket" items, I added achievements, a controls guide, the credits screen, expanded high scores from local to include global (all-time) and weekly, added cut scenes using Cinemachine and a story line with localisation using Ink, created my first shader graph for the shield and asteroid orbit, added multiplier system to make the game more difficult as you progress, catered for the screen safe area and added a basic tutorial screen.
All aspects of Google Play Games Services (GPGS) were properly integrated into the game now, including sign-in and saved games (purely for persisting configuration and progress across devices)...
From here and all the way up to the end of April 2025, I was averaging three commits a month during this period...
May 2025: Engage the right side of the brain
It finally felt like the last bit of coding was done. No really, this time it really was done! No wait, I still need to... and then I must...
Time to engage the right side of the brain and do the creative stuff... the stuff I really had no idea how to do!
π¨ Art π¨
I did art at school and have always enjoyed drawing and painting but have not done it for a long time and of course, digital art is something completely different. Another complication is that for 3D games, the art normally goes hand in hand with the models, another area where I was clueless... but I had an out: Because I had taken soooooooo long to get to this point, advancements in generative AI now meant you could get AI to generate a lot of this stuff for you! Hey, this is not cheating, I would still be sticking to my original principle of creating everything myself. I would not be using somebody else's assets, after all these assets would be generated from my prompts. Right?
Enter Meshy AI...
Oh and quick segue: While writing this post on the 31st of May 2025, I realised I am now in the present and can therefore switch from past to present tense.
Past -> Present
There you go, done...
Even more impressive than Meshy is Rosebud AI - so instead of generating models and textures, why not just generate the entire game?
Okay so I have wasted 5 years of my life then? If only I could have predicted the future, I would have waited this out and just asked Rosebud to "Create an arcade style, scrolling space shooter for mobile" and voila it would spit out Jebley and the Orbit Rocket β¨ So I tried that and while this technology is super impressive, this does in fact feel like cheating and it is still relatively new and does not give you all the bells and whistles - yet.
Okay so on to creating the bare minimum models and textures I need to get this game published. I had got this far with close to zero models and textures, at this point all I need is a model and texture for the asteroids, the spacecraft and both Jebley and Libby for the cut scenes. I started playing with Meshy and must say I have been extremely impressed. I have found that everything it generates (which also includes character rigging and animations) is immediately usable in Blender or Unity. However, you definitely still need to optimise and tweak things to your liking. Stock will work but it is not ideal.
As a result, I am using Meshy for prototype models and textures but then touch them up in Blender. What can I say about Blender other than this is the most astonishing, comprehensive all-in-one free 3D modelling and painting tool on the planet or possibly the universe? After many (many) tutorials I can safely say that I am now a novice and have only used a fraction of the features, enough to have models and textures good enough for my game...
July 2025: Gameplay and menu background music
Wow, wow, wow... I cannot believe I have made it to this point, most certainly an inflection point π₯Ή
An amazing point where it really does feel like I can now focus on the final (oh please let it be so) big ticket item - gameplay and menu background music!
Don't get me wrong - I have had loads of fun doing this - but this game needs to get published like yesterday, like yesteryear... time to finally fund the coffee.
Up until now, I had played and tested the game on mute as I could not bear to listen to the nonsense I had slapped together years ago when I first attempted to create the music. The initial tracks had been used to build the audio and music controllers which include nice fade in and out functions to transition seamlessly between menu and game tracks. So they had served their purpose, but now it was time to mix some rocking π€ tracks which - after many, many hours of gameplay - do not make one feel the need to scratch out ones ears...
You will be pleased to know that I do not have time to figure out how to embed audio in this blog, so (un)fortunately I am not able to share with you some of the pain I went through π As mentioned in a previous post (May 2020), I have been using LMMS (Linux MultiMedia Studio) for the audio clips and those terrible music tracks which you will now never hear... For quite some time LMMS has been one of the most popular free Linux based tools for creating and editing music and sounds and is extremely flexible and powerful considering you do not have to pay anything for it!
Now that the right side of the brain is engaged, it is time to continue my creative streak and pretend I know something about composing music. Similar to how I have been a huge gaming fan for most of my life, music (specifically alternative and rock music) has possibly been an even bigger passion of mine. The caveat to this passion however is that it has strictly been about listening to music - not dancing to music... definitely not playing music... and most certainly not creating or composing music!
I want to create these tracks in a way which will allow me to reuse them in subsequent games in the series - just a reminder of that optimism which was also mentioned way back in May 2020! So I set about thinking about the mood and theme for the tracks, planned what tracks would play when and ended up with the following:
Ambience: Mellow track for the about, credits, menu and tutorial screens
Devastation: Disheartening track for the game over screen
Energise: Energetic track for gameplay and all levels with the track pace increased by the level multiplier
Triumph: Triumphant track for the level end cutscene and screen
Beginnings: Upbeat track for the level start cutscene and dialogue
Attention: Catchy track for the splash screen
TODO: Add screenshot of LMMS with one of the completed tracks!
August 2025: Open but closed testing
TBC
Open this up for testing to extended family and some friends...
September 2025: Publish the game on the Google Play Store (finally)
TBC
For Android on Google Play Store but also option of Windows desktop beta...
Google Play Store content and review and YouTube marketing videos.
October 2025: Advertising and marketing and support
TBC