Global Ordnance v1.19: Half the Download

Posted by:

|

On:

|

No new unit this time either. Update v1.19 does two things: it cuts the download to half of what it was, and it fixes the crash that was killing the game on older phones the moment you pressed Main Menu or Restart.

Both came out of the same week of work, because they turned out to be the same problem wearing two hats: the game was carrying far more data than a phone has any use for.

Let’s start with the crash, because if you have a phone with 6 GB of memory or less, that’s the part you care about.

The Crash That Only Happened When You Quit

Reports were consistent. Finish a match, press Main Menu (or Restart), screen goes black, the game is gone. Never mid-battle. Always on the way out. And never on a flagship phone, which is exactly why we hadn’t caught it ourselves.

A word on that. We build this game from a van, and a van has room for about two phones. There is no drawer of test devices here. When we want to know how the game behaves on something older, we hand it to a friend, or to someone we meet on the road, and watch over their shoulder. That is how this one was finally reproduced: on a borrowed Galaxy S20, dying on the way back to the menu exactly as described. If you have ever let a stranger in a van test a tank game on your phone, thank you. It matters more than you’d think.

Here’s what was happening. When you left a match, the game started loading the main menu map while the entire battlefield was still sitting in memory. Two maps at once, every unit, every texture, every effect, for a couple of seconds. On a phone with plenty of memory that overlap goes unnoticed. On a phone with less, Android looks at the total, decides the game is the biggest thing running, and quietly ends it. No crash dialog, no error, just gone.

The fix is a short hop through an empty level in between. The battlefield is fully released before the menu starts loading, so the two are never in memory together. That is the brief “Loading…” screen with the spinner you’ll now see on the way back to the menu. It costs about a second. It also drops the peak memory during that transition from 2.16 GB to 1.1 GB on our Galaxy S20 test phone, which is the difference between the game surviving and not.

Restart works the same way now, so restarting a match no longer risks the same thing.

The Numbers

Same test phone as last time, measured in a live match, not in a menu.

  • Download size: 746 MB → 376 MB. The Play Store figure will be slightly smaller still, since Google delivers only the parts your device needs.
  • Texture memory in a match: 587 MB → 129 MB.
  • Mesh memory in a match: 134 MB → 44 MB.
  • Peak memory when leaving a match: 2.16 GB → 1.1 GB.

Less memory in a match doesn’t just prevent crashes. Android throttles apps that push the limit, so a game that uses less is also a game that keeps its framerate longer.

Where the Other 370 MB Went

This is the part where we own up to a few things.

Textures were bigger than we thought. A power-of-two setting was silently stretching the landscape maps up to 2048×4096, and a handful of full-screen menu images up to 4096×2048. On a phone screen that is pure waste. Everything is now capped at a size the screen can actually show, and around 95 unit and prop textures came down to 512. If you can spot the difference on a 6-inch display, tell us which one.

Models were far heavier than the camera can see. The Apocalypse bomber alone was over a million triangles. It is now about 100 thousand and looks identical from the sky. The Heavy Tank, Medium Tank, Jeep, Interceptor and the forest tiles on both maps got the same treatment. On top of that, every mesh was shipping four copies of its index data for rendering features a phone never uses. Now it ships one.

One graphics API instead of two. The game shipped shaders for both Vulkan and OpenGL ES 3.1. Every phone that can run Global Ordnance well runs Vulkan, so the OpenGL set is gone, and with it 52 MB of shader code. More on what that means for you below.

Engine plumbing we never used. Sixty-two engine plugins, things like control rig tooling, procedural meshes, audio synthesis, were being compiled into the Android app because they are on by default. None of them are used by the game. They are out of the Android build now.

The intro video went from 23 MB to 3 MB. It is 20 seconds long. It did not need to be 23 MB.

The soundtrack stays exactly as it is. All fourteen tracks are in, at an Android-only encoding that trims a little size without anything you’d hear on a phone speaker or earbuds.

Lighting Fixes on the Green Map

While we were in there, two things that had been quietly ugly got fixed.

  • The cork oak trees near the farmhouse had pitch-black trunks. Not a material problem, not a lighting problem, the placed trees themselves were carrying corrupted data. They have been replaced and the lighting rebuilt.
  • The sandbag bunker and the farmhouse had almost no lightmap to speak of, which is why they looked flat and smudged. Both now have proper lightmap UVs and bake correctly.

One Thing to Know: Vulkan Only

Dropping OpenGL means the game now requires a phone with Vulkan graphics. In practice that is almost every Android phone made since 2017 and every phone running Android 10 or newer. If your device doesn’t have it, Google Play simply won’t offer you 1.19, and you keep 1.18. We think the trade is worth it: 52 MB off the download for every player, against a small number of devices that were never going to run the game well anyway. If you are one of those devices, we’d honestly like to hear from you.

What’s Next

Drag-box selection. Yes, we said it was next in 1.18. Then the crash reports came in, and getting the game to stop dying on older phones had to come first. It is still next.

iOS. Still in progress. Cutting the game down to half its size was not on the iOS plan, but it turns out to be a large part of it: Apple’s limits are tighter than Google’s, and 1.19 gets us a lot closer.

See you in 1.20.

Global Ordnance: The Iron Fist
Update v1.19

Global Ordnance: The Iron Fist is a free-to-play mobile RTS for Android, with no in-app purchases. Get it on Google Play, or see every unit in the game.

Get the next update before you open the game

Global Ordnance ships an update most weeks — new units, new mechanics, and the exact numbers that changed. Every devlog goes straight to your inbox the day it lands. No other mail, unsubscribe in one click.

Posted by

in

Leave a Reply

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