What I learned from making a game in a month (from a designer that didn't know Unity)
A #GitHubGameOff 2021 story
In the month of November, three other folks and I made a game for itch.io & github.com’s #GitHubGameOff.
The game is Finished Object, a crafting, role-playing card game built in Unity that is decidedly unfinished; we made it part-time for for a one-month jam after all.
It has beautiful art and character design by Chandler Candela, revelatory sound and story by Ester Ellis, and includes some well-timed feedback and direction from Evan Hill. And I got to come up with the idea and put it together, despite never having written anything in Unity before November 1, 2021.
Right now, you may be thinking that because…
I’m a product designer in the tech industry, and
I worked on a mobile game (Marine Snow), and on game-related platforms (PlayVS, Patreon), and
I made retro games in college (shoutout Georgia Tech’s Computational Media curriculum for the Atari 2600 & Gameboy Advanced game assignments)
… that I knew what I was doing at any point this past month. But to be honest, I was really trusting myself to figure out what I didn’t know along the way.
Before I get too long-winded, I want you to know that I consider this month-long project a success. I got to work with new and incredibly talented folks, see something in my head come to life in a product that I wasn’t getting paid to make, and feel like I was part of an indie game dev community that I had always wanted to join. (I watched Indie Game: The Movie at a formative age, I guess?) The fact that you can click around the game, get through the scenes of art, sound, and story, and drag cards around in an arena until you reach the “to be continued” end of the demo, still surprises me, because I didn’t know how to do any of that on day one.
You should play the demo now! It’s pretty!
I must also say that it manages to miss an ever-changing mark in my head, because it’s not a game yet. It’s a jam-scoped demo of something that could be a game and that’s so frustratingly close. Living in both the tech world of MVPs and art world of standalone work is still a struggle to me, but it’s an incredibly motivating factor in seeing Finished Object on its journey beyond the jam. Now that it’s submitted, I wanted to look back and share a few lessons that may help you – especially if you find yourself in the position of building a game in a month.
Lesson One: Get the right inspiration
Something I should have realized earlier than I did, is that it is more rewarding to work on something that you find fun and that resonates with you emotionally.
My version of fun is what other people might consider outdated craft. I love making things by hand – leaded stained glass panels in particular – and occasionally fantasize that if I was in a monastery in the 1500s or New York in the late 1800s I’d be in a stained glass studio cutting glass and fitting pieces together for a master artisan’s approval (ignoring the gender politics of those times).
I got to live that fantasy a few years ago. When my eyes would start to cross after a long day of pushing pixels at Patreon, I would walk across the street to San Francisco Stained Glass Works (now since closed due to rising rents in SoMa), pet a shop dog named Zorro, and watch David — a quiet man in his later years and a true master of his craft — work on panels of massive scale while listening to Enya on a boombox. He’d occasionally give me feedback or ask me to help lift a heavy piece. It was truly fun to learn and make stuff that way.
My time in David’s studio scratched the itch in my brain that wondered if I would be someone who makes things even if it wasn’t my day job to make rectangles on a computer. It let me see into the past, into a creative process that was more punishing than a modern double-diamond product methodology, agile workflow, or Figma design review feedback cycle. In glass, there was no copy-paste, no color picker of seemingly infinite hexadecimal values, and if you broke something you couldn’t magic that part back together. Once, I cracked a piece of glass I’d been shaping for an hour and, after the initial muttered “oh shit”, I went back to the shelf of glass, bought more and started again. I was honestly excited that the stakes felt higher and I had a grand feeling that other glass artists had felt the same pain before.
Emotionally, my favorite part of making stained glass wasn’t that it didn’t require a computer, that it felt like making a puzzle that was trying to cut me, that it required the use of a soldering iron and goggles, or had an increased risk lead poisoning. It was that stained glass lasts. It’s weatherproof and durable. You can see it cathedrals, Victorian homes and your grandma’s kitchen window. It’s not a line of code that could get deleted by next summer’s intern or forgotten on a Jira board. It’s a finished object. It has value that is greater because of the time you put into it, the idea, and the collaboration. If I really though about creation, part of the motivation for me was to create something that’ll last longer than myself. And giving a piece of stained glass to someone else also felt like I was giving them a piece of that immortality.
The tension of finishing something – the ability to gift the object in the present day or keep an object as a legacy after my death – was something that was impossible not think about when I was making something built to last longer than 50 years. So when I thought about making a game for the jam, I already knew what I found fun and had an experience that resonated with me emotionally. Glass, ceramics, metal-working, and jewelry studios make for fun environments to work and play in. Crafting games exist and have a history to draw from as well.
With that sorted, it’s good to note that inspiration for the game didn’t just come from life experience and wanting to give past feelings to new people, but from other games. Once I figured out that I wanted to make a crafting game, I also realized that I wanted it to have card mechanics. Card games are easy to pick up and have the potential to be objects of art themselves. Once I decided that, the team got to researching. Evan, the resident game expert, made a massive list of competitive games for everyone to check out. A few of us played physical card games (MetaZoo, Magic: The Gathering), got lost in card-based digital games (Inscryption, Pokemon TCG) and watched videos of folks playing trick-taking games (Quacks of Quedlinburg) or describing RPGs we’ll never play (Tim Rogers’ video on Tokimeki Memorial). I got deep into understanding the rules of Tarot games like French Tarot and Danish Tarok that led to me tweeting about this pdf.
It’s impossible to think that was time wasted now. The team got to know each other by playing games, sharing, and consuming content. We learned what inspired each of us and created a shared language. So, go take time to get inspired and choose a premise that is meaningful to you. It’s an unmissable step that I might have skipped with the time pressure of the jam.
Lesson Two: Get the right people
A few times in this process, I realized that I only kept working on this because of my teammates. If I had to guess why of 7,000+ sign ups, only 538 entries made it by the deadline, it’s probably folks that didn’t have back-up when they ran out of time or got stuck on a problem they couldn’t solve. Life gets in the way and new problems are hard to solve on your own.
To illustrate that point, waking up in the morning to see new background art from Chandler in our Discord kept me learning Unity. Hearing Ester’s audio of a cozy stained glass studio kept me designing cards. When I couldn’t figure out how to export anything correctly for Web GL, a 3 a.m. video call with Evan (and his friend Asher, thank you!) gave me the answers I needed to keep messing with the build settings and positioning of objects in the canvas.
I got extremely lucky on meeting these folks, but I’m going to try to give advice on the subject anyway. If you’re thinking about jamming on a game solo and you don’t have to: don’t. For me, this project wouldn’t have happened alone. 100% of the motivation I had to get the game into a state that other people could demo it was the fear that I could end up with all teammates’ good thoughts, art, and sound hidden on my computer. It should be seen and heard by more than my file system.
I mean, look at these characters and backgrounds Chandler made.
Listen to the sound of the stained glass studio Ester made. It makes me want to make stained glass and pet a shop dog right now.
Even just being able to share this stuff here gets me hyped to keep working on the game. It really is just so cool and it didn’t have a reason to exist 30 days ago.
Lesson Three: Find the right resources
I’m not going to lie, I’m feeling overwhelmed by how many resources are available for free or at a low cost online to folks trying to get into building games. And how eager folks were to help me once I said I was working on a game jam. Even watching folks interact in the #GitHubGameOff Discord was lovely; they were so kind and constructive in their feedback or requests for help. The Unity engine being free is still incredibly shocking to me. It’s so powerful in ways I can’t wrap my head around still and after a month into learning I feel like I’m just scratching the surface on all the cool things I can reasonably expect it to do.
For now, I’m going to stop waxing poetic on my feelings and list the resources that helped me make the game. A lot of these resources are for folks brand new to building games in Unity like I me, so if you’re jamming on #GitHubGameOff 2022, I hope they help. It’s important to remember that complex systems aren’t usually complex on the inside, it’s more often a bunch of simple things working together. So, knowing how to add a title screen, add scripts to objects, how to find a child of an object, how to change from one scene to the next, and how to add audio may sound incredibly simple, but it’s the combination of a lot of simple things that make a game feel complex.
Keep in mind that there’s a long list of things I didn’t know a few weeks ago. In the interest of not gatekeeping anything, here’s a few examples. Elements on the bottom of the list of objects in the scene in Unity get rendered on top. For interactive elements to work in a scene, there must be an EventSystem in that scene. You can attach a C# script to a Canvas in a scene and then create a button that calls a function in that script on click. Ray-casting exists! All said to illustrate that I didn’t know any of this (or some of these words at all) when I started and it’s learnable part-time in a month. So, please, try it.
Here are the videos and resources that helped me make the Finished Object demo quickly. Thanks again to everyone who made this content.
Creating a Title Screen Menu in Unity - Unity Game Essentials by gamesplusjames
Unity UI Drag and Drop Tutorial by kiwasigames + plus source code
Unity Forum: How to make buttons disappear and reappear in the background?
Unity Documentation on Child Count
Again super simple stuff, but put together… it’s a game bayyybeeeee!
Looking forward
We have big plans on what’s next for the game: iterating on the game mechanics, letting you interact with more characters, and adding more depth to the story and town. For now, I’m excited to leave you with a big thanks. Thanks for reading and joining me on this journey. I hope I’ll keep updating you with our progress (ideally monthly, so please subscribe!). If you want, go play the game and leave a comment.
PLAY FINISHED OBJECT
https://jesscrab.itch.io/finished-object
Oh and here’s the code on GitHub if you’re curious.
Voting ends on Jan 3rd, 2022. You should check out other entries too.
Special thanks to Ester Ellis, Chandler Candela, and Evan Hill for your hard work this month and to June and Asher for the feedback and guidance when we really needed it.