Wicklog 32: Refactors, race mode (again), and Loomapalooza

Hi friends! It’s ya grl olive (they/she pronouns)

As always, I am grappling with uncertainties regarding The Work. The basic cycle for making a game is to spend a number of years developing, make a bang with a release, and then support the long tail as you move onto other projects. Crescent Loom, originally conceived in 2016 and still with no end in sight, is… not on that trajectory.

I hear stories of people working on a game for ten-plus years and fear that such a duration lies in my own future. Am I to be tied to one game for so long? Married — chained — to this single idea for my whole career? I mean, it’s a good one and if I had to choose, this would be it, no question. But not having a clear end goal can also feel like a failure of planning.

So I’ve been trying to remind myself of other stories and to compare it to projects outside of Games. One of the places CL is going to live is in the classroom, not just the front page of Steam. And it was never going to be 100% done; educational software that’s fire-and-done goes nowhere. Archives like MERLOT are filled with dead links to simulations that have lost funding and succumbed to bit rot; computer programs need real living humans and institutions to keep them alive.

So one way or another, Crescent Loom and I are in it for the long haul. If it were less worthy a game (like, just shooting things), I’d be outta here; it’s rare that any game would be worth spending a lifetime on. However I believe that showing folks a new way to read the world — pulling back the curtain on the neural substrate that underlies life’s motions — does have that worth. So here we are!

Refactors

With all that, I spent the first few months of this year doing code cleanup and restructuring. I took a walk around the codebase asking myself if I was OK living like this, and the answer was “no” for a bunch of stuff, marked in red:

(I’ve been using Excalidraw for diagrams like this and I love it so much)

The amount of anxiety I was feeling about touching some systems was completely outsized compared to the number of actual trouble areas. My life is a lot better as a result of looking squarely at & reorganizing them. Here are the non-under-the-hood implications for the game:

  • I once had a dream about stringing together many rooms into a big explorable map but the complexity that came with was hobbling me and I wasn’t even using it. Simplified to one room/map per level.

  • The map editor is a lot more stable and it’s plausible that I might be able to include it as part of the actual game! Map editors rule and I’d love to get one for CL in your hands.

  • I can have modals-within-modals e.g. a “are you sure?” confirmation pop up while in the save menu. Super utilitarian change that 0% of y’all would notice without me pointing it out, but oh boy does it make interactions go more smoothly.

Race mode (again)

Race mode works again! It went from being an odious task to being moderately easy thanks to all those refactors. Thanks from past me to further-past me.

Key validation (& crescentloom.com)

Crescent Loom now lives at crescentloom.com! It was a big chore to keep trying to wrestle the old wick.works wordpress site (which I had set up before really having a firm grasp of what a website was) to display the custom demo page. CL has now now got its own sleek entire website with navigation links to the connectome explorer, etc.

I’m also experimenting with a system of distributing keys on itch.io in order to let folks set up their own private servers to store creatures on. Authentication and web stuff is harrrrd so it’ll likely evolve over time. Here’s the page with the how-to and details.

Photophores

This was one of those “wake up at 5AM and can’t doze so decide to just try to knock out a feature that’s been on my list forever” things.

I really struggled with the UI for this. The problem: there are many lights on a creature. One “light neuron” in the brain should be able to control many lights, just like how a single motor neuron controls a bunch of sections of muscles.

The tricky thing is that there’s not a natural single “gesture” to create all the the lights in a single group like there is for muscles. People may want to add lights, test things out, and then go back and add more lights to the same group. The UI grew to be similarly complicated; when would a neuron be created? How would a light be assigned or re-assigned?

Fortunately, one of my housemates talked me out of being this far in my own head. He recommended really leaning into trying to get a gesture-based UI to work rather than a window-based one because that’s how everything else about creature creation functioned. It clicked immediately and I threw out what was at that point several days of UI programming. ¯\_(ツ)_/¯

Lesson to future self: you might think that you’re awake and motivated at 5AM, but mayyybe hold off on doing any critical-thinking-design-work until after breakfast.

Loomapalooza

Here’s a buried lede: we (myself + my professor collaborators, Erik Zornik and Liz Leininger) are running an zoom workshop for educators for how to use Crescent Loom in the classroom June 30th! They ran the connectome explorer as their final assignments, it went great, and now we’re gonna show folks what CL can do.

(Working with them has been SO SO GOOD. I’ve known for a while that I really need some more folks on the project so I spend less time spinning my wheels; without medium-term goals I’ll just chase features and tinker for literal years. It’s hard to overstate how excited I am about making stuff that’s gonna get used!)

Witch Dice

One final plug: in order to stave off that existentially-trapped-angst I opened with, I jammed & finished a smaller project: WITCH DICE, a cute dice roller for playing games online.

It also has a bunch of features specifically for D&D that I haven’t seen anywhere else, like rolling attacks for a whole bunch of monsters at once. The layout is elegant and I’m quite proud of the whole thing.

That’s all for now. Until next time! (maybe it’ll be sooner than 6 months?? no promises)

~ Olive

Previous
Previous

Wicklog 31: Connectome Explorer for remote classes

Next
Next

Godot 3.5 => 4.0 migration notes