NDA Jam

Join over 2,000 readers who are making game development more fun!

I’m very lucky. I work at an indie game studio, Doborog. A few weeks ago, my boss said I could spend a whole week making whatever game I wanted, as part of a company-wide game jam. That’s never happened to me before. A boss telling me, “Go nuts for cash!” Years ago, I co-ran a publishing house. In theory, I could’ve spent a week working on any project I wanted, but I had too many royalty reports and boxes of books to haul from the warehouse to take full advantage of my creative freedom.

Running a creative small business is actually a cuuuuuuuuurse!

The timing of the Doborog Jam was hilarious. It was the week after I finished the public domain game jam. It had been years since I’d participated in a jam of any kind, and now I was going to attempt two in a row. I had never completed two back-to-back jams before. Have I eaten two whole jars of jam back-to-back? Honestly, I haven’t, but that sounds like a nice weekend! The older I get, the more I relate to Paddington. All I want is to live in a comfortable attic and paw sweet orange goo out of a glass container. Is that so much to ask, dear reader?

The Doborog Jam had a little more direction than I’m letting on, but not much more. The objective of the jam was either to add an experimental new feature to our game Clone Drone in the Hyperdome, or learn a new skill that would help the team. I decided this was the perfect opportunity to learn how to make a game in Unity, the game engine we use, from start to finish. I’d never done that before. I’ve made little half-finished prototypes, but never a game with, like, real gameplay, a start screen, and a button so the player didn’t have to force quit. If I knew Unity better, it would help me communicate with my fellow engineers and debug problems myself. Erik, Doborog’s creative director, agreed that would be worthwhile.

I got a project idea watching old educational slideshows on YouTube. The way slideshows present stories, in one deliberate beat after the other, sparked an idea. Typically, interactive narratives give the player three choices which branch the story. The game either grinds to a halt while the player makes a choice or the game automatically picks the default choice. “No choice” isn’t often respected as an option. It’s either choose one of these or we choose for ya, buddy.

So I thought it’d be interesting to explore allowing the player of an interactive narrative to decide how much or little they wanted to interact. The choices would be hidden in an image, but the player would have ample time to discover them. Or they could just go with the flow of the story and enjoy a linear experience, like a regular slideshow. (Though how much children “enjoyed” slideshows on STDs is debatable.)

Since this was the Doborog Jam, I went with a theme that felt very Clone Drone. This would be an educational slideshow for robot aliens about to invade Earth on the curious little humans who run the place. Know thy fleshy enemy. The player could experience a short, funny slideshow, or they could find hidden hover links in the slides to connect them to secret slides with new knowledge. After every viewing, they would see how much knowledge on humanity they acquired, and would always be told they knew enough. No need to learn more! If the player 100 percents the game, the robot voice over tells the player they must be human – only a human would be that curious – and to prepare for immediate abduction.

My biggest challenge to programming in Unity is a lack of C# knowledge. Two of my weaker subjects are math and foreign languages, so programming is a double whammy of my-brain-doesn’t-work-like-thats. Luckily, I’d heard about a visual scripting plugin called Playmaker, which is a helpful library of pre-written code that can be arranged into visual diagrams, like story maps!

What’s the difference between regular scripting and Playmaker? Here’s an example. One of the game elements I needed was a transparent button that changes color when the mouse hovers over it. The easy part was creating a button object, placing it on screen, and making it transparent. All of that I could do with no code. To make it function, traditionally I would’ve had to write a script line-by-line in text, then associate that script with the button. But with Playmaker, there is already pre-written code for changing the color of an object. So all I had to do was drag the pre-written code onto the button, then tweak the settings of the code so it activated on a mouse hover. No code. No fuss. Well, some fuss…

Playmaker made solo game development actually possible for me. There’s no way I could’ve learned a foreign language (C#-ese) and made a game in a week. However, just because it was easier to program, doesn’t mean it was easy. To make the game, I needed to understand the logic of what I was designing. I’ll explain.

To begin the project, I built a typical scene where a slide would be shown to the player. If this worked, I could replicate the scene dozens of times and swap in different slides and audio narration. (Voice over provided by Amanda. Thank you, my sweet robot alien wife!) Knowing that the ending would be unlocked based on how many slides the player saw, I needed to count how many slides the player had seen. The math was simple enough for me to understand: +1 to a variable, a container for numbers or text, called SlidesSeen.

On my first playtest, it worked as expected. The counter was counting. On my second playtest… it over counted? The variable was saying I’d seen more slides than I actually had. Why was that? It took a while to figure out I wasn’t counting unique slides. I was counting the same slides multiple times. Oops, lol. I needed to build a database of slide names, then have the counter check to see if the player had already seen that slide before.

I spent several hours on build a new system and it totally didn’t work! Why not? The database was attached to an object the counter wasn’t allowed to communicate with, because passing information back-and-forth between certain types of objects breaks the Playmaker laws of nature. So I had to rewire the system for a third time and then it finally worked.

And that’s just the little slide counter. There were tons of systems like that, where I had to design it, then re-design it, then re-design it again. Just because a code block in Playmaker says, “Integer Counter,” doesn’t mean it always counted integers the way I thought it would. Some of the blocks I could not figure out how to use, despite watching multiple YouTube tutorials!

After a bit of playtesting with still slides, I realized the buttons were a little too easy to find. You could run your mouse over the screen and immediately find them by watching for a slight flicker. So I switched to using royalty free videos, which were more distracting. I love full motion video games and I thought a game about humans, using stock videos of women staring longingly at cupcakes and men with VR helmets doing cyber-work, would feel alien. My game ended up playing a lot like Immortality, except mine was made in one week, has no extraordinary acting performances, and is unlikely to be nominated for three Game Awards. Otherwise, our games are exactly the same.

My original estimate was three days to build the code infrastructure and two days to gather all the assets (writing, videos, images). It ended up taking four and a half days to build the infrastructure and “screw it, this will have to do” for the rest of the project. I had to slow down when I got sick in the middle of development, which sucked. I ended up working through my nausea, because it was Thursday and I really wanted to finish. (When am I going to learn to stop doing that?) To show my team, and myself, that I was willing to wade in the dark waters of programming. Sure, I only got into the shallow end of the pool, but I felt like I did some laps, and that thing where you hold onto the side wall and kick in place.

I’m proud to say that I finished the game! It’s called What Is The Human? Normally, this is the part of the story where I’d share the Itch.io link, but I don’t know if I can share my game publicly yet. The game is property of Doborog, but you can catch a brief glimpse of gameplay in this TikTok on the jam. I came away super impressed by the creativity and ingenuity of the team. Our artist Isaac also made his first Unity game and his game had physics, which I didn’t even consider attempting. A jumping character? Me? Isn’t a color changing button good enough?!

šŸ’” Wait, I have an idea. If you want to play my game What Is The Human?, comment on this post. Use the orange button below. I’ll show my boss that YOU, The People, are demanding to play my game. The People are pounding on doors, taking to the streets, and passing out educational literature, all in support of a game they read about in an email by some guy! Erik will have no choice but to buckle under the weight of public pressure and allow me to release What Is The Human? Help me blast a game-sized hole in my NDA!

Geoffrey Golden is a narrative designer, game creator, and interactive fiction author from Los Angeles. He’s written for Ubisoft, Disney, Gearbox, and indie studios around the world.

5 responses to “NDA Jam”

  1. I am human. I’m want game!

  2. Pam Ellen

    šŸ‘šŸ‘šŸ‘ā¤ļø

  3. Emily

    Let me play the game, Erik!

  4. Jarod

    I would like to play this game

  5. WE DEMAND TO PLAY THIS GAME, HUMAN!!

    Seriously though dude, I loved reading this. Great stuff!

You might also like