Well, we get to the finish point bit by bit I guess. I can say officially that I have no more plans regarding the core of the game or the progression system. Everything, as of now, I have no more significant improvement tickets to the core game. Let's go over what did I do these almost 2 months.
I decided to try claude code to develop another remake of a great game made in the past via raw OpenGL, Sunrise. I'm surprised by it's capabilities and the amount of benefits in the 10$ paid plan, just wow. I realized that AI is, eventually, just a tool. My games Fingerball and Demonworld did not gain significant traction, and so will Sunrise. Why? simply because making a high quality game takes a long work, and even AI can't make it perfect. It reduces development time, increases future code maintanance, but still the human needs to know exactly how to build each part, and it takes a lot of effort, time and testing. That's why FTB is getting 8k impressions daily while others just 50-100. It takes time to build great store, get feedback and improve, fix bugs, progression system etc. I won't be able to craft a high quality game in a short time, so no reason to try unless I'm ready to commit in a large and great project. I do not want to make 'slop' games. Even if the idea is original, it takes time to make it perfect. Literally just see the devlogs of FTB - I'm working on this 5+ years!
So after a week of building Sunrise, the core game loop is ready. Played it on my phone while was flying outside of the country to vacation. It's fun, but only to nail the core game loop took me 1 week of ammo, grenades, autoshooting, how to sprint and so on. Anyway dropped the project for now because I want to commit for a high quality game once I decide to work on it again.
Now back to FTB. I got some feedback that there are too many ads in the game. Despite that I really don't think it's the case - every 4.5 minutes in the game between rounds and on exit from game, I decided why not to try to optimize farther. If I'm able to optimize ads better in terms of quality, mediation, timing I will be able to reduce their irritation and frequency in the game. So I added more mediation providers - InMobi and Meta ads. InMobi always activate/reactivate my account for some reason, so dropped them eventually. Meta pain to test but seem to work. Also I sent tons of mails to try to qualify for open bidding and adding more mediation providers - all rejected or give no actual value after 1.5 months of testing, except PubMatic which was left.
Previously, I just loaded interstitial and rewarded ad on game launch and held it in case someone wants to see it. My show rate - what percent of people who see the ad out of those who load was awful - below 10% and 0.5% for rewarded ads! it means that when I request ad the networks know that the chance that someone will actually see the ad is very low, so they give very cheap ads or do not return them at all. I read that good games have 70%-90% interstitial ad show rate. I did not understand how to implement it then, but now managed to implement a system where I have around 70% show rate of rewarded ads and 85% of interstitial ads! a nice prediction system trying to preload them a bit before a moment where it can be shown. Also fixed a bug if people put the app in background and come back after an hour people see no ads more (good for you, bad for me). Also added short loading panels before ads shown to avoid accidental clicks.
These improvements significantly increase the quality of ads, allowing me to reduce their frequency - for example now if you go back from a game but did not do any meaningful action(like evolving) inside the game ad won't be shown. Hooray. So now after testing I'm left with the best networks, that are actually useful, to not throw user data everywhere but only on trusted entities that actually give value. Shame InMobi play those enable disable account games though, they seemed to work quite well. So now I make around 10 times less requests for ad, and when I do there is actually huge chance that player will see it. I get more social credit, more money, and can show less ads for player thanks to that.
Now bugfixes and updates. Some months ago I made a critical mistake - I upgraded the unity editor version above the latest LTS version. Now every new release there are bugs that I try to fix by upgrading to the latest version again, only to find new bugs. So upgraded to Unity 6000.4 when LTs was 6000.3 to fix some bug on iOS that was not fixed yet on the 6000.3 channels (or was and did not notice that), and from that moment I just keep upgrading to fix various bugs. Meaning I always have crashes, ANRs and various issues. Recently had a bug where on older devices always shown white screen! meaning it was not playable, but if I fix it there will be crashes so Stickman Arena organic visibility will go down. I addressed it in the recent version with custom made trick and reported the bug to unity in hopes they will fix it eventually, but the con that sometimes older devices may see short black screen before the actual menu. Anyway pain. Next release unity 6000.7 should be LTS support again and I plan to hook on it without making the same mistake again.
Now regaring consent and analytics stuff. You know there is COOPA stuff that I need to allow people to opt out of analytics and so on? yes apparently it is necessary only if I earn more than 25 mil USD annually. For me I'm not earning more than 20 USD annually lol. Dropping this logic allowed to fix many bugs and complexity, no wonder there was literally no documentation online how to handle it as no indie dev deals with it. Fixed bug causing memory leaks and sometimes app kills because of it. Optimized assets loading and so on.
I tested on my older Samsung J7 device the game. It is laggy. So I made a low quality setting where I disable optional particles and elements to improve the performance of the game. Glad that was able to keep it at 60 fps as it's pain to play fast paced game like FTB on 30 FPS. Added the setting to the game so you can change quality to low or normal. But guess what element actually took most, literally 50% of your CPU power? correct those are the bots.
There are 30 bots in the arena. Previously every bot made a decision(expensive machine learning operation) of what to do - attack, use ability, walk, run etc, on average, every 0.5 seconds! meaning there were 60 such decisions on average every second in the arena! I changed that the bots make now significantly less decisions and made it, hopefully almost unnoticeable. Now it's around 30 decisions per second. So if bots look to you a bit dumber now it's because they are. Also as there are on average 30 such decisions every second, and devices run the game on 60 fps(let's suppsoe really bad devices on 40-45), then I can cap that only one bot decision can be made every frame - significantly minimizing lags and making the game smoother. Previously 5 bots could decide to lock the frame to make decision what caused lag. I'm sure that can optimize this even more - let's say maybe in the offline solo vs bots mode bots that are closer to you make more decisions and farther less, but I'm satisfied and now it's a lot more playable on my old device.
More regarding performance, I reduced slow cold start (where takes more than 5 seconds to initialize the game). Made analytics start off and enabling after first frames, removing the in game console(yes, there was a hidden button in the game to see logs for my development purposes now gone). Split initialization to various steps to draw frame as soon as possible. So yeah, crashes more or less fixed, slow cold more or less fixed and low memory too. Hooray maybe will get some organic exposure eventually.
I realized that I'm leaving money on the table with in app reviews. As you know, all the high ratings on the play store - usually people do not go spend their time to find the app to leave review. I can trigger in app review inside the game for that at moments where you may be happy, to hopefully get rating from you. Google and apple policies say to not overspam with it - like wait some months before asking again. But you know - only 10% of people usually stay in the game after 1 week and only 3% after a month! (general data, for FTB specifically stats better). So if I ask in 1 month, what happened before, I lose opportunitiy to ask people again.
I decided to go with more aggressive approach where it is appropriate. I do not ask review before level 1 in game. I do not ask on start, or if not passed enough time in the game since launch. But when conditions met, and after player played a bit, I may ask once, and then after 3 days, 5 days, 7 days etc. I won't wait 30 days as most players will be gone by then. Of course, google and apple may hide or suspend or not show at all the dialog to people if I overspam it. But I managed to see my own dialog multiple times so guess sometimes it's ok, and if someone decides to not review on first request but on second and dialog shown in both cases - it's a win. Also improved the when to show, so player is more likely to be satisfied and leave positive review. This, I expect, will have positive effect on ratings. In FTB android 90 people currently rated the game and it's 4.5 stars! not bad. I truly think now at the polish level it can get to around 4.7 stars. On iOS currently only 1 five star review so we don't talk about it lol.
I upgraded all packages of analytics, play games, ad mediation etc. Yes, you should not care about it, but as developer for some reason I like upgrading stuff. Maybe explains why so many non stop bugs by the way.
I added sound tick every xp point so it feels good to get it, and it's pitch going up. And on levelup there is cool sound indicating it. Every level also has it's unique xp bar color indicating this level, giving great milestone feel. And of course removed the xp gain menu show every time you exit game if you did not acquire anything as did not play enough - to not waste your time (and the interstitial we talked about is not shown too with it). Also saving XP you got from quests and can show details about entire xp gain after app realaunch, which did not happen previously.
Problem is that previously even after waiting for connection remote save was not actually loaded if the game started first without connection. Now fixed, so if you started FTB without internet, and the notification to enable internet shown and dissapears as you did so, then your remote account will be loaded successfully. All these small quality of life things - now you understand why it takes such a long time to polish a game well?
Now economy. Previously you started with 50 coins. You could buy 10 coins purple chest and 40 coins blue chest. On easy levelup you got another chest. You got 5 coins each 4 hours if you just login. It was too much. Why would you ever spend on in game elements if you get so much items? On one hand I want players to get rewarded over time for playing, but more via random items - if you want specific be a great soul and support the game. So the following changes were done. Every 4 hour coins collection is now 3 instead of 5. You begin the game with 20 coins instead of 50. But the levelups difficulty are significantly easier. Previously to levelup from level 1 to 2 you needed 50 xp, 2 to 3 100, 3 to 4 150 etc. Now it's significantly easier. 1 to 2 it's 30, then 60, then 90. You get the point. On early stages significantly easier to levelup, and on very later(like very, level 20+) harder. And keep in mind that each level you get chest with items. Think it's great balance to not give too much in the beginning to players, but just enough to have fun and customization, and rewarded progression more.
And lastly challenges. Previously I made them too hard intentionally - because they are an infinite way to farm FTBs, so good people who master the game can kind of break the economy. The rewards for challenges were 3 coins for easy, 5 for standard and 7 for hard. Only around 10% of people completed the easy challenges, and I won't talk about normal or hard as not enough data. It's bad. I don't want only the best players to farm infinite coins - I want time spent playing to be rewarded proportionally. Therefore reduced the challenges difficulty significantly. Really significantly like by 80%. Previously challenges I, the developer, sometimes was not able to complete hard one's. Wow. Now I optimized them with the goal to reach, for every easy challenge 50% completion rate, standard 30% success rate, and hard 10%. I understand that many people do not even look at them and just jump and play, but I want them to often be completed automatically during gameplay and not like a chore. And of course with it reduced the rewards from them to 2 for easy, 3 for standard and 4 for hard challenges. Think it's great way to drive and reward engagement, that is not available only to the pros within us.
Now as there are droplets, runes, skins and many elements, I can afford to make great move. I don't want the game to be pay to win. Everyone should have the option to build their custom stick they want. Skins and looks it's something else, but in terms of power and abilities everyone should have equal fight chance. Therefore made that every 2 levels 2 new abilities will unlock, unlocking all of them on reaching level 5. This gives you new toys to play with and a reason to play to unlock other abilities, progressively, so you won't get bored and unlock new content over time. Also reaching level 5 with the new system is not that hard and can be accomplished in around an hour. Regarding runes made similar system, but it unlocks just 1 rune every 2 or 3 levels. On level 2,5,8,10 etc and the last one on level 18. Runes modify your stick stat, and unlock ancient trials, which are runes mastery tree giving you rewards such as coins, chests and making the rune more powerful. Unlocking them too early gives too many rewards, and I consider runes less important than abilities. They modify your stickman class, true, but not as important for gameplay customization as abilities.
Another point. Previously FTB Premium price was 1 USD for all countries. Now I made the price point to be exactly the middle between pouch of coins and barrel of coins. There are many reasons, and around them that different countries ready to spend different amounts on the item, that putting too low means trash item when no true or too high means too expensive for some countries. Capping it relatively to other items means it benefits from localized pricing, while keeping the price of the element worth the buy as still the second cheapest item in the game and gives great value.
Ok thats all. Funny how said did almost nothing and got many pages of content here. That's the results of these one and a half months. There are more bugs like unity ads fails to initialize 50% of times reducing revenue etc... yeah it does not end, talking about it with unity support. I was checking out tickets of what can I do more for FTB and there were many, but almost none significant. Adding more abilities, making the app available in EU on iOS, making the bots in offline mode gather score to lie to players like they compete with you, various effects, allow force link account etc. At this point as you know, of having worked on FTB for too long time, I'm seeking for points to make significant impact with minimal updates. Unfortunately none of these tasks is likely to achieve it - will adding 1-2 more abilities help the game get the exposure, retention and engagenement it needs? I don't think so. Therefore feels like we are around the end.
The only points that can help drive engagement, retention and these metrics up significantly are, can you guess? correct - localization and mobile notifications usage. From the benchmarks seems like it can drive many metrics up by 20%-30%, from store conversion rate to retention and engagement times. Despite it being a hustle, it may be worth a shot because of the expected significant value. I analyzed what languages my players speak, and the current results are as follows: English (40%) Spanish (25%) Indonesian (6.2%) Vietnamese (6.2%) Portugese (5.6%) Turkish (4.1%) Arabic (2.9%) Russian (2.6%) French (2.2%) Thai (1.1%)
The game currently has no mobile notifications, and only localized for english. There are other languages of course but this is the most popular language players distribution. I checked what languages other games usually localize to and it's japanese, german, italian etc. Why those? because those are expensive countries and people likely to buy stuff and bring money from here. I did not find a game with indonesian and vietnamese localizations yet(checked 4 games on my device). To turkish half of the games localized for some reason, arabic too but arabic the reason it's obvious. I think that the distribution is that simply because my google ads campaign tries to find the cheapest users to acquire. To start small and maybe move on, I will likely localize the game for spanish - because as you see 25% of my players speak this language! it can have huge positive impact. Problem is I don't know how to do it well, and using AI or google translate may produce low quality result. Anyway it will be a challenge. After spanish likely portugese will be great option.
To that, I can add mobile notifications. The industry uses them to drive engagement and retention. Now it's tricky part because I don't want to spam people for no reason - as misusing notifications can make people uninstall the game, or reduce permissions and game can be flagged for abuse. Will have to implement correctly - give players value like remind leaderboard resets, or free coins refresh. Remind that have unopened chests and if remind to come join the arena only once in a while. Also important if player does not respond for a while for notifications to simply maybe stop showing them to not irritate? or better to show in these cases to bring back. Anyway not sure know just that it's a double edged sword. But if the localization and notifications implemented correctly can boost the game significantly. Realistically, I think if to nail it and maybe other game aspects, I can reach top 50th ranking for the keyword stickman. First I will likely won't beat supreme duelist with already built huge community, and the games here are really polished and well optimized over the years. Maybe should consider trying ranking for other popular keywords too.
Anyway let's see. Another point that will keep doing is optimizing my app stores, as better images, trailers, texts can also shift the traffic to the best or worst significantly - but important to not break the current great results I have with the word sitckman. For example FTB ranks fo 'fight stickman' but not 'stickman fight'. No idea why, despite me trying to reply to some reviews with 'stickman fight' keywords.
Thanks for reading. Me in some time looking back. Interesting journey with tons of experience. But by the look of it now, I'm getting closer and closer to the point of no return. Of getting A JOB, and dropping full time work on the game. See you next devlog.