Hey all,
This was my first game jam. I worked with @technomancy / Phil on Tower Institute of Linguistics. It was also the first time I’ve worked seriously on a game since high school, when the three other people who got to take programming classes instead of MS Office ones made an “energizer bunny” endless platforming game in QBasic. I’m not really sure endless platformers were really a thing in the early 90s but we tried. My bread and butter work involves programming, I’ve been an artist my entire life, and have recently started making music.
I’m really lucky to have worked with Phil on this, his experience with past jams, and familiarity with both the TIC 80 and game logic really smoothed out a lot of problems we would have otherwise. In addition to being my first TIC80 project, this was also my first real project in Fennel – I’ve worked in Clojure previously and dabbled in elisp. I mostly stuck to the artwork and music engine, and the confusing iconography of the HUD in Tower is my fault, though I suspect it’ll be something easy to remedy.
Anyway, some things I learned from this:
Embrace Constraints. This is true for all art, and I think it helped a lot here as well. TIC80 has some severe limitations. When Phil was first talking about this idea, I wanted to do the music, because I want to get more into doing music for video games in general, and I’ve heard jams are a good way to get started in that. I just finished putting together an album that plays around a lot with vocal synthesis, and thought it would be fun to take some of those same ideas and perhaps mash it ideas from one of my favorite movie soundtracks, Arrival, a movie also about learning a language.
And then Phil’s like, well, I want to do it in TIC80 and I poked at it a bit and had that hope dashed. Not because of the tracker, but because of the 4-bit wavetable engine. But it got me thinking: What could I make with this? The game doesn’t really have “levels” or “areas”, the game is about building a thing that gets more chaotic and faceted as you go. I thought about some “ambient sound status monitoring” stuff I’ve played with in the past, and ideas from generative modular synthesis I play with now, and instead figured I could make something that evolved to respond to gameplay. The music in Tower is based around two ideas: Euclidean Rhythms and Shift Register Sequences that are quantized to a scale, both of which I’ve toyed around with but never really used seriously.
We talked for a bit and it seemed like an idea worth exploring. I then offered to take on the artwork; I have a degree in visual art and have worked in a variety of media before, but not pixel art. Let me tell you: 16 colors and 8x8 tiles/sprites is a heck of a limitation to work in. We initially talked about making the world grayscale and using color solely to represent the splintering languages of the tower’s workers. I did a lot of sketching in ProCreate and going with the dark blue/brown/beige base colors instead of gray provided more atmosphere. Similarly, texturing instead of flat surface colors also provided a lot of character.
Cut Scope. We came up with a lot of fun ideas for other things you could build on the tower, and other mechanics that might come into play: tool shops to increase the productivity of your workers, rock-processing shops to make building more efficient, food-processing shops to make the food go farther, elevators to make vertical transport quicker, having to widen the tower as it gets taller, some sort of tech tree enabled by building libraries and educating your workers, all of which got cut. Mostly for time, but also for keeping the core gameplay simpler. Build up, provide for your workers. The injury/medic mechanic was a late addition, mostly because we wanted to include health care alongside shelter, food, and education in the “these are the things a society must provide its people in order to succeed” theme of the tower.
Playtesting is the equivalent of Iterative Development. My bread-and-butter work involves developing novel user interfaces to help people to interact with computers for semantically difficult things; there is very little prior art to draw on for a lot of things I’ve built. If there’s anything I’ve learned from this work, it’s “iterate, iterate, iterate”. Get something built to test an idea, figure out what’s off about it, and repeat. It seems like game development involves a lot of similar problems. While there’s prior art to pull from for “build a tower”, there wasn’t much for “you have people who can’t communicate with each other and that’s a problem”.
There were a lot of things about the way the sprites communicated information to the player that improved over the course of playtesting. The HUD in particular was a late addition to the game meant to help understand the needs of your workers, but I was trying to keep it compact because we were still thinking you’d have to expand the tower horizontally as you built up. It went through a few iterations, and ultimately I added the icons to the build menu in a way that I’d hoped would help people correlate icons with shops and with needs; it still IMO needs some work, but it’s much better than where it started.
Mise en place. As someone with ADHD, I hear this from my partner constantly when cooking. It’s French for “putting in place”, which in this context means getting your build pipelines and all the boring technical stuff figured out and easy, so you’re not struggling with that while also trying to build the thing. Thankfully, Phil has a lot of experience with TIC80 and got that all setup, and I think it was a huge help.
Have fun! I think the most important part of this whole experience. I had a blast and plan to do more jams in the future. I played around with a platforming demo in TIC80 after the jam was over and already my brain is planning out a novel metroidvania puzzle game.