FTB Reboot Update #3

Back




Hello People. Let's sum up what we did this month (spoiler: a lot). Basically, everything we pointed out at the end of the previous devlog.



Networking

Failed Attempt To Improve

We started the month thinking about how we can improve the networking. There are many ways the game can run: Server Clients, Host Clients, or Room Shared Authority - which is what we have now.

Basically the current model is that there is one Master Client that synchronizes the stickmen, but every player controls their own stick. If you want to create, let's say a competitive ladder or something similar, you can't rely on one guy's network to run the entire game - it may cause issues. So we had to stay within the casual world of lobbies and couldn't create any ranked mode.
Mobile Game Network Topologies

We checked options to move to different solutions, but it would require an entire refactor of the game. So, we remain with the current model - which should work fine with the current state: a casual game with action elements where people create rooms themselves. The problem of course is that we cannot add intense action elements or a serious ranked mode because that would require more precision. Anyway, if there are a lot of requests in the future we will consider that option again.



What Did We Actually Fix?

First, we made the materials, bounciness etc of players better so it feels good to fight others. But the core work in the networking area was fixing issues.



The Master Client Problem

As we said the model is that one player is the Master and controls the game, bots and syncing messages. If this player has a bad network everyone suffers. Therefore we added logic that checks which player has the best network and they will run the game mostly. It significantly improves the experience for everyone.



The Desync Nightmare

For The Battle Network Desync
The second thing is in my opinion the worst bug that caused fights to feel irritating. The issue is network desynchronization. Sometimes during gameplay sticks get stuck one in another. This happens because two devices see the game differently - for one stick A is on the right and stick B on the left, and for the other stick B is on the right and stick A is on the left. It causes both stickmen to slowly move (lerp) into the other position, causing them to stuck in each other.

This happens pretty rarely, but it does. And when it does it's really irritating. So we added mechanisms to avoid it and, if it happens, to detect and fix the issue as soon as possible. So usually fights go fine, but in the rare cases the network desync happens - we will detect and fix the issue so you can keep fighting.



Graphics

Adding Game Elements

I don't consider myself, you know, top drawer. But on the other hand it creates the cartoony, original style of FTB because it looks like a 5 year old drew it, which kind of makes FTB to stand out.

We decided to leave the ground elements and cubes that I once drew in 5 minutes in Photoshop because that's the style of the game, minimal and original. But we do want the game to feel good. We decided to make every one of the 9 areas in the arena feel good and different, like you are fighting in a completely different area. And we did it. We created leaves, grass, trees, octopuses etc. Now every area feels unique. Judge by yourself!
New Arena Graphics Forest Zone


Background With AI

We also wanted each area to have a unique background. I once paid a great artist to create the current backgrounds in the game. It's expensive. So, as I don't have epic drawing skills, I tested with AI and made backgrounds for each zone, a variation of day, evening, and night. Now each area has its own unique background.

New Arena Graphics Ice Mountaint Zone
Now, it's the first time I use AI in FTB. All other stuff and assets were created manually or by other great artists. But I think in the background specifically, it kind of worth the trade off as it's a bit problematic financially to pay someone to create 27 background variations, and I'm not a pro drawer. So the aim here is to make every zone feel unique - and I think we achieved it. Other stuff will remain original and hand-drawn.


Stability and Performance

As we told you in the previous devlog, there was missing stuff like a lose screen, a lose sound etc. So we added them. In general, we spent weeks fixing bugs, and now the game is really stable. This is partially thanks to realizing we can collect logs, crash reports etc. It is already in the privacy policy but not really utilized yet, and it really helped fixing issues that happened, for example on devices of my family and friends where it's not me testing with a connected USB cable to the computer. Anyway thanks for your game related data, I guess. We will use it to make FTB even better.



Significant Optimization

It is my first real, high quality (personal standards) game, and I had to learn a lot about optimization. So I learned, for example, that if a game runs on 60 FPS and I have 80 batches, it means the CPU sends 80 different requests of draw call textures to the GPU per frame. or something like that. That's a lot. The standard for mobile devices is to have around 30 such batches for older devices (Android 8) and around 50 for newer phones. And I checked the game on an old phone that we support - Android 8, and it was laggy.

I dived into this world of optimization: compressing assets correctly, reducing build size, creating texture atlases and so on. Eventually I was able to reduce this to around 20 batches in the menu and up to a max of 50 batches in the main game. On my old Android 8 used for years, it lags a bit, of course, but it's playable. The build size is around 80mb, which to be honest I can optimize better. But for now, it's okay.
Emotes Texture Atlas

So I will keep optimizing, reducing size, and trying to increase quality during development, but I'm currently satisfied with the results, and the big elephant in the room is eliminated.



What's Next?

So now the game is in a pretty stable state, and we are testing with friends and family for fixing final bugs on Android. What's next?

Apple
Now, with all the pain, I decided to port the game to iOS too. I don't have a Mac, and thanks to my friend who found an unused iPhone I could use for testing. But as I always created apps for Android only, I guess it's time to learn to do it for iPhone too no? If not when I have my first big project then when? Also, losing a great market share is not the best idea. The real pain in the butt is that I need a developer account, which costs $99, and I still haven't made any money on the game (10k downloads by the way), only losses. But whatever, learning experience I guess.

Planning, as I did in Android, to integrate with Apple Game Center for saving data, achievements and so on. Good luck to me bypassing requirements for Apple devices as I don't use their ecosystem at all.

There are also other small things that we can add: smart reconnection to rooms when network is lost (and not just kicking), allowing to add friends from within the game and not the main lobby, RTL support in chat and messages, maybe a spectator mode and so on. Improving the look of Waiting Room and Duel maps, as we did the graphics thing only for the main map. But the core vision of the game is ready.

After that, I guess we start testing and marketing. I'm so glad I had the opportunity to revive this game. It's like the first (and only) child, and the father went to fetch milk and came back after 5 years. Soon the testing phase, soon the For The Battle Reboot.



Back