When I launched this website at the end of 2021, it wasn’t clear which way my projects would go. Some went way further than expected. Some have not moved an inch. As 2022 is now in the rear-view mirror, let’s take a look at what’s been done.
But first things first. Happy New Year 2023 everyone!
My beloved app for learning basic japanese syllabaries received two updates this year, the first one being mostly the result of the work I mentioned in this post, and the second resolving an issue with keyboard suggestions obscuring some input fields on smaller devices.
But for the most part, the main problems remain unsolved. I didn’t work on the new UI yet, as I had a pretty nasty experience with SwiftUI on CiderKit. And I still have to investigate an option for migrating my old iCloud implementation.
This is a project I’ve never mentioned on this website so far. Over the years, starting when I co-founded my own game studio called Cheese Burgames (now defunct), I designed a versatile PHP framework to handle our web infrastructure.
This year, I gave a much needed refresher to this project, which is now called MFX, while updating it for PHP 8.1+ and making it compatible with Composer. You can look at the code here.
Almost exactly a year ago, I embarked on a journey to create a still untitled game, hence The Untitled Project, and started by building the various tools I needed to make things easier for me. CiderKit was born, a game engine primarily based on SpriteKit. And what started as a simple isometric 2D sample map is now a suite of tools with many more features (still vastly incomplete though).
A simple isometric 2D sample map can be edited by hand. However, as fun as a serialization format JSON can be, more ambitious levels need dedicated tools. So that became my first milestone: implement a basic map editor, handling mostly elevation for now. Turned out pretty well!
I want my games to have a distinctive art direction. This has to come from the art itself, but the technology must enable it too. SpriteKit implements a lighting path that includes normal maps, but it is not very suitable for isometric 2D worlds, and the built-in light nodes are not very customizable.
Out of frustration, after many hours trying to work around the native limitations of SpriteKit lights, I decided I needed my own render deferred pipeline, not without limitations, but flexible enough to achieve my goals. In future posts, I will detail the black magic involved in the process.
CiderKit will probably be a standalone tool on its own at some point. And it needs a project manager for that. I tried really hard not to overengineer this part as this is not the most important part of the whole endavour right now. However, it gave me the opportunity to tip my toes into SwiftUI, as well as to look into the NSDocumentController
class to handle recent documents. In the end, I’ve very glad to have implemented a project management system in CiderKit as it allowed me to handle global settings in a more elegant way.
CiderKit’s Project Selector
I lost so much time on this tool with SwiftUI. That’s one of the many things that made me quit SwiftUI for complex interfaces altogether. AppKit offers much more control, even if more verbose.
After having rewritten the whole tool in AppKit, each piece started to find its place. The asset editor now allows me to compose complex assets from individual sprites. That will improve reusability and, as you’ll see in the next paragraph, enable animations!
CiderKit’s Sprite Asset Editor
Last but not least. Once I had complex assets at hand, some cried for more. They wanted, they demanded to be animated. But how? I had no tool available for that. No problem! Sort of.
This took me time, but it was worth it. I learned a lot about table and cell views, SKAction
and many other topics. But now, most properties of the nodes can be animated and that’s really fun. The tools are probably not the most usable yet, but they will improve over time. Only if needed though.
CiderKit’s Animation Tools (as part of the Asset Editor)
In the next post, I will talk about my roadmap for 2023 and for this website.
Header image: Step in 2023 by Marco Verch under Creative Commons 2.0