I’m going to be generating a lot of images over the coming months and I’ll be using many different apps to generate them.
So far, for my example adventure game, I’ve used Procreate, Adobe Comp, and Affinity Designer on the iPad and Photoshop on the Mac. I’ve also developed an asset management app on the Mac that I use to create the animation JSON data for my engine and that moves the assets into the asset catalog within the game bundle
As files are being generated and stored in multiple different places, it’s becoming apparent that having some sort of clear naming convention is going to be beneficial going forward.
These are my notes, published here partly in the interests of sharing my process, but mostly so I’ll always know where to find them.
- Each word in a filename is capitalised to make it easier to read.
- Hyphens separate words as it’s easier to type a hyphen than an underscore on an iOS device.
- Scale and device is specified in the filename so that each asset is correctly sorted into the right bucket (e.g.
@2x~Mac). Don’t rely on defaults!
The State component is optional for the image that represents the button’s normal state.
There are three states for buttons: Normal, Active, and Disabled.
State is optional for the default state. Exits do not always require images.
Inventory items are straightforward.
As are items that don’t have any animation frames.
Texture files for rooms may contain both foreground and background elements and might need to be numbered if they are larger than the allowed texture file size (4096×4096).
Animations should be sequentially numbered based on their animation type with up to two zeros of padding.
Anything that doesn’t fit into any of the above categories (e.g. the Settings overlay background sprite) should use this convention. The
Sprite identifier at the start is there to keep these miscellaneous images grouped together.
Naming is such an important part of development that I think it’s useful to get some conventions nailed down early, but they are also likely to get updated as development continues.
Get all of my latest posts direct to your inbox! Pop in your email address here: