Yesterday, 1st October 2025 marks a full year of use with the Defold Game Engine.
I am completely in love with the engine.
Warning: there will be a lot of yapping.
Background
I am OneRedEyeDev. I started game dev as a hobby back in 2017 when I was in University and I only had 2 Units in a single semester. At the time, I looked into YouTube and all I could see was Unity. So, I began using it. The wrong way. I began by buying Asset Bundles off Humble Bundle which contained Assets as well as Courses.
Some of the bundles included books in pdf that are still useful to this day (Practical Game AI Programming by Micael Dagraca, Pro HTML5 games by Aditya Ravi Shankar, Online Game Pioneers At Work, A compilation of interviews with Interviews of Top Online Game Pioneers of the time)
I haven’t read any of these books, I just find them neat. Someday… Someday…
From 2017 to 2021 is what I call the “Roleplay years“ I wasn’t developing any games, I was simply doing tutorials, making basic effort prototypes like character controllers here and there and that was about it.
I had friends, colleagues at work and family members asking me:
“You make games? Thats cool! What have you made so far?“
“I’m just developing stuff, I haven’t published a game so far“
“OK… so can I see anything“
and then I just show them the current prototype which would leave them somewhat unimpressed.
I didn’t like this. At all.
On New Years 2021, I stood my ground and said to myself: “This year, 2021, I’ll publish my first game. Come rain, come shine“
I started by fleshing out a GDD had for a while.
(It has gone through several revisions but ultimately untouched since 2021)
Dukie was the name of my cat. I was gonna make a game about them.
6 months later, working on and off on the game, I had something playable. I drew the tileset, the background and wrote the code by myself. I bought a cat asset from itch and used some free tree assets from itch as well.
The longer I spent on the project, the more I realized that the scope was ambitious for my skill level.
It was time to shelve the project and work on a more realistic project.
What is simpler than a platformer? Thats right, a Shmup; Shoot Em Up or a Shooting Type Game.
I started developing Astro Impact DX by following a tutorial series. 4 Videos in, I couldn’t shoot bullets the same way as in the tutorial. I gave up. Time to go even simpler.
Thus, began work on Cubey Boi Goes Stylin’ An endless snowboarding runner about a cube jumping over obstacles and doing a trick. It went well but I realized, I don’t know how to animate pixel art, and I was using physics, and it just wasn’t feeling right no matter how much I tweaked.
It’s time to lower the scope again.
I tried pong. I can’t go lower than that. I started work on Pong +R. I wanted a Pong Game with a story, a sort of championship mode. This went nowhere due to the physics.
2022 ended.
Early 2023, I challenge myself to join a game jam so that I can export a game within a short window of time.
Nokia Game Jam 5.
I’m about to start but 1 problem, I’m out of storage on my SSD (I have a 128GB SSD and a 512GB HHD). Time to switch engines. I try Godot. This wasn’t my first time with Godot, however. Back in 2018, I remember watching a recommended YouTube video titled: “Why I switched to Godot“. I can’t find it because YouTube search is pretty much useless, but my thoughts on that video were: Why would I switch to a game engine with less features?
If I would travel back in time, I would punch myself at that point in time. I had nothing to show for, yet I was sticking with Unity because of its “features“… That I wasn’t even using in the first place. I was so stupid back then.
Anyways. I did try Godot 3.4 Mono version in mid 2022 but I didn’t like the tutorial, and I would later (2024) realize, I hate C# in game development, but not for general software development.
Fast forward to Early 2023 and I made up my mind. I’m gonna use Godot, the “Default“ way. Using GDScript.
5 days pass. I have a game. Astro Impact! De_Make. It’s a simple shmup. But it’s a game, nonetheless. I export the windows version 10 hours before the deadline, but I forgot to add the .pck game so the game couldnt be played. It’s all cool, I uploaded the game with the pck on google drive and linked it on the itch page and game jam’s comments page. A few people play it. The results release and my game is 3rd last. I didn’t care. I made a game and people played it. I was on top of the world.
From March 2023 to August 2023. I participated in 10 game jams. 5 using Godot and 5 using Yahaha game engine. A No code game engine. It has an option to use Nodegraph, their own visual scripting solution but I found the no code approach fine for me since I was making simple games with it. The only downside being, at the time, the games could only be played on the Yahaha App that was available on Android, iOS, Windows and macOS. They now have windows exports, but they build in the cloud, and they are made using unity. Also, they are at least 500MB in size no matter the scale of your project.
The games I made:
Godot Game Engine:
- Astro Impact! De_Make
- Quest For Memories (A Platformer I made in 2 Hours because I confused deadlines with the next game)
- StarBirth Researcher (A Bullet Hell about collecting data)
- Alien Invasion Breakout (Breakout + Alien Invaders)
- Divine Ascension (Platformer)
Yahaha Game Engine:
- Alien Survivor // Kepler 47c (3rd Person survivor shooter)
- Shadows Have No Place in Limbo (3rd Person melee combat game loosely based on Dante Alighieri’s The Divine Comedy)
- A Glimpse into a Dystopia (3rd Person Interactive Walking Sim)
- YAHAHA Ultimate Ninja Trial (3rd Person Platformer)
- Re:Alien Survivor // Kepler 47c (Remake of the 1st game. I added lore, Multiple Worlds and an actual ending)
September 2023. I wind down a bit, time to polish the game jam entries, starting with Astro Impact! De_Make. My plan was to implement feedback from the game jam and publish it on Android as well. BTW, at this point, the game was broken since I had upgraded from Godot 3.5 to Godot 4.0.4. The simple game I had made in 5 days, needed a remake because nothing. Absolutely nothing, worked. From the player moving to the UI being displayed. It was much more easier starting from scratch than trying to fix everything.
The game is in a much better state at around October 17, 2023, and I’m ready to export the android version. It wasnt working. Looking up tutorials, reading the documentation, nothing was working. I was desperate enough to ask BingAI (Copilot now, it was called Bing AI back then) which was helpful enough to redirect me to a post on an old website (I think narkive, not sure) dating back to 2008 about keystores. I realized the problem wasnt the keystore, it was the java version and since the official documentation was redirecting to the Adoptium downloads list where 21 was the version up top, I was using that. I downloaded and installed every jdk up until 17. That was the only one that allowed me to export an apk and aab. Finally.
The game was in a decent state (by my standards back then and at least compared to the game version) and I wanted to share it with friends, family and some customers (I worked in my own business back then)
I ended up getting a job interview. I submitted my itch io page as my portfolio and I passed it. I didn’t touch any game engine till I got laid off a year later (management issues). I didn’t want to go back to business because of lack of resources and stress due to me being laid off. I couldn’t think of work
Defold
That was so much yapping and I haven’t even talked about Defold lol. Now’s the time but first, I need to talk about how I discovered Defold.
The time I got news that I got laid off, Godot 4.3 had just released, August 24 2024. I read the patch notes, and everything seemed good. Let me try it. There weren’t any compatibility issues, but the engine took 5 seconds every time I run the project from the editor as well as web builds being laggy and rendering the web page as unresponsive. I report the issue on reddit and there was already an issue in GitHub about it. I was told it was going to be fixed (issue #95772) so I started to wait. In the midst of waiting, I discovered that I owned PICO-8 from a bundle I bought in 2020.
I liked it a lot. I loved P8 Lua even more.
But I wanted an engine that could export to mobile. I live in Kenya, sometimes, though rarely, like once every 4 months, I get a long blackout, like 4 hours. In that time, I play games on mobile phones, Both a smartphone as well as my old featurephone. So I’ve always wanted to export to mobile given how long the batteries last (2 days on a smartphone, a week on a featurephone)
I did some digging and didn’t find anything that vibed from first glance. Then casually scrolling through reddit on some old threads, I found this comment:
I had never heard of Defold. So I searched it. I came across the website and I was intrigued. I downloaded it on Steam and did the Side Scroller tutorial. I found the factory component very wonderful to work with. But still, I wasn’t sold.
over the course of the next month, October 2024, I did the 4 tutorials as well as learning PICO-8 as well.
Mid November, Ok. I’m ready to work on my first Defold Project.
Defold Projects
On November 17, 2024, I started work on Rapid Roll DX. I had already made the sprites and the Main theme. So, it was just setting up the project, writing code etc. Little did I know, I didn’t know what to do. Of course, I knew spawning platforms needs to use the factory, but apart from that I don’t know how everything will go. I just know that the player will use physics, or collisions at least.
I started work on the player .
To give context, the game looks like this:
I needed the player to collide with the platforms as well as the walls on the left and right to continuously scroll up.
This was my approach:
For the platforms, I needed to randomize the x position.
For the wall scrolling, I wanted to do that using a shader
For the player, I wanted them to continuously fall down thus using dynamic physics.
All of the above were the “wrong“ approaches.
For the platforms, I have commented out the code to remind me
So, the above code is in the platform’s script. The factory determines where it spawns on the x axis and when it got spawned, that line further randomized the x position. I spent 3 weeks trying to figure out what I was doing wrong. For context, I wrote that line the first day I started the project and forgot about it. Don’t be like me.
For the Wall scrolling, I ended up duplicating the Walls 2 times and then I can reset the position of the highest set of walls to the lowest position.
function update(self, dt)
local tilemap1 = "#walls"
local tilemap2 = "#walls1"
go.get_position(tilemap1)
go.get_position(tilemap2)
self.tilemap1_pos.y = self.tilemap1_pos.y + self.scroll_speed * dt
self.tilemap2_pos.y = self.tilemap2_pos.y + self.scroll_speed * dt
if self.tilemap1_pos.y >= self.tilemap_height then
self.tilemap1_pos.y = self.tilemap2_pos.y - self.tilemap_height
end
if self.tilemap2_pos.y >= self.tilemap_height then
self.tilemap2_pos.y = self.tilemap1_pos.y - self.tilemap_height
end
go.set_position(self.tilemap1_pos, tilemap1)
go.set_position(self.tilemap2_pos, tilemap2)
end
For the player, I was still struggling to figure out what I was doing wrong regarding the collisions. I finally joined the Defold Discord and showcased my problems with the collisions. I was told that there wasn’t a need for physics, at least dynamic physics as I can use velocity and acceleration. I tried that, got frustrated and aired out my experience. I then went to sleep.
I woke up the next day ready to go back to Godot and opened Discord and found that 8BitSkull had made a simple repro project showing me the ball collisions and platform factory!
To say that was a lifesaver would be an understatement.
All I needed was a different perspective on how things work because I was trying to do things in Defold the way I did them in Unity and Godot.
2 days later and my game was starting to look like a game. Things like scores, saves, UI was mostly done with the help of the community as well as the official examples. Every single line of code I have written in Rapid Roll DX, I understand it fully.
I am not saying that I know 100% of things that Defold does, but I do know 100% of the things that I have already done in Defold. I was no longer stuck in tutorial hell.
It felt good. Liberating. I could take on any challenge that faces me.
I launched the game on January 31st 2025 as my first commercial game. Its a success! I have made at least $165 on itch alone, excluding bundle sales. On Play Store, I currently have 70 installs all while not doing any promotion.
2 weeks later, I released a google play instant version that allows the users to try the game before buying. This actually brings the average monthly users above 50! Its such a shame that Google is shutting down Google Play Instant on November 30th 2025. I will make the Google Play Instant version as a free demo later down the line. Oh yeah, I actually contributed to the documentation regarding a missed step in the Google Play Instant deployment during this time ![]()
And a further 2 weeks down the line, I implemented Google Play Achievements and Leaderboards! It was so satisfying and (I cannot stress this enough) so easy and straight forward. There wasn’t a time in my life I felt so confident in myself as a game developer.
During the Nokia Game Jam this year, I made Snake Dungeon Xenzia following the tutorial on the website and I got to understand tables much better. Unfortunately, my submission was disqualified because the text wasn’t properly aligned to the pixel grid. That was on me since I was scaling the text incorrectly (0.25x).
The next game jam I participated in was the Crazy Games X Defold game jam. I worked on an endless runner, LightSpeed++EX that demands tight responses and I didn’t have faith in it as I only worked on it for 14 hours. I ended up getting 8th place!
I later participated in the Made With Defold Jam 2025 but there was a rather common bug in my game that made the game crash. I know this is 100 % my fault since I was struggling with collisions, and I’m sure there is a better way to do what I was trying. I haven’t touched the game since but will do so before the year ends.
I have also participated in the scorespace jam, but I mismanaged my time, therefore didn’t polish it to the extent I wanted. But I see potential in the project. Will also update it to my original vision before the year ends.
And here we are. October 2025. I have gotten back to work on Astro Impact! De_Make from the ground up in Defold. I want to make the Demo before the month ends so I can publish it to meet Google’s Annual API Requirements.
I’m also participating in another month-long jam. The Bare-Bones Jam where you only create a game using text. No graphics allowed. I’ll remake a Yahaha game in Defold for the jam.
Things I need to improve in
- Shaders: To this day I still haven’t successfully ported a shader from Shadertoy. I know, its a skill issue on my end. I’ll look into it
- Pixel Perfect Scaling and Rendering: This is especially for mobile. I want my games to look good on all resolutions and form factors.
- Mobile Controller support. In the future, I see myself owning one of these Android handhelds and it would be good to make controller support to cater to them, as well as people who play on Smart TVs. Currently, I can’t get my game to play with an Xbox One S or Dualshock 4 controller on mobile either wired or wirelessly. They are detected however (Connected and Disconnected input events are registered) and before you ask, yes, I have already made maps for them in my Gamepads file.
- Cloud saves: This is gonna be an easy one as with the help from Halfstar, I was able to save multiple scores in a single file thanks to a module. Now to figure out Google Play Cloud Saves
- Replays/Ghosts. I also think this will be an easy one as I already have the seed as well as the inputs stored in a table. Just gonna figure out how to save them and replay them.
The only Thing I don’t like in Defold
Online connection requirement for the first time build for extensions. There have been times where I was offline and couldn’t run my game from the editor. I do understand why it needs to be that way.
Things I like about Defold:
- Small Build size. I grew up with java/j2me games, less than 200KB in size. I’ve always had a fascination on big games in a small size. So, seeing my (mostly complete) game come in less than 8MB was really a nice feeling.
- 1 Click Bundles/Exports. That is magic. It feels unreal.
- Stability across versions/updates: I like that the engine rarely break the projects and even appreciate more the fact that even if you opened your project on a newer engine version, you can roll back to the older version with little to no change.
- Focused(?) It’s hard to find the words to describe this but, I don’t feel as overwhelmed compared to the other engines I used where there were lots of features and some of them do similar things. In Defold, I just have the basics, with the option to add functionality via extensions. I’d say lean, or rather, not bloated.
Things I want to do in Defold in the future
- 3D. Im already learning Dust3D as well as eyeing Crocotile3D and I have some ideas on some low poly 3D games I can make in Defold.
- Shader heavy stuff. Thats all. As soon as I grasp shaders y’all won’t be ready for the stuff I come up with
- KaiOS port for Rapid Roll DX. I just want to flex on people that my game is playable on a smart Dumb phone (Nokia 2720)
Things Im currently working on
Dynamic music system using in built Defold functions.
I already teased this in my BlueSky and my goal is to reduce the size of music files without compromising the quality. Which I achieved from 4.6MB to 1.6MB and now it’s even lower that I’m considering multiple tracks.
This was 5 months ago. I really need to push Rapid Roll DX v1.5.0.
Localization. JP Fernandez was kind enough to do Spanish localization for Rapid Roll DX pro bono but that will come in 1.5.1
If you reached this far. This is the Managing Director at OneRedEye. Say hi to Orie.
Thank you for reading. I will make another post for the Dynamic Music implementation once I’m done with the updates. <3
Edit: Both game related “images“ I’ve posted are supposed to be gifs, I’m not sure why they aren’t playing.







