OMG I had a disaster!

As my game neared completion, I decided it was finally time to try it on mobile. I upgraded from Godot 4.3 to 4.4 and went through the often taxing process of reinstalling all the export templates and requirements since I hadn’t used them in a while. After completing that, I installed my 60 FPS game on my device, ready for the first playtest-and my heart sank.

It was completely unplayable.

Everything was tiny: the buttons, the UI, the text, even the enemies. I couldn’t believe how stupid I’d been not to test earlier. What made it worse was that the frame rate had dropped to a miserable 10 - 15 FPS. I dreaded what would happen in later levels when hundreds of enemies appeared on screen at once. I had no idea what I had done wrong but suspected I had overloaded the game loop with too much enemy AI.

It took me an entire day just to recover and gather the will to start fixing things, and about three weeks to get the game back into a playable state. I had to completely rethink the controls because the original four-button layout was horrible to use on a touchscreen. I introduced twin-stick mechanics with direction indicators for movement and weapon aiming for firing. Getting the controls to look and feel right on mobile took days and caused plenty of headaches I won’t bore you with here. Some of the lovely UI layouts that looked great on my computer had to be scrapped entirely because they made no sense on a tiny screen. I also had to ditch parallax entirely and replace with a shader as it just was so glitchy on mobile.

The silver lining in all this pain is that the forced redesigns have actually improved the core gameplay IMHO. The twin-stick combat feels more dynamic and engaging, and the streamlined UI reduces cognitive load, making the game more enjoyable overall.

It never ceases to amaze me how much ‘stuff’ has to be done to complete a game properly. I still have to fix my sounds, which are currently horrendous, do the ‘settings’ screen, reformat some of the other scenes like the highscores table, rejig the difficulty settings and then finally decide how to do the tutorials.

I think I have another 2 months of work left but the discovery of the horror of my game on mobile was a shock I was not prepared for. It nearly completely derailed me and for a while I even blamed Godot for the lousy framerate. Needless to say it was not Godot, it was me and my stupidity for not testing earlier. Another mistake learned the hard way. But this mistake really hurt, I nearly gave up and walked away. Glad I didn’t but what a journey this is turning out to be. So much heartache.

So I wanted to share that and ask if you have had any similar experiences? And what saved your project from disaster? I’d love to hear any war stories and lessons learned - maybe you can help save me from further disasters in the future.

8 Likes

Disasters like these are a blessing in disguise.

I’m glad you made it through it. What actually needs to be developed for a game only reveal themselves when they’re needed or when you spot a flaw in it.

I rewrote my entire movement netcode around 4-5 times while learning Godot multiplayer networking API and netcode in general. But I’ve reached a point where the system works well enough, and I have to move on to something else.

What’s done is never truly done. You can always (and most likely will) discover something new that changes your perspective and way of doing things for the better.

I find that going back to reprogram things makes everything WAY better actually. But make sure these changes are based in concrete fact based on experience rather than theory. I hate theoryland. I much prefer realityville.

Edit: I have way, way, WAY more to do. And to be honest, I have no clue what’s ahead. Good or bad. So, wish me luck, I guess.

6 Likes

@Demetrius_Dixon
I do wish you luck! I look forward to playing your game, be that in 2026, 27 or … 2030! :grinning_face:

2 Likes

@pauldrewett
Har har. Got a good laugh out of that.

But on a serious note, my project is going to be “slightly” different from a traditional game release.

And by “slightly”, I mean extremely. I’m not going to talk about it here, but you’ll see it in some form in 2026 at the latest. I’m confident in that. What I have planned is pretty ambitious.

3 Likes

That sounds horrifying. I’m glad you stuck it out and got things back on track! I once participated in a game jam where I spent way too long on a custom dialogue cut scene system, only for it not to work in the web build :sob: Lesson learned! Test early and often.
Thanks for sharing your story!

2 Likes

It never ceases to amaze me how much ‘stuff’ has to be done to complete a game properly

John Carmack telling NASA Engineers that Rocket Science is simple compared to Graphics Programming :sweat_smile: :melting_face:

4 Likes