Preparing the Sprawl: On Developing Lil’ Guardsman’s Code Foundation
Programming should be seen as an act of service to writers, artists, and designers.
Getting some rest… with a new job!
Before I started working on Lil’ Guardsman as its lead developer, I had been working non-stop in gaming for 15 years. It seemed like it might finally be time to slow down and take a break! But no. My last job had been at Unity supporting teams using the engine, and I was missing making games myself. I wanted to go one more round in the ring!
I stumbled upon a job posting for a lead/solo dev on Work With Indies from a brand new studio in Toronto, Canada called Hilltop. Its founders Artiom and Scott had a strong vision, but desperately needed someone like me. Their posting linked to a vertical slice they had made with a different developer, so there was something I could play and try to understand what they were hoping to make. I immediately recognized that the prototype had a lot of potential, and even before I was offered the role I started working on how to design and construct a codebase that would support their vision.
The Technical Pillars Evident in the Lil’ Guardsman Prototype
Playing the vertical slice, I determined the three technical pillars of the game that I’d need to build for:
Pillar 1. Above All Else, Lil’ Guardsman is a Narrative Game
There are a number of specific quirks and requirements when it comes to narrative games. Like the fact that they involve WORDS... many, many words. The game would need a robust framework to accommodate its writing, handling player decisions and showing the outcomes. I recognized that there would be a need for multiple different conversation systems - both graphical and pure text.
Based on this, I made the suggestion to use Yarn Spinner for Lil’ Guardsman. Graphical systems tend to have problems with scaling, and issues with localization and doing quick edits. And through early conversations with game director Scott Christian who was responsible for leading the writing team, I decided that Yarn Spinner was the best solution for the project.
So. Much. Text.
Pillar 2. “Papers, Please”... but Turn-Based
Papers, Please’s gameplay has a ‘twitch’ aspect to its gameplay, due to the fact that it occurs in real-time, creating a sense of urgency and danger. From a code perspective, there are specific requirements to accommodate timers that I could tell would NOT be needed for Lil’ Guardsman.
LG is Papers, Please’s cuter, cozier cousin. It is turn-based with no timer, and the tension comes from the player having a limited number of actions to take before being forced to make a decision. This makes for a slower, in some ways more methodical type of game. Instead of a tight time-limit forcing you to rapidly analyze documents, LG allows the player to figure out the answers while taking it slow, breathe, laugh… and then decide someone’s fate.
Pillar 3. Made In Unity
The vertical slice was made in Unity, and although Scott and Artiom aren’t programmers, they already had comfort working with it. This is not a big deal in the long run - there are pros and cons to any engine, and I try to be flexible - but it’s a bonus when there is already familiarity starting a project. And the fact that I was coming off of five years working at Unity helping other teams solve their problems made this feel like a good fit for me.
Prototype Conclusions
After playing the vertical slice and thinking about the project, I shared my plan with them about how I would tackle building the game and they hired me. And then the fun started!
Into Production
“It’s just a small, charming indie game.” No project is ever as small as you think it is! The scope of Lil’ Guardsman started to grow quickly. To help tackle this I was lucky that the team added an additional programmer, Adolfo, to the project. He had been working on a separate Hilltop game project, and when it wrapped he joined Lil’ Guardsman to assist me in the code. This was a relief, as being a solo dev can be stressful and nerve wracking (I mean, half of the time we are just making it up as we go along, right!?).
The challenge of bringing on an additional programmer, especially half way through production, was that it meant someone else was looking at my ‘dirty laundry’ (my codebase). I had real anxiety about having outside eyes on what I’d built. Fortunately, Adolfo turned out to be a phenomenal collaborator and dove in head first. I felt a lot of relief to have another hand helping on the programming side, and thankfully he didn’t find my code to be too much of a mess.
The author and their wife and co-developer Diana.
The Final Product
As I write this, Lil’ Guardsman is so close to being done! I am very pleased with how this project turned out. At a glance the game seems straight forward, but the design is ambitious and lots of neat things happen! I’m proud that the code foundation has been stable enough to support the variety of gameplay. The porting team is wrapping up its work bringing the game to consoles, and I’m proud to say that although (like always) there were issues, there were way fewer than I thought there would be.
As I wrap up my work on Lil’ Guardsman, I think I am ready to really take a rest… FOR REAL THIS TIME! My son was born a few months ago during the production of this game, and I’m committing to taking a break to focus on my son and my wife. I am fortunate to be able to step away and take the time away from gaming, but we’ll see what happens later… I might get the itch again!
I’ve always said that the role of programming should be seen as an act of service: my work with the code is in service to writers, artists, and designers. It is my job to make sure that our game’s cool, funny concept, and great story and world get into the hands of players to experience it. Although none of it would happen without us, programming should be kind of invisible. If nothing breaks, it's a good product. I hope people discover our funny, witty and heartwarming game. And if you play it and discover any bugs, well that’s Adolfo’s problem because I’ll be busy playing with my kid!
Italo Capasso is a game developer based in Bogota, Colombia. He and his wife Diana Pacheco make games with their company Glitchy Pixel. He worked as a console support developer for Unity for 5 years, before returning to his love of indie game development with Lil' Guardsman. Italo is also professor of game design and programming at Universidad de Los Andes in Bogotá, Colombia, and the ARKDE initiative.
Read more about:
BlogsAbout the Author
You May Also Like