[SPINE] regarding Texture Packer Max Size criteria and black screen issues on PC/Mobile

Hello,

Recently, GDevelop updated to support Spine 4.2 with physical bones. To reduce resource overhead and avoid exporting frame-by-frame PNG sequences, I’ve decided to build my game using Spine.

While integrating Spine into my game, I noticed that when the width or height of the exported atlas image exceeds a certain value, it renders completely black in GDevelop. Initially, I thought that the Max Width and Height values of the page were different for each individual Spine file.

After conducting several tests, I learned that the general hardware Max Texture Size limit is 16384 for PC, and 2048 or 4096 for mobile devices. To verify this, I conducted a test with one of my projects (Project A) by adjusting the Texture Packer’s Max Width/Height settings:

  1. Test A.1: Set the packer max size constraint to 18348. The actual output texture size resulted in 18248 * 4684 (40.3 MB).

  2. Test A.2: Set the packer max size constraint to 18347 as well, but due to a different layout, the actual output texture size resulted in 9028 * 9339 (36.5 MB).

When testing these in the game engine:

  • On PC, A.1 was invisible (black screen), while A.2 displayed perfectly fine.

  • On Mobile, both A.1 and A.2 turned completely black.

Based on these results, my hypothesis is that regardless of how high you set the “Max Width/Height” sliders in the Spine Texture Packer, as long as the actual dimensions of the final generated image file do not exceed 16384, it will work on PC. Is my understanding correct?

I would love to know:

  1. Does this exact same texture size limitation and black screen phenomenon occur in Unity or other major game engines as well?

  2. When shipping a commercial game targetting a wide range of devices with vastly different specs, what is the industry-standard criteria/best practice for setting the max atlas texture size?

Additionally, as a non-native English speaker, I noticed that when I open the exported Spine JSON file, my attachment and slot names are written in my native language (not English). Will international players face any technical issues (like missing language packs or encoding crashes) when running the game on their local devices?

Thank you in advance for your help!

Yes and no. It isn’t engine specific and has to do with a available ram for GPUs plus browser restrictions. Keep in mind textures are generally loaded into GPUs fully uncompressed, so size on disc doesn’t matter, but rather lengthXwidthX4 (RGBA) is your size in GPU for each texture, and then there are browser and electron hard limits. Some engines have GPU texture compression algorithms but not all GPUs support them (and no phones do as far as I remember).

There isn’t one. But generally from what I’ve seen you never want static images to be larger than your target game resolution and sliced if you can (edit: for a 1080p game you generally want to stay at around 2000x2000 max for a static background, chunked up if you need bigger) and you want animated images to be significantly smaller

(e.g. Spiritfareer keeps all character sprites at around 512x512 or less, and it has some of the highest quality 2D art on the market. Similarly Hollow Knight kept most of its sprites even smaller with larger bosses composed of multiple chunks of objects)