Update 1.15

Posted by:

|

On:

|

Global Ordnance: The Iron Fist — Update v1.15

goif global ordnance iron fist

No new units this time. No new maps. Update v1.15 is the boring, unglamorous, deeply satisfying kind of patch: we went under the hood and made the game run better. Code, meshes, shaders, particles, audio, textures — everything got a pass.

Oh, and we found out the game had been secretly capped at 30fps this whole time. More on that in a second.

The 30fps Mystery

Let’s start with the big one, because it’s also the most embarrassing.

The game has been running at a hard 30fps cap, and for a while we weren’t entirely sure why. It turned out to be coming from our own quality-tier system inside the player blueprint, where all three tiers had been hardcoded to 30 — plus an engine frame-smoothing range set too narrow to ever let anything higher through.

Both are fixed. As of v1.15, Low targets 30fps and Medium and High both target 60. If your device can push it, the game will now actually let it.

Performance & Optimization

Most of this update was detective work — hunting down the things quietly bleeding performance where nobody could see them.

The biggest culprit: units were running expensive checks far more often than they needed to. Health bar updates, collision checks, targeting logic — all of it firing at a pace that made sense for a PC and no sense at all for a phone. We throttled it down. Nothing looks different, nothing plays different, your device just stops doing pointless work every frame.

We also enabled pooling for particle effects. Instead of spawning a brand-new explosion, muzzle flash, or smoke puff and then throwing it away a second later, the game now keeps a pool of them and reuses them. In a game where you’re firing hundreds of shells a minute, that adds up fast.

We turned off an expensive HDR rendering mode, fixed lighting that was recalculating every single frame instead of just using the baked lighting sitting right there, and added automatic quality tiers — the game now sizes up your device on first launch and configures itself accordingly, so you’re not stuck manually hunting for settings that work.

Things That Were Running Forever For No Reason

Two finds from this pass were too good not to share.

The first: a scene capture used for a tutorial portrait was left permanently switched on, re-rendering a full HDR capture of the scene every single frame, forever, whether or not anyone was looking at it. It’s now throttled to 10 times a second, which is more than enough for a portrait.

The second: our achievement-progress checks were triggering a full read of the save file from disk every time they fired. Rapid-fire triggers meant rapid-fire disk access, which is exactly as bad for a phone as it sounds. We added a cooldown so a burst of checks now collapses into a single actual save sync.

We also caught a self-recursive polling loop in the radar checker that had been quietly calling itself in perpetuity.

Particle Effects

Particles deserve their own section, because they were among the worst offenders.

Testing made it clear that particle effects were taking a wildly disproportionate bite out of mobile hardware — way more than they were giving back visually on weaker devices. So we optimized them specifically for Medium and Low graphics settings, where they now cost dramatically less to render. If you’ve been playing on an older phone and fighting the frame rate, this is one of the changes you’ll feel most.

SnowBiome also got its ambient snowfall swapped out for a much lighter variant — same look, far less cost.

Textures & Build Size

A lot of our assets were importing textures far bigger than the camera could ever appreciate — in some cases 4K textures on units you only ever see as a distant silhouette. Meanwhile a handful of others had been capped so aggressively they came out blurry and rough, including a few more instances of a bug that was over-compressing textures down to almost nothing.

We normalized roughly 140 textures across the roster — the Mammoth’s full part set, plus the Cremator MLRS, Trident, Ferret and Light Tank on the ground, and the Heavy Bomber, Light Bomber, Strike Jet, War Airship and Zero in the air. Oversized ones right-sized, over-compressed ones repaired.

On the Android build side, we dropped x86_64 support (nothing that matters actually needs it) and cut the DXT and ETC2 texture formats in favor of ASTC only. Smaller download, less wasted space on your device. We also found and fixed a genuinely backwards material-quality config, where the “Low” setting had somehow been running at higher quality than “Medium.”

Audio Cleanup

Turns out our sound effects had no cap on how many could play simultaneously. Which is fine, right up until you send a column of units through thin ice and the game cheerfully tries to play every single drowning sound at once. We’ve added a shared sound budget so that stays under control.

We also discovered Android’s audio sample-rate scaling was never actually wired up — every sound had been playing at full quality on every device regardless of what that device could handle. That’s fixed, and audio across the board has been reworked and reformatted to run leaner on Android.

Bug Fixes (Or: How We Broke Things And Then Unbroke Them)

Time for some honesty. While doing the manual editing pass on armored units for all this optimization work, we managed to introduce a couple of genuinely alarming bugs — ones that did not exist in v1.14 or anything before it.

A couple of enemy tanks stopped dying. Their health would hit zero, the game would count the kill for scoring, and then the tank would just… keep sitting there. Still shooting at you. Meanwhile the enemy Radar Truck went fully invincible — couldn’t be targeted, couldn’t be damaged, completely untouchable.

Both turned out to share a root cause: a unit’s core logic getting silently disconnected from the event that’s supposed to trigger it, so the game quietly fell back to doing nothing at all. We caught both during testing for this patch, traced them down, and fixed them. As of v1.15 tanks die when they’re supposed to and Radar Trucks can be shot like everything else.

We also squashed a smoke-effect bug where damage smoke on player tanks would stick around forever instead of fading out.

And one long-overdue fix: vibration is back. Haptics quietly stopped working back in v1.12 thanks to a bug on our end, and they’ve been missing ever since. They’re working again as of v1.15, so your phone will once again let you feel it when things go loud.

What’s Next

Performance has been an ongoing project for us, and v1.15 is the biggest single step we’ve taken on it. There’s more coming.

And on iOS: we’re close. Expect the release by the time we hit update 1.2.1

Global Ordnance: The Iron Fist
Update v1.15

Posted by

in

Leave a Reply

Your email address will not be published. Required fields are marked *