Wicklog 21: Emotional Loops & Summer Roadmap

Stugan

Hello from Sweden! Today’s my first day at the Stugan summer workshop, where 20 game devs (including myself) are going to be working on our respective projects for two months. It’s a beautiful place full of beautiful people, and I’m SO EXCITED to be here!

Cabins in the bright sunlight.

A very blue lake.

Note that these pictures were taken at like 9pm. The sun barely even sets here. I am very confused.

Emotional Loops

I’ve been thinking a lot about what I want the emotions of Crescent Loom to be, prompted by this great talk by Erin Hoffman where she deconstructs games by looking at the emotions at each action in its gameplay loop. She points out that the experience of play is not a single feeling, but a looping cascade of different emotional states. Playing a game is like listening to a song. The experience can’t be described by any one single note — you have to look at how elements interact and repeat over time.

Aim / shoot / destruction loop for angry birds, and attack / loot / power up for World of Warcraft.

This framework is especially salient for learning games because humans learn through stories and remember through emotion. If we want to take full advantage of what games have to offer, we need to weave compelling emotional journeys into our gameplay loops.

So: what are the emotions of Crescent Loom? So far, I’ve been vaguely building towards this feeling of “divine creation”, the idea of molding life out of dust and filling a ocean with colorful, elegant creatures — with maybe a hint of Frankenstein thrown in.

However! The lived emotional experience of new players is far from that; it’s closer to slapstick, a farce. They cobble a creature together and it twitches, writhes, and dashes itself against the rocks. “Why have you created me, master?”, it would cry if it had a mouth. Browsing the library of player-created creatures reveals multitudes of such gibbering biological messes.

A creature comprised of many, many jaws bumping against a wall.

Or, as the case may be, are nothing but mouths.

Crescent Loom finds itself balanced between these emotions: the ideal of effortless beauty versus the reality of comical stitched-together abominations.  Turns out that playing God is hard; it’s only through failure and experimentation that one finds elegance. I turned to Erin’s model to help organize my thinking and construct a path for players to reach this state of success & joy.

To warm up, I first did a graph for a similar creative-sandbox game called Kerbal Space Program, where you construct rockets and try to put them into orbit:

KSP has a particularly excellent core loop. There’s preparation & creativity as you build a rocket and a sense of excitement and build up as you launch your rocket and try to exit the atmosphere. However, the thing that I think it does the best is to have a satisfying payoff on either success OR failure: you get satisfaction or a cool explosion, respectively. No matter the outcome, you’re drawn back to the drawing board to try and do something cooler or to fix what went wrong.

Let’s take a look at the one for Crescent Loom as it currently works in sandbox mode:

This loop is quieter than the one in KSP. They start out the same (building a creature/rocket) but instead of high-tension space missions, Crescent Loom offers a more passive experience akin to watching things swimming around in a fishbowl. You and poke and prod the creatures to see how they react until you find something to change, at which point you pause, re-enter the creature editor, and begin the loop anew.

Since the game offers so little direction, the player’s motivation and rewards are internal. They ask “can I make something that does X?” and derive joy from just watching their creature swim around. However, self-directed play doesn’t work for everyone. Without something obvious to work towards, or without some presented problem to solve, there’s no fuel to keep people engaged with the loop. Once you finish a creature, it just sort of sits there and there’s no sense of progression.

Summer Roadmap

So! My goal for my two months in Sweden is to put together something for this sense of progression and to introduce players to the game. As I mentioned in the last wicklog, I’m thinking that this’ll take the form of a series of series of levels/puzzles where you mend injured creatures. Here’s my sketch of the first few levels:

Level 1: stimulate muscles manually. Level 2: modify limbs of a messed-up creature. Level 3: add new tail. Level 4: add muscles. Level 5: prune neurons to stop a seizure. Level 6: place new neurons.

I’m not sure about deletion / editing before how to add new parts, so the order may swap around some as I playtest.

Loominologist

Calling the creatures “creatures” has worked so far but it’s a little… generic? I’ve played around with trying to come up with a specific name for them e.g. “Pokemon”, but hadn’t found anything I liked — but one of my housemates just suggested calling them “loominals” This:

  1. makes the name Crescent Loom a little more relevant
  2. is a pun on “luminescent”, which is cool
  3. is loomins/loomies for short, which is adorable.

It follows that the role of the player should be called a Loominologist instead of a Neuroweaver, which is what I’ve been going with up until now.

Too silly? Do I need a special name for the creatures at all? I’d love to hear what you think!

Wicklog 20: Exposing hidden mechanics, backwards compatibility, and Stugan

Stugan

I’m going to Sweden!! Stugan is a 2-month workshop for about 20 developers to focus on a goal while in a cabin out in the woods. They bring in mentors, and there’s a focus on collaboration & making friends.

So… it’s basically summer camp for game devs. 🙂

Part of the application was making a video that lays out my goals, which you can see here:

 

There’s… not a lot you can do in just two months of development, so I set my scope for just making a better introduction to the game. It’s a design I’ve been kicking around for a while: playing as a veterinarian and being presented with a series of creatures with some sort of physical or neural problem that you need to fix.

I see this setting as having a few key advantages:

  • It’s a natural framing device for a progression of puzzles; a novice vet is going to be handed creatures with simpler issues.
  • It will allow me to show completed creatures to give players a baseline for what they look like, in contrast to the current method of throwing people in with a whole bunch of tools and not much idea what they’re doing.
  • Being a vet is a suuuuper common “I want to be X when I grow up!” dream, but there haven’t been many games where you can be one. I suspect that it’ll be a strong hook for kids.

I’ll be leaving on June 22 and getting back around August 21, including 10 days after the workshop ends for just doing some hiking around the country. I am very, very happy to have been selected for this. Aghklhglbk ~

De-cluttered cell popup

I’ve been redesigning the system for interacting with neurons on the board every few months for the last year or so. The current iteration is to have a tooltip and little icons pop up when you mouse over them, like so:

The main drawback to this is that when there’s a lot of neurons, the view can get super cluttered — especially with that big blocky box of text covering everything above the cell:

What are you even mousing over here? It’s just madness.

So I bumped the label off to the side & made it more clear what each icon did, like so:

The key to making those orange tool labels strongly associated with their icon is that little slide animation they do. Coming out of the icon (as opposed to just fading in) emphasizes the attachment.

Detail Panels

Up til now, people have had to sorta take my word that there was lots of cool neuro stuff happening under Crescent Loom’s hood — so I’ve spent the last month or so making a details panel where you can actually watch ion channels open and close during action potentials.

While working on panel, I went through one of those design cascades where you change one thing, which makes you realize you need to change another, etc. It started when I finished the first draft of the panel mock-up:

There’s information all over the place! Plus, I never loved how the options menu popped out from the top bar. It worked fine for selecting new cells to place, but it was kind of weird that in order to change an option, you had to click on the neuron and then go back up to the top of the screen like you were placing a new one.

So I bumped the options menu into the details panel. And while I was at it, I restored the visual options for neurite and synapse types (which I’d killed last year in an effort to solve this same problem of too many menus in too many different places):

It was such a relief to get the option menus in one dedicated place instead of just being tacked-on to the tool bar. As it happened, I’d been struggling with the same problem with the body part menu, and the too-many-menus problem was currently way worse over there:

So I mocked up a corresponding “Limb Details Panel” that used the same format as the neuron’s:

Making this limb panel got me thinking: right now I only have the capability to have a single multiple-choice set of options for cells (e.g. “Fast”, “Medium”, or “Slow”), but it’d be useful to be able to have that numerical slider that limbs have (e.g. the Pitch slider in the above screenshot). Also, being able to independently modify multiple properties in the same cell instead of just choosing from a few presets seems like an obviously useful thing to be able to do, in retrospect. It’d look something like this:

Changing this kind of thing always requires some amount of under-the-hood reshuffling of code. However, in this case things are complicated by the specter of backwards compatibility; how do I add this feature without breaking all the creatures that have already been saved by the old system?

I’ll talk about the backwards compatibility issue more in the next section, but let’s just appreciate the progression of things here: we started with a new bit of UI to display the inner workings of neurons, bounced around consolidating and standardizing the options system, and am now faced with potentially jeopardizing the save data of all the creatures made so far. Turns out that computer games are highly interconnected, complicated beasts.

Backwards compatibility

I got stuck going down a very technical rabbit-hole for a week or so: optimizing creature file sizes. Here’s a small slice of what one currently looks like:

There’s a ton of room for improvement even in this small slice:

  • Replacing repeated labels like “bodyA” and “skipedges” for something shorter.
  • I’m storing the vertices for the graphic sprites AND the physical bodies, essentially doubling the size needed for each limb.
  • And possibly the biggest thing: reducing the length of all those decimal numbers! I really don’t need to be storing values to the 14th decimal (that’s the ten-trillionth place for those counting at home) — the 4th should be more than sufficient.

Cutting out duplicate information, changing labels, and setting a fixed decimal length took some work, but once again the really tricky part is figuring out what to do with all the previously-saved creatures. Do I abandon them? Do I write some kind of custom converter to translate them all into the new format? Do I let my loading functions just build up with a bunch of legacy options as I continue making changes over time?

Finding some way to preserve the current creatures will take work, and will ultimately be rendered obsolete anyway as I refine the format even more in the future. I am sure that I will inevitably someday hit a snag that will require just wiping out all the current data, so what’s the point in preserving it for now? This has already happened once; the hundreds of creatures made with the first Kickstarter demo were impossible to keep after I switched from basic circles and squares to complex polygons

Then again, it feel bad to pour hours into a creation and then have it just thrown away, so I don’t want deletions to just become a regular thing. I stopped playing Starbound after they left early access and wiped out my 100+ hours of building and exploration.

So I think I’ll try to compromise. I’ll preserve the current creatures for the time being, but set expectations by adding a “These will someday be deleted!” note to the save window.

MCCC visit

I mentioned back in March that I’d be demoing CL at an after-school program, and just got the pictures back today!

It struck me how similar running the session for middle-schoolers was to the time I ran it for undergraduates. People respond to similar incentives (“make a creature that can win a race!”) and stumble into the same pitfalls (initially making something over-complicated).

Making a game that can work in the classroom is not for the faint-of-heart, but seeing kids have that moment of understanding, collaborate, and excitedly build cool stuff gives me hope that CL might be able to make it as a tool for educators.

Thanks for reading!

Wick

How Learning Games Get Funded, Part 2

====== SUMMARY ======

Available funding sources, edu design challenges, and overall lessons.

[ Part 1: Case Studies | Part 2: Summary ]



These are my compiled notes from talking with a bunch of folks about how to make a living working on educational games. Unless something’s in quotes, it’s paraphrased.

Mikael Uusi-Mäkelä, TeacherGaming:

“We’re not competing against each other, we’re competing against existing practices.”

Chris Walker:

“If there’s a good easy solution, I haven’t found it and I’ve been searching for two years.”

Gonzalo Frasca, Dragonbox:

“If you want to make money, go make Math Blaster.”

Continue reading

How Learning Games Get Funded, Part 1

====== CASE STUDIES ======

Commercial success stories, indies making it, and studio survival strategies.

[ Part 1: Case Studies | Part 2: Summary ]



Continue reading

Wicklog 19: Level editor & ghost bugs.

First, quick note: while asking around the edu tech community about how to proceed with CL, I met Mikael Uusi-Mäkelä, one of the people responsible for MinecraftEdu, and he asked if I wanted to write a guest post for the TeacherGaming blog. I wrote about the process that led me to convert my lab-based neuroscience into the game mechanics of Crescent Loom, which you can now read here.

Level Editor

The most consistent feedback I’ve gotten on Crescent Loom is that it’s difficult to figure out how to get started. I limited the scope of the Kickstarter campaign to *just* making the game engine in order to ensure that I’d be able to deliver on-time, but this meant that I had almost no room to smooth out the learning curve. I still managed to make a basic get-started tutorial (voice-acted, no less!) but it’s short and only scratches the surface of what’s possible.

So: between my time looking for jobs/funding, I’ve started poking at how to make a more comprehensive tutorial that teaches skills in smaller chunks. My first stab at this — setting up a level so the player just had to connect a pacemaker to a muscle in order to get a pre-made creature to move — instantly hit a brick wall. I didn’t have the tools to set up such a specific scenario. Y’see, up til this point, I’ve been setting up maps purely via script, like so:

I had to manually set the position and size of rooms, and the procedural generation meant that I had very little control over what they actually looked like. In order to make levels with defined goals, I needed to be able to place creatures, objectives, and obstacles. I needed a level editor.

In line with the principle of “do the minimum required work”, I first thought about trying to set up a system where I could make levels in some other software. For instance, I’ve had luck before using a spreadsheet as a map editor, which would look something like this:

Continue reading

Wicklog 18: Minecraft & Language Change

Minefaire

At my very first showing of Crescent Loom, a child walked up to my booth and said, “Is this Minecraft?”.

“Not quite!”, I replied, launching into my pitch. “It’s a game where you can build a creature and –”

But the child had wordlessly turned and marched away. He knew what he wanted, and was on a mission. I thought it was hilarious.

This last weekend, I brought Crescent Loom to Minefaire, a convention celebrating Minecraft. It was a chance for me to finally turn the tables on that child from so long ago.

It was by far the youngest group of people to play Crescent Loom so far, and I finally remembered to take pictures!

Continue reading

Wicklog 17: New Trailer & Orientation Sensor

For the indie fund application, I finally cut together the first trailer since before the Kickstarter. It’s satisfying to look back and see how much I’ve refined my ability to pitch the game:

For your reference, here’s the first one, pre-Kickstarter:

Specific improvements:

  • Shorter is better! I kept the length around one and a half minutes. Choosing a short music track helped force me to cut it down.
  • Quality recording and editing software! It was so worth dropping $60 on a polished editor to avoid having to wrangle with encoding formats in Blender.
  • Crescent Loom’s graphics have straight-up improved. Eyecandy isn’t just for fun; it’s a real investment in your future marketing efforts.

As far as the indie fund application goes, no dice on emailing their public-facing address. Turns out, as usual, you gotta network and approach people individually — or have them approach you. Private fundraising is still new to me, but since I’m now living in the venture-capital-crazy Bay Area I have a lot of resources I can tap into to learn.

Orientation Sensor

One of the problems making creatures for races is that they’ll frequently get pointed in the wrong direction and get stuck on the walls, like so:

Real animals stay oriented with otoliths. They’re a bunch of cells in a membrane that physically deform when they get tilted or moved. By having patches of them in vertical and horizontal rings, we’re able to detect changes in the orientation of our heads:

An advantage of working in a 2D space is that I can simplify the system to only work on one plane: which angle the creature is currently facing on the screen. Here it is in action: a creature that I pull downwards is able to quickly straighten itself back out:

Implementing this required me to re-write a good chunk of the brain interface code because the sensor cells needed to be placed and moved as a single unit for organization’s sake:

I still need to do some graphical work to make it more clear where the sensor is & what angle is being measured, but this should allow people to dramatically improve the navigational capabilities of their creatures.

(This has only been added to the html5 and PC versions; as usual, mac & linux builds are gonna lag behind.)

Wicklog #16: Avenues for ca$h, school visit, GUI improvements

Govt Grant:

Turns out asking for free money from the government is really hard.

The National Science Foundation has a program called the Small Business Innovation Research (SBIR) grant, whose “funding is intended to allow recipients to bring innovative new products and services to market that drive the commercial success of the small business.” Basically, if you’re working on some kind of new technology that advances scientific advancement or education, they can provide $225,000 (that you don’t have to pay back!) to develop it.

Obviously, this sort of thing is hella competitive and requires a lot of writing to convince them that you have a project that’s worth it. I spent the entire month of November building the grant from the ground up — fifteen pages of business plans, societal benefit justifications, market projections, budgets, and development milestones and timelines.

I don’t think I’ve ever done so much writing in such a short period of time, and had to get up to speed in areas I had no experience in. How the heck to you make a market projection? How do you calculate the cost of employee benefits?  What organizations do you need to register your business with to interact with the government?

I had to ask for help, which can still be really hard for me. Drawing on Kickstarter backers, Portland devs, and the Reed community, I found people to help proofread, write letters of support, and edit the manuscript. And even with all this, I probably wouldn’t have been able to get it together if a developer friend I made through Playful Oasis hadn’t sent me a copy of her recently-successful application.

The difficulty of getting an SBIR grant weighed me down; what was the chances that they’d actually fund me? What if I was asking for all this help from people for a doomed venture? I had to make a rule to myself to not indulge in negative self-talk; I just had to press forward and focus on what I could learn about the process. I was gonna submit something by the deadline, gosh darn it.

And hey! The final product was actually pretty dang good, imho. It’s technically proprietary information so I don’t think I’m gonna publicly post the whole thing. However, if you’re working on a similar grant, I’d be happy to pay it forward and share it in private by email.

There’s a 4-6 month turnaround on these things, so now we’re just at the point where I’ve sent this off into the universe and gotta move on.

Other ca$h avenues:

  • Applied for a dreamy job at Supergiant Games (Bastion/Transistor/Pyre). They’re an absolutely fantastic independent studio that happened to have a job opening that I’d love and fits my skills to a tee. If I started working with them, I’d put CL development on hold/weekend status.
  • Gonna apply to the indie fund, a group of successful developers who invest in new developers. Being privately backed would add some constraints, which I’ve talked about, but I’m moving towards a commercial release anyway so I think the funding and connections would make it worthwhile.
  • There’s a handful of more government grants out there that I’m gonna keep exploring and applying for as their deadlines approach. I’ll be glad to have done this first one.

School visit:

This last week, I visited a high school in D.C. to informally demo Crescent Loom with students. A couple takeaways:

  • Needs a lot more tutorials, still.
  • Different people approach the game in very different ways. Some just click around to see what happens, others get the basic hang of things and then try to design for some self-made objective.
  • Everybody loves it when you lay and egg and then your baby eats you.
  • It’s actually a pretty flexible tool; you can use it to show different body designs, ecological interactions, and how different environments call for different strategies.

Changelog:

When I don’t know what to do with myself in situations, I just pop open my laptop and work on small features and bits of polish.

First, the difficulty in getting all the students’ computers set up with the game prompted me to make an installer for the game, now offered as an alternate windows download on itch.io.

Second, a feature that helps load creatures by filtering as you type:

Third, a new menu that lets you set up races:

Forth, painting + lights now listens to symmetry mode:

Finally, I’ve started work on an orientation sensor, with the idea that creatures will be able to use it to stay level. It still needs some significant work to be useful. You can see it here activate when the creature is pointing straight to the right (watch the graph in the bottom-right):

I think that it would be more useful to have an organ that detects the current orientation of the creature, instead of having just a single neuron activate at a set angle. So you’d place your orientation sensor on your creature (sort of like an “inner ear”) and array of neurons like this would show up in the brain:

But this will require some substantial work under-the-hood, e.g. linking multiple neurons so that they all get moved together, having a single organ create and keep track of them, and finding an initial open location for all of them. So it’s unlikely I’ll find the time to get all that set up until I’m a little more financially secure.

Gameplay experience survey! (to help me get grants)

Turns out a lot of government grants want proof that people are interested in your project, so they’re asking me for testimonials. If you have ~4 minutes, could you take this survey?

 [ https://www.surveymonkey.com/r/3NKZ57V ]

 


Also, a couple Kickstarter plugs!

First up is NeuroBytes, which just launched today.

They’re working on the exact same problem as Crescent Loom: how to make neuroscience tangible? Only instead of with a video game, they’re doing it through making physical networks of circuit-board neurons.

Side-note: Zach Fredin (one of the creators) looks eerily like Tom Hanks.

“…the entire network is built from relatively simple elements whose complexity stems from their interconnectedness.”

Second is Nimbatus by my friends at Stray Fawn Studios, which already exceeded its funding goal in the week it took me to send this out.

If you like the building-stuff part of Crescent Loom but want A LOT more lasers, Nimbatus has gotcha covered. You can also set up some pretty sophisticated triggers to make them be able to navigate autonomously.

Best!
Wick

Wicklog #14 – Surveys + final checklist

*** SURVEYS SENT, PLEASE FILL OUT YOUR SURVEYS ***

For backers with survivor/nemesis memories, I have the recording studio booked for next week. In order to get your memory voice-acted, you must fill out your survey by the end of this Saturday (Oct 14).

(if you need some inspiration, check out this sample of what people have submitted so far. They’re SO GOOD!)

Ditto with stickers; I want to start mailing them out, but only about half of y’all who get them have responded. If you haven’t responded by Saturday, their delivery will be significantly delayed until I get a chance to do another mass-mailing.

Laser Delay

In the spirit of being-willing-to-admit-to-falling-behind, I’ve had scheduling problems with getting time on a laser, and am going to substantially miss my Nov 1st estimate for the Ramón y Cajal etchings. My new goal is to get them etched and shipped by Dec 1st — there’s just too much going on this last month, and this is the thing that gave out.

But here is the finished digital draft vs the original art! I’m going to etch at two laser powers; the darker shapes will be burnt deeper into the wood.

 

Final Checklist

We’re in the final countdown. This is a list of my campaign promises to have done by November 1st:

[X] Game engine: brain + body editor 
[X] Basic gameplay: sandbox populated by online creatures (bonus: race mode!)
[ ] Platforms: Win/Mac/Linux
[ ] Backer content: cryopods, voice-acting, creature collaborations
[ ] Physical rewards: stickers & etchings

I’ll be spending the last couple weeks getting it working on Mac/Linux (I got a Mac Mini off of craigslist last night!), adding the backer content (from those surveys you totally filled out), and shipping the stickers.

A difference between this and most other crowdfunding campaigns for video games is that I still don’t consider Crescent Loom “done”. I’ll be entering a phase of open development where I continue to work on it as time and funding allow. This Kickstarter was always meant to do just that: kick-start the game.

I’m pleased with how this year has gone. As far as I know, this is the very first biologically-realistic neural circuit simulator that can be used without technical training in existence.

Oh, and to top this all off, the cookie has crumbled and I’ll be moving out of Oregon (for the first time ever! o_o) and down to West Oakland… also on November 1st. Woop woop!

 

By Wick Perry | © 2018 Wickworks
Proud to be a member of PIGsquad and Playful Oasis.