XXX4Fans
Yukari Hafner from patreon
Yukari Hafner

patreon


2024 In Review

New Libraries

Art Projects

Major Updates

Real-Life Events

Retrospective

I know I'm never any good at this myself since it always feels like I haven't done anything at all, but seeing it listed up like this I have to say, this was quite an eventful year after all. And that's even without actually scaling these items according to their impact on my life. Of course, SRS and FFS both are pretty major changes in that regard, and it is kind of odd how both of those have already started to fade into the background of my memory and don't have anywhere close to the presence in my mind that they probably should have.

Anyway, the good news is that I can genuinely say I can't remember the last time I have felt this happy and good as I have in the past months since SRS. It hasn't all been sunshine and rainbows, of course, and I'm still dealing with some complications from SRS now, but it has been an incredibly positive experience overall. In some ways it feels like I've finally woken up from a very, very long stupor. Feeling so happy in moments felt odd, since I genuinely hadn't experienced anything like it in as long as I could remember. Don't misunderstand -- it's not like the past years I had never laughed or had a good time, but just feeling happy, content, in the moment, without any particular external stimulus, just had never been a thing.

I haven't talked about it on here yet, but I've also started with getting a motorcycle license. I still have a bunch of courses and the final exam to get through in 2025, but I can already drive around and it's been quite fun (and cold as heck!) It's interesting how a lot of things I'd only ever thought about as a remote possibility before have become reality this year.

Alright, enough about me, let's get into what you're probably here for, the software stuff!

Most of my work this year has been focused on furthering the needs of my current game project, Weiss. As part of that, not only does Trial need a lot of new functionality that wasn't necessary before, but the authoring tools like Blender also need extra support. I've come to the conclusion that developing my own editor and everything would take far too long, and it would be a lot more economical to instead bend Blender towards my needs.

So I've spent quite a bit on the bridge between Blender and Trial: The trial-blender-addons for Blender allow you to construct various trigger volumes, set extra physics properties, and also set extra animation properties to control further behaviour within the game, such as camera control, whether animations should use engine-driven physics, or do the reverse, where physics are derived from the animation, when to trigger sounds, and so on. On the Lisp side, cl-gltf can parse all of these custom properties out, and the gltf importer in Trial translates them into the appropriate objects and so on.

This workflow has been quite nice, and I don't regret choosing Blender as the editor tool... except for one thing: Blender does not support a Constructive Solid Geometry workflow very well at all. And that's the workflow I'd ideally like to use in order to actually build levels. For those uninitiated, CSG allows you to define geometry by combining smaller parts. For instance, you could combine a door with a box cutout, which then allows you to just slide that door onto another block to create an inset door. This in turn lets you very quickly build scenery by constructing it out of modular parts. Since everything stays editable, you can also easily tweak and undo parts. That kind of retroactive edit is very hard to do in the mode Blender is built for: vertex representation. Blender really wants you to edit vertices directly, and its boolean modifiers that let you simulate CSG are extremely finicky and prone to breaking even on the simplest examples.

As a result I've been putting off building a real level for the entire year. I still don't really know what to do about it to be honest. Even making tweaks to the test level I've cobbled together to test various features of Trial and the game is extremely annoying in Blender. I usually already have enough apprehension for learning new things, but knowing how actively antagonistic it has been towards prior attempts creates a real mental barrier that I don't know how to escape from. I guess just like how it was with Kandria I'll have to let the pressure to create a level just keep building up within myself until it becomes unbearable and I do it anyway despite all my apprehensions.

On a completely different side of game development, there was also quite a lot of progress for the port to the Nintendo Switch this year. Thanks to SBCL'25 and some extra funding money, Charles and I spent a good while bashing away at the remaining issues in SBCL. Well, mostly him, and I bashed my head against making the build system less of a mess and trying to make Trial easier to test.

We've gotten to the point where most of Trial's selftest suite passes and we can actually compile the Trial workbench and run it on the Switch. The two major remaining issues are that the GC does not survive several collection runs, and that callbacks from C into Lisp are busted under shrinkwrapping. The latter prevents audio from working, but that's not that big of a deal for now. The GC is much more pressing of an issue, and much harder to debug and make sense of, too. The debugging tools we have available on the Switch are extremely barebones and it's very hard to get any real information out of it.

Well, those are the technical issues. A big practical issue is that Charles is busy with his own life and work, and I have run out of money that I can reasonably spend on something that will never recoup the investment. Don't get me wrong, I still want to get this finished, especially since it feels like we're so darn close now. But it is hard to justify when the amount of work left is hard to estimate, and my coffers are already too thin to even finish my next game.

Fortunately my money situation might chance significantly in the coming year, and I might become more amenable towards spending more money on paying Charles to work on the port again. However, that is still uncertain, and I don't want to say too much about it. I would also be more than happy to welcome other contributors, if someone else would like to volunteer to get SBCL/NX done! Especially if you already have some knowledge about SBCL internals, that would be pretty great. Feel free to reach out to me at any time!

Aside from all of that I've also committed a significant chunk of work towards Framebuffers and associated stuff. The ultimate goal of Framebuffers + Raster + etc is to have a fully native Lisp way of creating and drawing to windows without having to involve any C libraries other than the direct operating system bits. This in turn should pave the way towards having portable UIs via Alloy or whatever else. Framebuffers itself is quite far along, having most features supported under X11, Win32, and Mezzano. I also started on a Wayland backend, but debugging it is a nightmare, and I have come to loathe Wayland, so I ran out of interest in working on it myself. The MacOS/Cocoa backend on the other hand I've started with as well, but pretty quickly ran into a problem with, as it requires callbacks with struct by value returns, which no implementation supports at this time, and which cannot be supported via libffi either. A simple solution would be to make a tiny C shim library, but that... kind of defeats the whole purpose, no? Anyway, I also just really hate Apple and have negative interest in supporting that ecosystem, so I doubt I'll invest any time into that at all anymore.

Raster (the software rasterisation library) is also not implemented fully yet by any means, and as always with UI the biggest and most complicated part to solve, text rendering and layouting, remains completely unimplemented. I did start thinking about an agnostic text layouting library already, since I've wanted that for Alloy for ages already anyway, but I have yet to actually commit any time to implementing it.

Anyway, it'll probably be a while before this whole tower comes to fruition.

I'm sure I've also made a lot of improvements to all sorts of other libraries in my ... I suppose ecosystem. For the next year I'd really like to improve the portability of 3d-math. It's not that it is not implemented portably as-is, but rather that the functions it generates are so big that it brings CCL to its knees, and ECL barely manages. No idea about other implementations, but I don't expect it to be too great either. SBCL manages to get by because the underlying generation library, type-templates, uses a different mechanism specific to SBCL that makes it less insane. I've thought about this problem quite a lot already, but have yet to come to a satisfactory solution that would actually be workable. Hopefully next year I'll fare better in that regard, though!

Also, I suppose I should announce this now already, but I'm intending on going back to studying in Fall 2025. Not for computer science, mind, but rather psychology. This might be quite surprising to hear, so let me explain. My work experience for programming jobs has been pretty dysmal. I'm good at it, but I absolutely loathe the work environment where I have to implement stuff I don't care about, and it absolutely craters my well-being. Knowing how badly I deal with it is why I spent 7 years floundering about at university already, until I finally quit my Master's to pursue developing games independently.

Now, I always knew that the chances I'd be able to make this into a sustainable business were astronomically slim, but it was the first time I'd had an idea that at least seemed workable in the sense that it wouldn't make me massively depressed. So I went for it, and the results are here: it's not workable. I've been living at my parents all my life now, and I would really, really like to move out, but I don't earn enough to even do that, let alone have the budget to fund another production.

On the other hand, I've always had an interest in psychology and talking about personal issues and struggles, and I've gone to therapy for over 12 years myself, too. Going to study psychology had been on my mind for a while, but recently I'd made some more experiences that convinced me being an actual therapist might be a job I'm actually suited for. It would also allow me to remain independent and practise without another boss looming over me. And, at least as far as I see it, demand for psychotherapists will only keep increasing.

The only problem with the career path of becoming a licensed psychotherapist is that it takes a really long time. First you need a Master's in Psychology or a similar level of diploma, which takes at least 5 years to attain all on its own. And then, after that, you need many years of further studies in order to become licensed in Switzerland. All in all we're looking at probably over ten years before I'll be able to start practising. Not to mention that I don't even know if I'll be able to make it that far, given how horrendous I am at rote memorisation and taking written exams and so on.

Regardless though, I think it is worth a try, so I'll be going back to studying in Fall. If it looks like I wouldn't be able to bear with, I'll just drop out again and at most I'll have spent half a year and a semester's worth of tuition on it, which is something I'm prepared to spend on figuring this out. Fortunately tuition fees here are also quite low, so it's not like I'll be committing myself to massive debt just to complete the studies, either.

Given how I was during my studies for computer science at ETH, I figure that my performance related to the open source development and art will also not be impacted too massively. If anything, I often feel like I was at my most productive during my time there. You know, doing everything except actually studying like I was supposed to. A real model student, me!

So please don't worry too much about it impacting my output. And of course, your generous donations here will continue to go towards funding other people's work on everything. I fully intend on continuing development on Weiss, SBCL/NX, and everything else part-time during my studies. And besides, it's still over half a year until the studies actually begin for real, so there's plenty left that I can do until then.

I think that about covers it for the most important things of the past year and the coming year as well. How was your 2024? Do you have any exciting plans for 2025? I wouldn't mind hearing about what's been going on!

In any case, I dearly hope you'll have a great start into the new year, and I'm looking forward to everything that's going to be happening.

— Love, Shinmera ❤️

 (This is from a model I've been working on in my holidays)

Comments

You're fucking 100x. I'm launching The Great Common Lisp Revival before 2030 and it will be in full swing around 2035 or so. I wouldn't worry about funding in the long term.

Jean-Philippe Paradis (Hexstream)


Related Creators