Wicklog 31: Connectome Explorer for remote classes

Hello, it is I, Olive, still alive. Since the last update, I’ve started HRT (or as I like to call them, my ~titty skittles~), restarted blasting my unsuspecting follicles with lasers (going back to a doctor was scary, but my house has started using microcovid.org which has hugely helped us quantify what we should be afraid of). Gender euphoria is a helluva drug, let me tell you. Highly recommend it. 10/10 ⭐ ⭐ 👌

I also just devoured Gideon the Ninth series and ~had~ to dress up as her for Halloween. If you want a sorta-juvenile space necromancer lesbian mystery story, hoo boy buddy you’re in for a treat. Highly recommend it. 10/10 💀🌺

Re: Crescent Loom, development has been slow because of a wrist injury (it’s doing a lot better since I started using a brace) and I’ve fallen victim to the “perfect being the enemy of the good” fallacy. I kept pushing back this update because there’s still bugs to fix (there’s always more bugs to fix) and more content to add (there’s always more content to add). The only thing that has brought me to finally write this is that I’ve gotten so doggone stumped on a particular bug (more on that later) that I’m using this a form of productive procrastination.

So here we are! This is a hefty update. The full changelog is here. Let’s hit the highlights.

Connectome Explorer

For some reason there’s suddenly a need for neuroscience activities for students that you can do online? Weird.

Anyway, Crescent Loom is basically ready-made to be a digital neurobiology lab for remote classes. In collaboration with my undergraduate thesis professor, I’ve made another micro-version of the game that 1) hides the identity of the neurons and 2) gives you tools analogous to what you’d have in a lab, e.g. by blocking certain neurotransmitters or exploding neurons with a laser.

It also lets you record and save a cell’s activity to a .csv file to be analyzed in other software. (I picked up this AMAZING cassette sound effect library in the itch.io racial justice bundle earlier this year, and so this recorder is now the most auditorally-satisfying part of the whole game.)

We’re planning on writing this all up as a resource for other teachers to use early next year. You can play the connectome explorer online here, or download it here.

Channel Panel

In the spirit of filling out the neuron side of things, I put together a panel where you can see the rules that govern the ion channels.

I’m planning on making this more of an editor; being able to add and remove ion channels from neurons to see how they behave differently would go a long way to change this from neurobabble to something people can understand.

(I also added the ability to change the ion concentrations of the neuron, but other simulations have already done a great job at that so I don’t think it’ll ever be a focus)

Plugging Memory Leaks

One of the downsides of being mostly self-taught is that I fall into programming gotchas that someone on a larger team/with a mentor would have taught me to avoid, as seen in my post on draw-calls.

Today’s version of this is memory management — specifically, deleting things from stacks. Naively, I assumed you could do this:

But alas, nay, this does not behave as expected. Here’s the error, step-by-step:

To avoid this, you have to either traverse the stack backwards or make a copy of the original stack, like so:

Why these fix the problem is left as an exercise for the reader. 🙂

Since I did the naive thing in crescent loom, I’ve been plagued by ghosts from almost the start of the project; phantom physics objects left behind by old, dead creatures. They were invisible to the player, and could only be sensed if they bumped into something or blocked creature sightlines.

Since I never successfully called the Kill() method on all the branches of creatures I was getting rid of, they left behind their ghost-bones in the physics engine even after I had dropped them from the game proper.

I was REALLY HOPING that fixing this across my entire codebase would have helped with the killer lag that accumulates as you play the game for more than like five minutes. Alas, it seems to have maybe helped a little but not completely. More work to do here, but hunting down memory leaks is borrrrring, frustrating, and I’m totally unmotivated to do it. So hi, I’m writing this instead.

I did get some neat graphs out of it, though. Scratches my running-science-experiments-by-changing-one-variable-at-a-time itch. Y axis here is memory used as seen in the task manager.

Look at some pretty creatures

I added rainbow colors and lights!!!

Also, a dedicated individual has been making some really cool lil buddies an posting them in the reddit. I’ll leave you with this beauty:


Wicklog 30: Racial Justice & The Empowerment Of Manuals

Soooo — the world is cooking and police are shooting people in the streets. I spent the first week of June incapacitated with guilt and shame for not doing more; not fighting, not putting my body on the front lines of resisting violence. Shame that given ample and unignorable examples of police brutality, I continue to hide inside and benefit from systems of capitalism and white supremacy.

But I am so, so scared. Crowds cause me to panic and shut down. The quarantine hasn’t done my agoraphobic tendencies any favors. I haven’t built up activist muscles. I’m donating to bail funds and gofundmes, but this feels like cowardice; I’m merely buying indulgences from the comfort of my home. I am not doing enough to act in accordance with the values I hold, the voice in my head says.

The question becomes, then: how do I better structure my life in accordance with my values and with my abilities? The fight for equality is long, and will not end in our lifetimes. Burning myself out now won’t do as much good as finding ways to make the paths I’m already on bend to the side of justice.

I make games. People have turned even more niche things into impactful events. There’s gotta be ways both right now and going forward that I can make that help. (the voice says: “are you just looking for excuses to feel OK about doing what you want to do anyway?”)

Enter itch.io’s Racial Justice Bundle. Over ten days, it raised $8 million for the NAACP legal defense and community bail funds. I submitted Crescent Loom halfway through, and more people have played CL in the last two weeks than the last three years:

It’s only a small drop in the bucket ( .1% of people who got the bundle), but by golly I’ll make those people’s experience of supporting racial justice as good as I can. The build that was live when this surge of traffic hit had a lot of problems — no sound, frequent crashes, macOS was completely inoperable. Thanks to many helpful comments & reports that helped me troubleshoot, I was able to get a new build out on tuesday night that seems to have fixed most of the issues. Changelog is here.

A Brief Aside; Olive’s Law

Of of the most consistent lessons I’ve learned since starting game dev is:

The single hardest universal problem in game design is teaching players how to play.

You can write that down. Olive’s law. It’s a problem that touches EVERY SINGLE SYSTEM in EVERY game, by virtue of the fact that the first step of a user encountering any system is, by necessity, learning how it works and how to use it. It does not matter how elegant or clever or balanced your game is if people are unable to access it, both mentally and physically.

(It’s not just video games, either; the difficulty of player onboarding is the biggest single existential threat to Magic the Gathering, a behemoth of a money-making machine with tens of millions of players.)

Somewhat famously, the best solutions for this problem are usually invisible to the user. The Mario games are the classic case-study; for more details, take a look at the Game Makers Toolkit and Extra Credits breakdowns.

Other games rely on cultural knowledge or “games literacy”. When presented with a first-person game, many people’s first instinct is to try pressing WASD to move. This is powerful because it takes care of a core mechanic of the game with little-to-no-effort, but can be dangerous to rely on because there is no way a novice would ever think of pressing some random letter keys.

What I’ve Tried

Over the last four years, I’ve tried a number of different approaches to teach people how to play Crescent Loom. They include:

1. Voiced tutorial

  • Pros: mostly effective, entertaining, consistently gets people started
  • Cons: very high development cost, limited access to voice actors & recording equipment, has edge cases where people get confused and can’t course-correct.

2. Series of levels

…with only a few tools enabled & carefully-designed challenges to force people to focus on and learn each mechanic.

  • Pros: feels like “content”, sense of progression
  • Cons: high development cost, requires a lot of playtesting to tune correctly, people still get stuck, taking away people’s tools undermines the core creative fun of the game.

3. In-game encyclopedia

  • Pros: very low development cost, can be consulted when needed & ignored when not
  • Cons: weak context, does not give an overall sense of direction or how individual pieces fit into a functional whole.

4. In-person classroom demonstrations

  • Pros: great ability to course-correct when player gets stuck via presenter or peers, exciting to see what other people are working on, requires very little ingame development work since you’ll be explaining it with your mouth instead
  • Cons: requires in-person labor and environment, you can’t download a teacher.

5. Digital lab notebook

i.e. out-of-game guides. A youtube how-to tutorial would fall into this category.

  • Pros: taking the what-to-do-next out of the game significantly lowers the development cost, shows rather than tells
  • Cons: requires having two windows open which is a little weird & requires an internet connection, you need to be able to find guides that will be relevant to you.

6. Lego-style manuals

And now, with this latest release, I’m trying out something new: step-by-step manuals modeled after Lego or Ikea building instructions. I’m very optimistic. Let’s go through each step of interaction with this system. (note that these points are theoretical; I haven’t actually done any in-person playtests with this yet so let’s call these “hypotheses”)

  • You are presented with a menu of creatures. Your first choice is very easy (“oh, that looks cool/beautiful!”), empowering (you are deciding what to make, not whatever I decide level 1 should be), and you can choose based on how much of a challenge you want. The player is given control over what their experience is going to be & what is going to come out of it

  • The first page of the manual re-iterates setting up your expectations: “this is the thing that you will be making!” The a reason that both the cover and first page of a lego manual are of the thing you’re making is that they keep your eye on the prize. (Being able to make this a gif is a bonus of having these manuals be digital)

  • Each step is small & the pieces that you need are listed. This gives you a clear objective as you poke around the UI looking for the pieces. It has the side-effect of probably accidentally teaching you where other things are as you stumble around on your scavenger hunt. The overwhelming choices of the UI are transformed from an impenetrable library into a “find the hidden object” game.

  • The fact that you can page forward and backwards at your own speed is another mechanism of empowerment. It avoids the problem of needing to make a tutorial slow down to the pace the person who needs the most help. Paging backwards paired with an undo button also helps with course-correction if you find yourself in a snarled mess later on.
  • It finally, finally is a good way to show how to make a brain. The technical challenge of both telling you what to do and detecting if you’ve done it is very tricky; there’s just too many combinations of ways you can do a thing and ways it can go wrong to programatically catch them all. To make these, I literally just take a screenshot of the brain at each step, point, and say “like that.” It also teaches more complicated things like modifying synapses as you need them with sub-steps.

  • Including a finalé panel that invites you to paint & customize your creature opens the door back up to improvisation and personalization. Come to think of it, I should also highlight the aesthetics body parts here to let people REALLY go wild by adding doodads without affecting core functionality. The checkmark is a small celebration. Everybody loves validation.

Best of all, these instruction manuals are very, very easy to make. Turning a completed creature into an instruction manual only took about an hour each.

That’s all for this time! I know we’re all tired of quarantine by now, but remember we’re still in a pandemic. It’s a marathon. Find ways to stay sane safely. We got this.

<3 Olive

Wicklog 29: (Galaxy) Brain Expansion

Hope all’s as well as it can be with folks. I’m in a solid quarantine-crew and was able to keep my day-job, so I’m about as safe as one can be. This international crisis has let me take a lot of pressure off of my Crescent Loom work (“It’s OK if I don’t do all those things, we’re in lockdown! Anything I do is more than could be expected!”) which has ironically gotten me to feel better and do more on the project.

Action Potential Explorer

I’ve finished the first draft of the stripped-down version of the game I talked about last time. It’s designed for classrooms // for people who want a explorable simulation of how neurons fire. All the creature-building stuff is left out; there’s just poking around at neurons and ion channels. You can play it here.

Since making in-game tutorials is hard, I copied a solution from gaming’s history: instruction manuals. These books that came with many early games fell out of favor because they were intimidating and arcane. For guidance, people have come to instead rely on online resources; first GameFAQs, and now YouTube playthroughs. My hope is that if I make an interactive & visual online guidebook, I can get the low production costs of a manual and the actually-usefulness of online resources.

This guidebook is designed to be used in conjunction with playing the game. It tells you exactly what to try and gives a space to take notes for what happened — a sort of Socratic method / tutorial combination. It’s definitely an experiment. I’ve never seen anything quite like it in the wild. We’ll see how it goes.

Brain Expansion

Almost without fail, whenever somebody with a deep math or computer science background plays Crescent Loom they eventually ask: “Can I define some kind of subcircuit/module/pattern that I can then re-use?” Building up functional units of computation is a fundamental skill of these fields and it’s necessary to make anything beyond the most basic of systems.

I mocked up the first version of this “modularization” for Crescent Loom following the sub-circuit metaphor common in logic/computer programs: you can save a micro-brain with defined inputs/outputs:

And you could place as many of these as you want in the brain, just like you would a normal neuron. Any connections dragged onto its inputs/outputs would automatically connect to the simulated neurons inside it. You’d even be able to place subcircuits inside subcircuits!

While this had satisfying parallels to the power of computer architecture, it posed a few challenges that ultimately proved to be fatal to this system for Crescent Loom:

  • First was the simple issue of navigation: how would one page through a brain like this? Would you have to constantly zoom in and out of these subcomponents? What would happen to the lower ones if you deleted the thing that contained it? What would happen if you changed one instance of a subcircuit? Suddenly, we’re presented with this turtles-all-the-way-down architecture & I would have to manage templates of subcircuits instead of actually neatly modularizing them.
  • Second was the issue of sensory inputs and motor outputs. Could they exist inside of a subcircuit? If so, how could you place a subcircuit before you made the muscle on the creature? You would have to navigate into the subcircuit and place the motor neuron manually for each muscle, which again makes each subcircuit more of a template than a self-contained module.

How to cleanly handle inputs and outputs is a tricky problem in programming architecture — the whole Model-View-Controller philosophy just serves to group inputs and outputs into Controllers and Views, respectively, allowing you to keep your pure computation nice & clean & isolated in their Models. Since there’s such a high level of integration between inputs and outputs for nervous systems and relatively little Model-level processing happening, maybe moving away from this computation-inspired system would be fruitful.

Attempt #2 was simpler: just add additional “pages” to the brain. It’s basically just giving the brain more tiles, but putting the new tiles under instead of next to it. This solves the navigation problem in that the pages can just be displayed as small hexes wrapping around the currently-selected page, since none of them are “inside” any other.

It also solves the input/output problem because you can just drag any motor or sensory neuron to any other page. You just can’t delete a page until you’ve moved out all body-associated neurons (i.e. motor & sensory).

For connectivity between different pages, I took the idea from the sub-circuit model to let neurons connect outwards at the corners of the brain. That axon becomes a “loose end” and can be dragged into any other page from an empty corner. This system promises to be a lot more flexible and with less overhead than the subcircuit model — I don’t have to mess around with templates or saved subcircuits. It also took, like, two days to implement (sans loose-ends) after I’d come up with the design, and most of that was just making the buttons the right size and stuff.

I also have hopes that I can get some of the power of the subcircuit system here if I let players copy/paste pages. This again poses the input/output problem, but maybe I can make those “ghost” neurons that don’t function until they’re replaced with a real motor or sensory neuron.

New Build

Yikes, I haven’t actually uploaded a new build in over a year — not since February 2019. Hecka overdue. New version is up. Notable accumulated changes:

  • Paging system in the brain, as described above.
  • Axons are now single-compartment. I’ve traded simulation realism for the ease of a simplified model. Multi-compartment axons live on where they’re actually relevant; the AP explorer.
  • On a related note, I’ve removed dendrites. There’s just not a reason to use them at this level of abstraction.
  • You can select multiple axons to see many traces at once.
  • Can toggle ion channels on/off
  • Simplified neuron detail panel — now long status bar that shows up when you click a neuron. Seriously, this is way better. I’ll do post about the evolution of its design someday.

 “I wish it need not have happened in my time,” said Frodo.
“So do I,” said Gandalf, “and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us.”

~ Olive <3

Wicklog 28: Scaling down & personal revelations

I’m going through the BART turnstile and look up — and who is it but Mattias Lehman, an old friend who recently left Riot games to work as an activist in the Sunrise Movement. We talk and catch up. He’s amazing and working to directly make the world better (did I mention he has a Patreon?).

I look down. I see my light-blue button-up collared shirt as I commute into San Fransisco for my web development day job. I haven’t done any serious work on my projects for several months, ever since the grant didn’t go through. I feel like I’ve gotten complacent.

I’ve had some mental health challenges this year, and taking it slow has been good for me (especially after trying to cope by throwing myself into a pit of the aforementioned grant-writing work). But there was something about hearing what he’s done that made me feel like it was time to kick back into gear.

So I take a look at Crescent Loom. How does it make me feel? Overwhelmed. There’s so much it’s trying to do. My abilities have already been pushed to their limits. There’s two solutions for this: get more resources, or scale back. The grant was an attempt to get help, and didn’t work.

One option left: cut down the scope. Significantly.

Action Potential Explorer

What’s the smallest thing CL could be to start living out in the world? I listed the things it illustrates well: the propagation of action potentials, contralateral movement, how ion channels produce a neuron’s behavior, temporal vs spatial summation, how small networks of neurons are enough to make an animal move….

A common theme when I’ve talked to biology teachers is that teaching action potentials is hard. Students memorize its shape, maybe something about ion channels opening and closing, and then move on with their lives. I decided that this area was the best overlap between what CL illustrates and what’s needed in the world.

That very night, I hashed out a design for the Crescent Loom Action Potential Explorer. It cuts out most of the game; no creature creation, no editing of brains. Just a pre-made creature that you can poke and prod at, including the ability to toggle ion channels on and off to illustrate what they do. And instead of an in-game tutorial (which takes a lot of dev work), I’m going to guide students/teachers through the simulation using a website-based guidebook they can have open in another window/tab.

My goal is to finish this up as something to live-in-the-world by the end of the year.

Personal revelation

However! Because life doesn’t care whether your busy for when it throws you curveballs, right in the middle of this redesign, I had a very special experience while attending the XOXO conference in Portland.

It was groundbreaking enough for me that I dropped everything to make a short narrative game about what happened. I finished it just in time for Coming Out Day this month — instead of saying more, I am ABSOLUTELY DELIGHTED to now share it with you:

🌺 A E S T H E T I C 🌺

It takes about 20 minutes, works in-browser, and headphones are recommended.

🌺 Wick

Wicklog 27: NO DICE

The grant-folk didn’t go for it, not even close. The submission got a score of 65 out of 100. I have two reactions:


This is disappointing, but par for the course. Getting grants is hard, and it’s normal to miss a number of swings. They gave fairly good feedback, and we actually did pretty well for where I’m coming from (outside of an institution, no previously awarded grants). We learned a lot by going through the process. I can rest, prepare, and try again next year having addressed their concerns.

I also was able to talk to some teachers and have ideas for a micro version of the game that could be used in classrooms almost as-is, so this will give us time to get some kind of minimum viable product living out there in the world.

Also me:

You poor, simple FOOLS. Thinking you could defeat me, ME? The MISTRESS OF ALL EVIL?!

Skin in the game

Not at all because I was sad and needed to google animals, I did some work going back to the game’s roots for the creature’s designs: nudibranches (and squid)!

So cute! So squishy! CL’s creatures don’t look much like them, though. It’d be cool if things could be more… squishy? I had a system at one point to have deformable skin. Playing around with that again:

Some errors: that weird popping-out of the skin when it bends far. Math is hard. If you happen to know about polygon convex hulls (and related things), I could probably use a hand?

Other projects

I’m also taking a look at heating up two other games that have been on the backburner for a while now. I’m partnering with an artist to give my first game, Starship Rubicon, a facelift.


New (VERY VERY work-in-progress):

IMO my original art never really popped, so it’s super exciting to see it decked out to be a lot more colorful — it’ll be an interesting design challenge to keep that color while also preserving visual clarity amid the explosions.

Second, I have a geology board game that’s been begging to have its rules solidified enough that I don’t make up new ones every time we play through it.

It’ll probably need a kickstarter once it gets solidified, but seeing as I’ve never made a board game before, this is another one I’m gonna need to find some collaborators for.

🌈 Friendship is magic 🌈
~ Wick

Wicklog 26: educational grant submission!


Woof, the last wicklog was in January? I really let these slip. However! I have been writing. A lot. Out of the avenues for getting funding, I think that grant-writing is the best choice for CL. Grants are hefty, don’t come with many strings, and usually have for-public-good goals that line up well with CL’s educational aspects.

I wrote a grant about a year ago to get a sense of the process. As expected, I didn’t get it. They told me that they loved the idea, but I needed a business plan. Which was fair —I didn’t really have a plan beyond “I dunno, sell it to people, I guess?”.

So I’ve spent the intervening year talking with folks working in edu games get a sense of what works business-wise (and to make friends!). Cold-calling, setting up meetings, and going to socials was NOT AN EASY THING for me, an introvert who once bussed across town for a meetup, saw that it was in a ~bar~, and got so scared that I turned around and got on the bus going back. Emailing a handful of people to ask for something is usually a full day’s work for me.

So I’m hecka proud of myself and thankful to the folks I worked with, because we pulled all this together into a finished Grant Proposal #2: Operation: Get Crescent Loom Into Classrooms:

~ take a look! ~

(It was an SBIR application to the Department of Education, for reference)

These fifteen pages (plus a stack of supporting materials, e.g. budget) are a culmination of the last year’s worth of work, including a business plan that I think will be able to thread the needle between profitability and making it available to low-resource organizations.

I think we have a solid shot, but these grants are very competitive (I think they select ~12 out of 500 applications). Even if they don’t go for this one, I now have a good footing for future shots.


They’ll let us know about the grant on June 20th, so I have a few months to do some free-form tooling around with the design. I want to 1) make it run faster so there can be more critters on the screen, and 2) experiment with different layouts to make the initial contact with the brain stuff more intuitive.

There’s always a balance between what to simulate and what to simplify. I’ve taken the tactic of initially simulating as much as I could and then paring away what is unnecessary. I think simulated action potentials traveling down axons is now on that cutting block.

It used to be that you could see a pulse of activity travel along an axon, like so:

But setting up simulation values such that they worked for both the very-fast, very-large conductances of an action potential AND the slower dynamics of a cell body was difficult; it forced me to average things out so action potentials were slow enough that the simulation time-step could catch them. It also added a bunch of math overhead to calculated current flowing through these long wires.

So I asked myself: what does simulating them add? I think it’s really cool to be able to see the chain-reaction of a pulse going down the length of an axon, but functionally, is it worth it to do 20X more work to get “A activates B” to be a little more fancy? By treating it like a single unit, I cut out a ton of overhead and can get them to fire at slightly-more-realistic rates:

I have a few reservations:
1) I like how the original animation looked a LOT more.
2) There is an intuition that players have that pulses take longer to travel down longer connections, which is actually correct and is lost in this new simplification.
3) You won’t be able to stimulate any part of an axon anymore and see a pulse travel outwards from that, which I thought was the coolest way to understand what axons were actually doing.

But I’m pretty sure I can cheat most of these back in with a more-simple hard-coded mechanisms. It’s not as elegant, but pursuing structural elegance over usability is one of the deadly programmer sins.

As far as different layouts go, I’ve never been happy with how separated the brain is from the body. It’s a hold-over from the very earliest designs of the prototype, but I haven’t found a better solution yet. But I would love it if instead of working on the brain floating off next to the creature, you could zoom into the creature and work there. Something like this:

There’s a lot of challenges of this design (how do you see what’s going on in both the creature and brain at the same time?), but I’ll play around with it to see how it feels.


I wanted to get a better picture of where I was in my process, so I made a timeline of CL’s development thus far:

I’m a little surprised at how little time over the last two years I’ve actually spent working on it full-time. A bit after the kickstarter, a bit at Stugan, but wrangling with business stuff and writing and day jobbing has meant that it’s been only a bit under 50%, overall. Hopefully getting more resources with the grant will help stabilize things?

Wicklog 25: load it faster, draw it fewer, show it better

Happy new year! It’s been a good start for me, especially compared to the emotional wasteland of the last few months. I’ve started seeing a therapist, am surrounded by housemates who care about me, started a really really cool project (at the end of this post), and am putting together the pieces for another grant attempt.

I want to start out going through some technical stuff in this first section — feel free to skip to the end if you just want a sneak peek at what’ll be coming down the pipe this year.

Continue reading

Wicklog 24: neuroscientists, new build, and the fossil record

Taking a break from development has hardly felt like a break. I attended a handful of conferences (XOXO, Intentional Play, and Society for Neuroscience) and life always finds a way to fill any empty space.

TL;DR status

  • Version 0.6.0 released, with all the work I did in Sweden.
  • Prepping for another crack at writing a SBIR grant for the new year. (???)
  • Talking with folks about using CL in some real-world applications.

Continue reading

Wicklog 23: Here’s the plan

Back in the states. Stugan was great, friendship is the real treasure, etc.

Reflecting, one of the things I heard the most from visiting industry professionals & Stugan alumni was: “I came here thinking I’d finish my game in a year or so. It actually ended up taking 4 more years // I’m still working on it.”

I don’t want to be working on CL forever. I have other projects/games I’m excited to get to in my life. So here’s setting an intentional & somewhat arbitrary goal: I want to wrap up the main development in the next three years (by the end of 2021). That’s not a release date announcement, but I want to come up with a realistic plan to get that to happen. If at that point there’s no end in sight, I will re-evaluate if I want to just move onto another project.

First off, at my current rate, I’m not going to meet that. I have a part-time web dev job which is necessary for paying my bills & building a financial buffer back up, but it heavily cuts  into the hours per week I can develop CL. Also, it’s high time I professionally brought other people onto the project. It’s in dire need of an art & sound pass, and Stugan showed me how important it is to even just have one other person to discuss & design with.

So it looks like I need to secure enough funding to support / contract 1-5 people. This is outside the scope of Kickstarter; looking at my other options, it looks like need to either find a publisher or get a grant. Turning my attention towards fund-raising once again means that progress on the game itself is gonna grind to a halt, but the collaboration it enables later will more than make up for it in the long-term.

Grants are nice because you don’t have to pay the money back, and Crescent Loom is an *excellent* fit for the handful of science education ones out there, so that’s where I’m going to put my focus. I’ll be putting together a calendar of grants & budgets & stuff for the next update.

Plus, I’ve been working on this thing non-stop for two years. It’s time to take a bit of a break.

Design Pillars

I’ve talked in the past about having a “design pillar” of accessibility, but realized at Stugan I hadn’t actually fleshed out what that meant and what other pillars I might have. Here’s my first draft, with corresponding questions that I should ask about any new feature or design decision:

Direction Through Subtraction

I finished a first draft of an expanded tutorial at Stugan; instead of the old single level which led you by the nose through making a creature in under four minutes using voiceover and flashing buttons…

… the new tutorial teases out each individual concept into its own short challenge. And instead of flashing buttons to grab attention, it uses *direction through subtraction*; I simply remove all elements of the game except for the one I want to teach, and let the player figure it out through natural exploration.

For example, let’s take a look at the very first level. It opens up with no UI; just a floating egg in the water

Pressing any key (or clicking on the egg, as most people do) will hatch the creature. Oh, exciting! But it doesn’t seem to do anything after that?

So people move the mouse around the screen, clicking. They maybe experimentally press a few keys on the keyboard. Eventually, a they discover (helped by a tooltip on mouseover) that they can press the glowing center of the creature to open up the “brain”.

Whoa, what’s all this, then? People would get distracted moving the two muscle neurons around, so I disabled the ability to do that this level. All that’s left is this “stimulator” tool. So you pick it up and start trying to zap various things on the screen. Since zapping the creature directly doesn’t do anything, you eventually try those two red diamonds in the brain.

It twitched! Ohhhh, the muscle neurons control the muscles! And the other one makes it turn the other way… I can get it to swim!

The level is very short, and they reach the end quickly. This is important; the game’s not about manually stimulating muscles to navigate a large map. They’ve already had their moment of insight, so it’s time to move onto the next thing.

Different People Want Different Things

Direction through subtraction is good because encourages exploration and discovery. However, it can be scary. “Am I doing the right thing?” is a real fear for many people. Referring back to design pillars #1 and #2, I’m going to need to find ways to encourage and prop up these players.

A trend in modern design is giving players control over what sort of experience they’re looking for by letting them select from different “play modes” at the start of a game. Here’s a good example from Subnautica:

This evolved from the easy / medium / hard difficulty sliders, which had the problem of not giving any sort of context and feeling infantilizing to non-hardcore gamers. This design makes it clear what each one means & naming them in a way that validates the experience of different play-styles.

For Crescent Loom, where the difficulty comes not from resource limitations but from the understanding of the mechanics, these options could take the form of teaching styles. Does the player want to discover the mechanics on their own through trial-and-error, or be guided step-by-step through the process? I haven’t seen other learning games do this before, so it would be amazing to consult with an educational specialist here.

Till next time!
— Wick

Wicklog 22: Friendship is the real treasure

Twenty game developers in the Swedish woods for six weeks. How has that been going, huh? Turns out a lot can get done in a focused, community-supported environment.

People are helping me!


Right off the bat, I got some excellent visual design advice from Wren and Isi to make the creatures look softer & stand out by darkening the background and environment. The dreamlike underwater motion of the Loominals is the game’s strongest visual selling point; an easy way to emphasize that is to make them really pop in comparison to their environment.


Phil introduced me to this thing called a graphics profiler, which watches your game and keeps track of how long different parts of it take to draw. You can use it to figure out what parts of your draw function take a long time to draw & try to optimize accordingly. It’s a perfect example of an amazing tool that I just didn’t know about because of my lack of professional training, and how workshops like Stugan can help devs just by putting them in the same room.


Shader for edit mode:

Wren suggested that I could fix the problem of players forgetting whether they were in play or edit mode (e.g. “why isn’t it moving?”) by visually differentiating them; have some kind of full-screen style change that makes it obvious if things are paused. Here’s an example where they do that in Transistor:


My first design was a blueprint-inspired aesthetic, like so:


But Phil pointed out that this might end up being too jarring a transition from the normal colors / scene, and recommended just using a strong blur effect, like so:


If I did it right, I could bring in the blur like a microscope was being adjusted, which would be an elegant way to imply the kind of technology being used in the narrative. However, getting this kind of effect requires using graphics shaders — something that is quite technical. I’ve never used them before, and had a lot of fear about dipping my toes in.

Phil and Adam came again to my rescue, explained the basics of shaders, and helped me troubleshoot things until they worked. I still need to work on the transition in to/out of the blur, but here it is in full glorious motion:


Pokemon-style ending sequence:

For level design, I decided the simplest task to give players would be the classic “reach this point” objective that games have perfected over the last few decades. The basic level in CL will be constructing a creature, navigating an environment, and reaching a goal point.

But what is their motivation for doing so, and what happens when they get there? I asked myself my favorite question: “what is the feeling I’m trying to create?”:
> competency / progression: the player is figuring the game out, successfully mastering the mechanics
> safety: the creature in question is safe, we helped rescue it

The design for the former (progression) isn’t difficult: games have a rich tradition of “level complete” screens filled with stars, ratings, and literal trumpets to celebrate success. I can just throw one of these up and for the most part people will know exactly what it means and be emotionally cued appropriately.


For the latter (safety), I was reminded of the capture animations for pokemon, e.g. :

Here’s the first test & in-game version, which I was pretty happy with:

But few designs survive contact with players: people thought it was some kind of laser disintegration ray!

I wasn’t sure what to do until Sara suggested making the ray expand and clearly “gulp” it down to a single point before pulling it back in. Along with some shininess, this made it so so much better:


I want to say, again, how amazing an experience it is here. I see people helping each other almost every day— Photoshop techniques, tutoring in Unity, gif-making programs, design feedback… I feel so incredibly lucky to be sharing space with so many smart, creative, kind people. 🙂



Jennie is interviewing teams each week & making short videos showcasing their projects. Here’s mine!


And here are the rest of them. Plus, Luno has been making longer-form podcasts diving into some of our stories.

Photo album:

On the advice/example of Emily, I made a twitter account specifically for Crescent Loom! I immediately spent an afternoon filling it up with a bunch of gifs & commentary from the first half-year of development (from prototyping to the end of the Kickstarter). It’s sorta like going through an old family photo album and is probably more than a little self-indulgent. Yay!

New Levels

Stugan is a little over halfway over, and I’ve made 3 of the ~6 new tutorial levels. Since a lot of my time so far has been spent making the supporting systems (e.g. the golden end-of-level animation, limiting the number of parts available, making sub-maps you can zoom into), I’m hoping the last few levels will be mostly issues of design & implementation. What could go wrong.

Since this post has already gotten pretty long, I think I’ll hold off on writing more about these until the next update.

Swimming Fishies


Good news: I found a typo in my water physics that’s been there for over a year! I was multiplying the amount of lift each part generated by a lot.

Bad news: If I fix it, creatures stop being able to swim.


My problem is that I don’t actually understand what causes ANY creature to swim. I just plugged in the laws of physics (incorrectly), mimicked the motion of creatures in nature, and it seemed to work out.

What’s more, an accurate description of the physics of swimming fish amazingly does not seem to exist in science (or at least, I haven’t been able to find one). Where exactly does the force come from? What are the minimum rules necessary to model it? What are the important parameters that fish have optimized? If anybody could point me in the right direction, I’d be very thankful.

Game Jam:

We did an 8-hour game jam last week! Selina, Martina, and myself made a small meditative game where you toss rocks to direct a school of fish through shallow water. You can play it in-browser here: Throwing Pebbles At Fish

Health Notes

Thanks to global warming, Sweden is experiencing a freakish heat wave (didn’t expect to miss the nice cool climate of California while visiting a Nordic country). Since none of the buildings here are prepared for this, we don’t have much in the terms of AC — great conditions for getting dehydrated.

This is the best explanation I have for the fact that the day after the game jam, I lost vision & hearing, and collapsed in intense abdominal pain and had to be ambulance’d to the hospital. Dom was kind enough come along and stay with me for the eight hours before they decided it was likely a kidney stone (which can be triggered by elongated periods of dehydration). Not a great time, but they gave me some good painkillers and it’s likely not going to be dangerous. Just gotta drink lots and lots of water.

So, yeah, I lost a few days and have been taking it easier since. Bodies are capricious meat-machines that can (and will) break down in exciting ways! 😀

By Olive Perry | © 2020 Wickworks
Proud to be a member of PIGsquad, Playful Oasis, and Explorable Explanations.