elegant chaos
What Next?
September 03, 2024
I recently finished a fairly long-running contract with Formation Games, working on Club.
It was a fun project and a really great team who I loved working with. The one thing I perhaps didn’t love was that I was mostly using Flutter & Dart, with some Go thrown in. I’m not a Flutter hater, but I couldn’t honestly say that I loved it. Nor am I am Go hater, but I really did not get on well with the idioms that seem to be prevalent. Maybe I’m just too old and set in my ways :)
At the moment I’m taking a bit of time to recharge my batteries, and to think about what I want to do next.
Part of that has been trying to figure out where exactly my perfect project is located. Not geographically, but in terms of tools used, industry served, and so on.
I haven’t reached any solid conclusions, but I drew a big diagram on my whiteboard, with some headings circled.
Swift inevitably ended up floating in the middle, with the other headings orbiting.
Then I positioned some possible projects or products between the headings. As an overview, it all looks quite plausible!
These were the main headings:
- Swift: I prefer it to Dart, and definitely to Go. Because I’ve been off in Flutter-land, I’ve not had the chance to really work with the new concurrency support – so would welcome the chance to catch up there.
- Games: Exacty what “working in games” means is a bit nebulous, but I really enjoyed being back in the industry, and would like to stay there, or somewhere games-adjacent. Unfortunately the kind of games I like are big sprawling RPGs like Skyrim and Fallout. I think I may be too old to contemplate becoming a small cog in one of those massive machines, and I doubt if they’d have me. It’s also hard to set out to write one of those on one’s own. I suspect that’s what I’d actually like to do if I had the chutzpah (and near-infinite time). As a potentially never-ending side project, developing a Skyrim-like engine is quite tempting…
- Desktop: Typically I end up working mostly on the client-side of things, often as desktop macOS apps. That’s still fine with me.
- Mobile: I also work on mobile a lot. That’s also fine. Most of my experience is iOS. I’m open to Android (but see above about Flutter!).
- Server: That said, I have a web-related side project that uses Swift Vapor, and I’d quite like to get back to at least a basic familiarity with that side of things.
- UI: I do a lot of UI work, and generally if I’m starting something I use SwiftUI. I’m still ok with that, but as part of my recent work I’ve been building more of a bespoke UI toolkit (as I did once many moons ago for Football Manager). Whatever I do next, I quite like the idea of breaking out of the SwiftUI straight jacket, and going for a more game-like custom UI.
- Engine: I’d quite like the excuse to get familiar with a 3D games engine / ecosystem. Unity would probably have been the choice once upon a time, but they blew it I think. Right now I’m pretty attracted to Godot. This is greatly helped by the existence of SwiftGodot. It’s possible that I can have my cake and eat it too.
- Mods: The other way to get a bit of a gaming fix is working on mods. I’ve done a bit of this for Skyrim/Fallout, and am thinking that it might be fun to do something in that area, maybe for Starfield. Mutagen looks interesting, though sadly it means not working in Swift. That’s pretty inevitable for mods though.
This is all just food for thought at the moment, but I can see a hazy picture coming in to focus which makes some sort of sense… maybe…