So in 2017 I’m making a bunch of videogames. The plan is to make 50 of them in 52 weeks. Most of them won’t be very good, but that’s not really the point. I just want to set a goal of a certain quantity to try to force myself into an actual rhythm of creating and learning and maybe getting better at it. Then, after a year of that, hopefully I’m in a position where I can confidently decide if Actually Making Games is something I actually want to keep doing. I’ve already made six games, and you can find them on my itch.io page, here. I’m particularly happy with Fetch and Flightboy.
One of the reasons I am doing this is, in part, to be a better game design teacher. I don’t need to know how to actually make a game in Unity to be able to do my job, but it wouldn’t hurt. And it’s interesting to try to put into practice some of the things I keep telling my students to do. And to lead by example when I tell them to just make a bunch of shit to get better at making. Since my students also have to write postmortems about the games they make, now I am going to try to do that as well.
So the Game Studio 1 cohort was given a game brief, and I had the opportunity to take part in it as well. Essentially, each student has to remake the game Berzerk in the style of an assigned artist. I’ve never played Berzerk buy what I gather is it’s a game where rooms procedurally generate, and you have to shoot a bunch of robots. Movement and aiming are controlled by the same buttons, and you cannot move and fire at the same time. The player, I think, is ultimately trying to escape the maze.
The artist I was assigned was Grandma Moses. Her artwork looks like this:
There’s this kinda idyllic American countryside thing going on. Lots of colourful colonial houses and farm animals and happy people doing happy things. This real childlike and naive approach to perspective, and these mesmerising twisting pathways. The pathways are what struck me the most when I started looking up her images. They’re always winding off into the distance and off the edge of the canvas. They reminded me of books that I had as a kid where you could follow different paths through different landscapes and see where they end up.
Admittedly, I didn’t really do any research into Grandma Moses’s style or artistic intent or what sort of themes she was exploring. Some of the students did do that, and they weaved the artist’s story into their game, which is pretty cool. Me, I just more went with what was present in the paintings and tried to capture that: a countryside of winding paths, happy people, and wonky perspectives. From Berzerk, I wanted to lean into the procedurally generated tilesets and the sense of exploration.So that’s what I decided to focus my game on: exploring a procedurally generated countryside, hanging out with some happy people.
With the help of fellow lecturer Adrian Forest, I figured out how Berzerk‘s level generation works. Turns out others have already written on it. Essentially, the outside walls are fixed, and two rows of four nodes each through the middle of the level produce one wall facing either north, south, east, or west. This allows a huge variety of room possibilities that ensure that all four exits of the room are always accessible on a single path.
Creating this system was pretty easy. The trick was that I didn’t want thin walls and wide pathways so much as wide walls and thin pathways. So I set the background colour to the path colour, the ‘walls’ to grass, and fiddled around a bunch with the thickness of the walls to try to get an effect that looks like the paths in Grandma Moses’s paintings. Then I did some other work so that rather than resetting the one tile, the game creates new tiles whenever you walk to the next area. This was because since the game I’m making was mostly going to be about exploration, it was crucial that the player can head back to where they came from and feel like it is all one larger connected space. (Here is an example in a tweet. I foolishly didn’t keep the gifs I made during development for the postmortem).
After I got that working, all I needed to do was get buildings to spawn occasionally on different ‘wall’ tiles, and for people to spawn in crowds around each tile as well. And that was essentially the basis for the whole game’s generation.
The weird perspective of Grandma Moses’s paintings are mostly just in the building sprites I made, but I also switched the camera from orthographical to perspective and tilted it down a bit. Then I rotated the sprites to face it. The effect is pretty subtle, but it sort of gives a bit of perspective to the game. It also means a bunch of each tile towards the edges is off the camera view which was pretty annoying to deal with.
I needed a mechanic to replace the shooting from Berzerk. I didn’t want the player running around the countryside gunning people down. Instead, I noticed how often people were waving in Grandma Moses’s painting, and how much that contributed to the sense of idyllic-ness each one evoked. So that’s what happens in my game. You walk around the country side and wave at people. Just like Berzerk, you can’t wave and walk at the same time, and the direction you are waving is determined by what directional buttons you are holding down. Essentially I just have a big invisible object that orbits the player as they press the directional keys, and if they are overlapping different people when you press the wave button, they wave back.
Fiddly issue that I was dealing with a lot was getting the buildings to spawn in the right place, without overlapping each other. I never got this perfect, and had some weird OnTriggerStay issue that never resolved, but oh well. I also spent a whole afternoon mucking around with the Sorting Order of different sprites, trying to determine what should appear in front of what, until I found someone on the internet suggesting to just set the Sorting Order to the screen’s y-axis, so that things lower down are always in front of things higher up. Easy.
The rest was just polish. I’ve been playing around in Aseprite a lot, trying to become semi-competent with pixel-art. I’m not a great drawer, but I’ve learned to ape things I find online well enough. I’ve got this real lanky Swords and Sworcery thing going on. I had some spare time, so I kept recolouring my one person model to make a bunch of different people, and just duplicated the already wired-up Animation Controller with the new sprites for each model. This was a super easy way to make a bunch of people. Then I also threw the sprites of my dog Harry in which I made for the game Fetch. Each game, he is just wandering around somewhere and you can find him if you’re lucky.
So there’s a couple of things I did with this game that I’m really happy about. Mostly because they are the exact things I tell my students to do and now I get to be all smug and righteous:
- I got it functional first. I figured out what the game needed in terms of its systems, and I got those working first. I didn’t waste time initially making a bunch of assets, but instead made just enough to test what I needed to test, and got it working with those. Then I still had a week left once it was fully functional, which gave me plenty of time to just make more people and more types of buildings to add variation for each level.
- I reused a bunch of stuff from previous projects. Firstly, Harry’s sprites are reused from Fetch. But all the people, too, are just a tweaked version of the Owner from Fetch. I had to do a lot of work to make the walk animation less terrible, but it was essentially a pre-existing asset from a previous game. The clouds, too, are pulled wholesale from Flightboy, code and all. I just changed their size, colour, and transparency so that they look like shadows of clouds rather than side-on clouds.
There’s a few things I would’ve liked to do that I couldn’t figure out. I would have liked to get a skyline with mountains in the background to give a real sense of a horizon, but I just couldn’t make that work with the perspective I committed to. Some more four-legged animals such as cows and horses would have been great to do, but mostly I just reached my limit of making assets, I think. Sometimes, too, the player can get stuck between tiles if the walls don’t line up perfectly; I probably could have tweaked the generation a bit to make this less of an issue. Really, just narrower doorways between each tile would do it. Code wise, I’m really happy with how the game functions and I don’t think there is anything too janky in there. It all just sort of does what I planned for it to do.
So that’s my game Countryside, inspired by Berzerk and Grandma Moses. You can download it from itch.io, here.