In one of my many previous posts on screen sizes I mentioned that I have decided to use points and asset catalogs with scaled assets for AdventureKit.
Creating Xcode-ready Assets on iOS
Now that I’ve resigned myself to creating assets for all the different devices, I am looking for ways to automate this process as much as possible.
Photoshop has a number of different asset generation options, so that’s easy enough.
However, I do a lot of drawings and design on my iPad using apps like Procreate and Affinity Designer.
Screen Sizes. Again.
A couple of weeks is all it took for me to revisit this.
It seems that Apple read my previous post about using iPad-sized assets across all devices and said to themselves “Best put a stop to that nonsense.”
Sticking Nodes to Corners
I have a Direction
enum that I use to position UI layers in my adventure game. It supports 8 compass directions plus a case for centre:
public enum Direction : String, CaseIterable, Codable { case center, north, northeast, east, southeast, south, southwest, west, northwest }
AdventureKit Image Naming Conventions
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
Managing ECS Components
A lot of what drives my entities happens in pseudo-systems. These systems are GKComponent
subclasses where the update(deltaTime:)
method goes in an extension in order to separate the verb part of the component from the noun part:
Revisiting Scene Sizes
Update: I would say this method is still valid if you want to use single assets across all devices, but I am now using points and asset catalogs (even though it’s a lot of extra work).
I honestly thought I had it figured out.
I hadn’t.
I mean, I had. Except it’s always more complicated than that.
Let’s talk about scene sizes.
(Again.)
Sketchy Knight
As in, I used a sketching pencil, not that he himself is sketchy.
Although, he might be. I personally wouldn’t trust that soul patch.
Interaction Nodes
The default way of working with SpriteKit is to have the SKScene
instance capture all the inputs and then have logic within that scene file to figure out the user’s intention.
In order for this to work, SKNode
instances added to this scene have their isUserInteractionEnabled
property set to false
by default. This property prevents these nodes from capturing input and are effectively invisible to the event chain.
Swivel Turret Intro Comic
Finally finished this test game intro comic thing. It is now complete and I can get on with some real work.