Game #9: Safetopia
These past couple of weeks I’ve been helping a friend to put together a proof-of-concept for a point-and-click adventure game. I haven’t really worked on a point-and-click adventure before, so I thought I’d lend her a hand to learn the process, the Adventure Creator toolset, and of course, to add to my folio, and this blog! You can play it here.
The game was called Safetopia, and it was set in the eponymous city. Safetopia is a city obsessed with rules, laws, and safety, despite being perched precariously on the edge of a cliff. It’s a kind of comic dystopia where the inhabitants of the city are oppressed by silly warning signs and strict curfews. You play as the Champion of Anarchy, a rebel and freedom fighter sent to the city to release some other rule-breakers from prison.
The section of the game we produced was the introduction, which involved trying to make your way into the city itself. It consisted of two scenes, two NPCs, and one puzzle. The art, design, animation, and writing was produced by Alice Bittisnich; you can find her work here. I handled all the work in Unity, which involved organising the scenes, scripting out the interactions, and implementing the assets. I also did a little bit of sound design and general production, so this post will be a mix of technical implementation and reflection on my thought processes. As I mentioned, I used the Adventure Creator toolkit with Unity to put together the project. Adventure Creator is a great plugin which facilitates the creation of adventure games, both 2D and 3D. It’s quite flexible in terms of how you approach it; you can bringing in sprites, Spriter assets, or use Unity’s legacy or Mechanim animation systems to import assets. It’s also very non-programmer friendly, as the vast majority of interactions you would need in a typical adventure game can be assembled with a drag-and-drop diagram system.
I spent the first day on the project basically following the 2D tutorial on YouTube, which covered almost all of what I needed to accomplish anyway. After setting up a basic scene, and programming out some basic player movement, I could begin to place the important interactive ‘zones’ into the scene. Like the programming system, this was a very visual process, which made it very easy to see how certain elements would be positioned, and which would be interactive. This included defining the walkable area of the scene, called a NavMesh and designated by the white border in the image below, and elements which could be interacted with in some way, shown by the yellow square and lines.
You can see that the sprite for the city itself is divided into two interactive zones: ‘City’, and ‘City Entrance’. This is for a couple of reasons. First of all, by default, Adventure Creator assigns the left mouse click to using or talking to an interactive element, and the right mouse click to examining it. This is useful for PC and Mac users, but people playing on a laptop might have a hard time. So in this scene, clicking the ‘City’ section will cause the camera to zoom in it while the Champion of Anarchy makes a comment (the equivalent of an examine function), before the camera returns to focus on the player. Clicking ‘City Entrance’ will cause the player to move towards the city and into the next scene.
Of course I had to try to imitate 3D space as much as possible, and luckily Adventure Creator allows you to seperate parts of the scene into layers, which shrink the player down or up as they move between them, making it look like they are walking into the environment effectively. The next major task from here was dialogue. This was probably the most labour-intensive, as easy individual line of dialogue has to be organised in the ActionList section, which is where all the programming occurs. I also had to sort out conversation options, which involved creating dialogue trees to determine where the conversation would go depending on which option was chosen.
Once those basic interactions were mapped out, I was able to focus on doing the same to the second scene. This second environment, set at the gates of Safetopia, was a little more complicated, as it involved the player interacting with an object to pick it up, and adding it to their inventory. A lot of the infrastructure for this process was already in place, but it did require a little bit a trickery to make the character bend down, play a ‘picking up’ animation, and making the object disappear from the scene. I think my experience putting together Sai’s Quest really paid off here, as it taught me a lot about the basics of putting together 2D games in Unity.
My original idea for the two environments was to seperate them into two Unity scene files. I tried this, but I soon realised this would be inefficient, as I would need to rebuild a lot of the settings and interactions I had set up for the first scene; not to mention figure out how to keep the player’s inventory items and keep the music playing across both scenes. So instead I cheated a little, assembling both environments in the one Unity scene, and fading the camera out when the player reached the ‘City’ object. In the split second the camera was faded out, I teleported the player and active camera to the second environment, and switched out the NavMesh. This not only made programming the project a lot easier, but it also removed any loading times, and allowed me to work on both environments without having to constantly switch Unity scenes.
The above image contains most of the interactions in the game, including the an early version of the title which springs on to screen during the opening cutscene. At this point, with most of the technical work out of the way, I was able to provide a little bit of feedback on the art and animation. I didn’t really have time for research, but I know from memory that environmental animations are a really important part of making a point-and-click adventure feel alive and dynamic. You’ll notice, even in really early adventure games such as The Secret of Monkey Island, that most of the background environments have at least one animated, looping element. Over the years, this practice became more and more involved, until you have games like Kentucky Route Zero where you have swaying trees, blinking lights, running water, and ambient, staticy effects.
I think it was a priority for Safetopia to include some similar animations, especially since they would be so simple and fast to produce- only a few frames each. Alice decided to focus on the following areas: the moon’s reflection in the ocean, the lights of the city, the neon sign above the gate to the city, and the trash cans outside the gate. The flies hovering above those trash cans were particularily productive I think, as they also drew attention to the fact that the player could, and should, interact with them. Overall, I think these little environmental animations really add to the scenes and make them more engaging and lively- similar to the little bits of motion in Take That, Ya Lousy Dimension! It’s good to see that I’m able to use knowledge from making these other works in my current projects already.
I spent the last few days on the project tweaking text sizes and adjusting animation speeds. Admittedly this was a tedious and somewhat frustrating process, but that stage of any project is hard to avoid. I learnt a lot in the short time spent putting together this project; particularly about the Adventure Creator toolkit, and adventure game design principles. It was quite refreshing to be able to just put my head down and work on a project without having to worry about figuring out a piece of programming, or being bogged down trying to produce art assets. While the genre isn’t really my creative focus, I had a lot of fun putting together Safetopia, and would love an opportunity to work on another point-and-click adventure at some time in the future.













