Devlog 9 – This Game Won’t Get Finished and That’s Okay.

When I started development for Rat Race I was very optimistic that I could create the game that I had envisioned, despite having fairly limited experience and fairly limited passion. But the harder I tried to make this game happen the more I realised that game design is just not what I want to do, I find it really hard to get excited about and cannot see myself having a career in it. All of that aside, I still think the concept for Rat Race was interesting and I would like to use this Devlog as sort of a master post about all my ideas for the game and to fully describe every aspect of it that I was unable to create.

The Core Concept:

I initially built Rat Race around the idea of a game with an invisible morality code. When I was doing initial research for my overlining theme (which was capitalism and the whole idea of people working themselves to death), there were lots of possible game mechanics that stemmed from that. I thought through a few different ones, one being a slice of life type of game where the player would have to balance work, money, sleep, and leisure. The idea behind this was that the game was supposed to get more and more overwhelming as it progressed, as a commentary on the struggle that existing can be. This line of thinking eventually led me to make up the fundamentals of Rat Race, which is that it’s a task based game where the player is encouraged to blindly follow the instructions of the game, oblivious to the fact that they have a certain amount of free will in the game. To explain that more fully, initially, the player must complete all the tasks on the task list for the first few levels of the game (I only ever planned on making one level as a demo, -which would be the pivotal level, that I will explain later- but the whole game would probably have around 7 or 8 levels) in order to complete them. So for the first 3 levels of the game, the player would have generic tasks that make sense in relation to the occupation (each level is supposed to represent a different career path) and once all the tasks had been completed, the player would be able to exit the level and be able to progress. However, for the level that I tried to bring into existence (the pivotal kitchen level) I planned on putting in some more questionable tasks alongside the usual work tasks:

So upon starting the level, the player should be conditioned to believe that all tasks have to be completed in order to progress, because that’s what the first levels (and also the concept of task based video games) has taught them. However, unbeknownst to the player, once the top 4 tasks have been completed, it will be possible to exit the level. How that would work functionally would be that in each level there will be an exit door that is only interactable to the player once all the tasks are complete, and would display some kind of message about the door not being unlocked until all the tasks are completed. But for the kitchen level (and every level that followed) the door would unlock after the less sinister tasks were completed. This strategy does run the risk of the players finding out by accident that the door is open once the first four tasks are completed if they just happen to interact with it by chance but I don’t see that as a bad thing.

The tasks listed in the kitchen level are fairly vanilla compared to the sort of things demanded of the player in the levels that follow, and that to me is supposed to represent the idea of people doing whatever they can to get ahead of everyone else. I’d planned on having something pretty dramatic on the last level, perhaps murder or something like that. Something else I wanted to implement was the game getting progressively darker visually and audibly as the player continued down their dark path.

It was also important to me that although the game was going to have 2 endings, I didn’t want to define them as the good or bad endings. If the player completes all the tasks and makes it to the end having done some diabolical things, they would win in the way that they were incredibly obedient, ruthless and compliant. They would make a good worker and were willing to do anything to be successful. And as awful as that sounds, that is just the current reality of the world we live in. If the player is able to figure out that they don’t need to do “bad” things to get to the end of the game, they win in the way that they were one of the few people able to escape the rat race, and that they have a lot of independent thought and don’t have to go through life the way that it has been drilled into us for generations.

The Interactivity:

Something I have tried to make clear over and over again is that I wanted Rat Race to have a very very high level of interactivity, I wanted it to be visibly engaging and for every object to have either some sort of small animation or witty/sarcastic commentary. I wanted to immerse the player in a nice environment where everything was an area of interest, to make up for the lack of mobility. The player can move around either with the mouse or the arrow keys but at the end of the day it was always going to be a point and click game so there was never going to be insane cinematics for the player to experience.

I wasn’t able to execute it, it was a very optimistic goal and I just didn’t have the commitment to the idea to make it happen, maybe if a few years down the line I realise I was meant to be a game designer I will give it another go, but this time around it just didn’t happen. I did manage to get all the backgrounds done though, and it is quite satisfying to see the little rat character run around in the environment.

The Art Style:

I wanted to make the game look as ambiguous as possible when designing the character, backgrounds, and assets. I aspired to make nothing clear to the player except that they had to complete tasks. I really like how all the backgrounds turned out, the goal was to make them generic work backgrounds and I think that’s how it turned out.

I also had plans to give the rat character different hats depending on the level (so they’d have a little chef hat on this one) but that was another thing that never came into fruition. With the character, I wanted to also make them not too definable except that they were a rat. This was firstly because I wanted them to not have a lot of significance, they were created to be a faceless work drone and that’s what I wanted to show. It’s sort of my take on how employers view employees as nothing but numbers, and are quick to replace them when they die. While that was my main intention, it was also so that if people wanted to kind of imprint themselves on the character it would be easier, since they’re not gendered or very customized at all.

The conclusion:

I am not a game designer, I am just a person with ideas and no drive, and as much as I wanted to put my heart and soul into creating something playable and fun, I’m just not cut out for it. I’ve had fun coming up with concepts and art for Rat Race, but this is as far as it will go.

Here is the doodle that started the project, it feels fitting to have it here.

Devlog 8 – With a Little Help from my Friends

Except they’re not my friends, they’re strangers online.

When I chose to use adventure game studio, it was in large part because it felt like the best engine to use for what I wanted to make, but since it is an older engine I was scared that there wouldn’t be a lot of online resources for difficult hurdles. Luckily for me though, there is a very active forum base for AGS along with many helpful YouTube tutorials on incredibly specific situations.

https://www.adventuregamestudio.co.uk/forums/index.php?topic=51533.0

This is a link to a discussion about if/else statements. When I was trying to make the toastie task work, this was a very helpful forum for me. The idea is that the player collects the uncooked sandwich, plugs in the toastie maker and then cooks the sandwich, and the code for that (simplified) is that if the plug interaction has been completed, then the toastie gets put in the machine (lose item toastie, toastie maker change sprite) however if the plug interaction has not been done yet, the game will give the player a message saying that the toastie maker won’t turn on for some reason.

When the code wasn’t working, I took to the internet to see if there were any similar situations that people were having trouble with, and thankfully there were.

Initially I was having trouble with telling the game that once certain objects are visible, then new interactions can take place. I tripped up a little bit with that but I was eventually able to figure that out myself through trial and error, but once I had all of that fixed it was giving me a different error that I could not figure out on my own. I basically had the same problem as the original poster, which was just not using the brackets correctly, which I think confused the engine.

I don’t really have too many specific examples of times that I’ve used the forums for guidance, but so far every problem I have encountered has been solved with the assistance of AGS veterans who choose to help confused people like me on the forums.

This youtube playlist was also pretty essential to helping me learn the basics of the engine. There’s around 40 videos so a massive thank you to https://www.youtube.com/user/densming for taking the time to put so many tutorials out.

Devlog 7 – This isn’t a devlog

This is a post about the riddle school flash games I played on Newgrounds when I younger, and probably the largest inspiration for my task based game.

I played this game when I was in primary school and I would say it was one of the first puzzle games I played, and it definitely inspired a bit of a love for point and click games. The game isn’t very long and the puzzles are quite simple, I think there are only around 7 interactions needed to complete the game, but I found what was a really entertaining feature of the game was that pretty much everything in the game was interactive and would warrant some kind of snarky response from the main character:

Although this is by no means the first or only game to have high level interactivity, it just made the biggest impression on me as a 9 year old. It’s something that’s really important for me to have in my own game because I feel like it just makes games more interesting than having default responses like “I don’t need that right now,” applied for every unnecessary item that is clicked on. Something I would like to change however, (quite ambitiously) is that I would want most objects to have small animations play once the comment is made about them. I have done a few but there are loads more I need to get finished.

Riddle school spawned 4 more instalments, with each one getting bigger and more interesting (except for number 4 which was made only to contextualise 5) and I happily played through all of them, enjoying the puzzles increasing complexity and the artistic changes.

I think that there’s a certain charm to flash games, which might just be a nostalgia thing for me since I was playing them through my childhood which was arguably the most carefree time of my life. Regardless, they somehow just have a very raw, sarcastic, and casual feeling to them which I really enjoy. There have been lots of other games that I have played that start with a character describing everything in their vicinity (The Last of Us, Life is Strange, The Walking Dead) but because the general mood of those games is quite different to the atmosphere I’m trying to create in my game, Riddle School makes a much better reference.

For a game like The Last of Us, as much as I loved it, a lot of the interactions with items and surroundings hinted at something related to the story or something that was important knowledge about the character. That definitely isn’t a bad thing, it’s a really good mechanic for teaching the player things about the character/game a little more seamlessly than the game just straight up telling them the information; although there are times where it’s a bit jarring and the intentions of the interaction are a bit too obvious. For example if a character picks up a hat and says something like, “Hey my old baseball cap! I haven’t worn this since my brother died in that car crash 3 summers ago, he was everything to me.” Stuff like that can feel a little too unnatural and on the nose for me. But back to Riddle School, there were very few interactions that provided hints or helpful information with regard to the player progressing in the game; most of the remarks were either nonsense or just mildly sarcastic commentary on the artistic choices the developer made. Here is my favourite example:

Devlog 6 – Background Radiation

Today I want to get all the art done for the game. It’s incredibly ambitious but honestly, I can’t deal with coding right now and I think if I got a substantial amount of art done, it wouldn’t be such a bad thing that I didn’t code anything today.

Here’s the vague sketch for the staff room, now I have to outline all the interactable things (which is everything) and neaten them up. I like to keep the first draft really sketchy so if I have to make any changes it isn’t too painstaking. The process is that I do the rough sketch, do final lines for all the assets, and then blend out the background sketch so there aren’t doubles of anything.

So here’s what the staff room looks like now that I have outlined all the assets and made them into their own individual images. Importing them into adventure game studio is easy but depending on how many things are in the room, very time consuming. But once I have lined up all the assets with the original background, I have to change the background a little bit so there is no overlap, and that looks like this:

I doubt this is how the professionals get it done but so far it’s been working for me. So once the assets are all added in, I can give them all their own properties and fun little captions to pop up when the player clicks on them.

I put together this little gif of the stock room to display the process better than my words ever could.

When I think about the way I have chosen to make the background, I would say I have drawn inspiration from old flash games that I used to play on sites like newgrounds, funnygames, and ampgames. I have always been someone that enjoys the simplicity of adventure/ puzzle games. I think that mostly comes from not being the most technically skilled gamer in the world, as I don’t have to be good at platforming, or move combos or understanding skill stats. At their core, adventure games just require the player to think a lot, so they’re accessible for everyone. I’m not saying I only ever played puzzle games, but there’s just something really wholesome about the adventure game experience, yes you can get stuck and it can get incredibly frustrating but the player isn’t going to run into the obstacles of other game types. There’s no concept of repeating the same part over and over because you keep dying, there’s no losing because your aim is bad, it’s just putting things together in your head and feeling a lot of satisfaction when you solve parts of the puzzle.

As much as I am quite married to the idea of my game being primarily point and click, I have definitely also drawn inspiration from slightly more free roaming games like goose game. I like the idea of having players move around with the arrow keys or clicking on areas so players are allowed the option to make the game more comfortable for them. What I like about goose game is that although it isn’t a point and click game, the principal is the same in that you have a task list that you have to solve little puzzles to progress through. The key difference to me is that while in goose game there are scenarios in which the environment affects the player’s ability to complete tasks, whereas in Rat Race the puzzles will be solely solvable by interacting with objects.

When choosing the style of the background, I went through a few different ideas. Initially I lined everything with a sort of chalky brush to give the game a softer feel, however I ended up ditching that idea as it just wasn’t as aesthetically pleasing as I had envisioned. Then I moved on to a lineless art kind of approach, but that also looked nicer in my head so I moved on to the style that game is currently in, with smooth lines and pretty soft shading.

Devlog 5 – Toast Trouble

One of the first tasks I decided to work on was maybe the most simple one of the game, which is for the character to go to the fridge, collect an uncooked sandwich, try and toast it, plug the toastie machine in, and successfully toast it. Right now I’ve go the collecting of the sandwich and putting it on the toastie machine sorted, so today I want to work out the mechanics of making the character have to plug in the toastie machine. The current code looks like this:

and it works as it should, but I still have to make the player lose the sandwich from their inventory after using it.

It was refreshingly and surprisingly easy, all it took was this command player.LoseInventory(iSandwich); in the oToastieOpen_UseInv bracket. Onwards to the plug socket.

It’s difficult, I knew it would be. As it currently stands, my code looks like this:

What this should be telling the game to do, is that if the toastie maker isn’t plugged in (oSocket.Visible = false), then the game should tell the player that the toastie machine isn’t working. To its credit, the game does do that, but immediately afterwards, it puts the toastie in the machine and makes the plug socket visible for some reason. I think I’m supposed to have an if/ else function here, but the else part kept on giving me parse errors. Maybe the visible socket thing isn’t a strong enough anchor for creating conditions that allow object interactions.

Okay, I had a look at the AGS forum, which has been incredibly helpful for getting answers to many of the things I have been struggling with, I went over this entry: https://www.adventuregamestudio.co.uk/forums/index.php?topic=51533.0, and it helped me a little bit. So now my code looks like this

but, it still doesn’t work the way I intend it to. Now what happens is that as long as the player has yet to interact with the plug, the toastie machine stays broken, however, once the player has completed the plug interaction, the game gets rid of the socket objects, and it still says the toastie machine is broken.

I think I might understand the issue though, so all is not lost. I believe that rather than using the visible commands as the basis for other actions, the code is just making them the actions. So it’s like I’m saying if ________ then make the sockets visible/invisible, when I really want to be saying if the socket is visible this thing happens, if the socket is invisible something else happens. Understanding the problem is the first step to fixing it I guess, so I’ll try and figure that one out.

Devlog 4 – The Toils and Troubles of Making my Cauldron Bubble

I want every asset to have a little animation to make the background more interactive, and it is hard.

This is a rough idea of what I’d want these pots on a hob to look like, ideally there’d be another 2 or 3 frames to make the fire look smoother, but for now all I wanted was to make the illusion of movement just to test if it works.

Currently… It does not work. At least not in the way I want it to. I’ve gone through lots of different codes and lots of different forum pages to try and get this little animation to function the way I want (which is that I want it to constantly loop for the duration of the game) but the closest I’ve been able to get is that it performs a little animation once a minute.

What the code should be telling the pots to do is to first lock the view so that it has no reason to be displaying anything else, then setting the starting frame of the animation, then choosing the delay (the speed essentially), and saying that the animation should play forwards. All this is meant to happen when the room loads since that’s what function room_load is supposed to do, but it doesn’t for some reason. So I have to spend more time scouring forums to figure out why my pots won’t do their little animation.

I promise this isn’t a static image.

While this is really really annoying and I would love to figure it out so I can have a universal script for animating small background assets, I have about 4 more rooms to draw and make assets for so this will have to wait.

Devlog 3 – There’s a Rat In Mi Kitchen

The player character for my game is a rat, and as a result I’ve had to draw a lot of rats. Initially the rat sprite looked like this:

This was because I wanted the character to look mostly innocent and a little ambiguous. I liked the idea of the game potentially getting more and more twisted but the character still looking like a generic rat. However, when it came to animating a movement animation for my little rat character, it became very obvious that that design is not optimised for movement. So I looked at a few rat run cycles like this one: https://www.youtube.com/watch?v=MEQYjEWBfWg&ab_channel=MaryamAbdul and changed the design a little bit. I work mainly in paint tool sai for sketching out frames, and then use Gimp or an online gif maker to test them before importing them into AGS.

I made a short run cycle with a few base frames to get a feel for the movement, then I made a clean lined version which I coloured and was ready to import into AGS. I think there’s still room for improvement with the run cycle, there are features like the tail that I feel I could get to move more smoothly. However, I would rather have all the animations done and working before I start going back and perfecting them.

So here’s my rat running around in the kitchen, I still plan on implementing a nicer idle sprite (as it stands right now it’s just the first frame of the run cycle) and also implementing a small idle animation if I have time after completing all the fundamentals.

As AGS uses views and code to make animations happen, I thought I’d include this screenshot of the frames how they’re displayed in the view screen. As my game is mostly a point and click adventure (although there is the option of moving with the WASD keys there’s no need for up and down movement sprites.

Movement is luckily one of the codes that AGS comes equipped with, so all that I really needed to do was to create the frames and import the existing script onto my character. I’m still having doubts about the background, something about it feels a bit off to me and I can’t quite figure out what. I also had a dream last night that my game was in a pixel art style, and for a moment I did think about overhauling all of this and redesigning everything. But then the reality of how long that would take set in and I think I will stick to the current art style.

Devlog 2 – Background / Assets and assets and assets

Since the levels in my game span around 7 or 8 rooms, I have a lot of backgrounds and assets to design and finalize. The levels are all shown as different careers/ employment opportunities, and the one I am focusing on is the culinary level as that’s the first level that I aim to show hints at the idea that the player doesn’t have to do the tasks to complete the game.

So for the chef rat I have decided on 7 rooms; the kitchen; the staff room; the dining area; the walk-in freezer; the back office; the storage closet; and the back alley. The first room I had designed was the kitchen:

-Painted in paint tool SAI, my preferred art app for essentially everything, even animations-

I work in a kitchen at a Wetherspoons pub and I pretty much modelled the kitchen off of the one I’m used to working in, with a few adjustments to make the background appropriate for the sliding flat view that my game has. After coming up with the design I had to decide how much of the background was going to be interactive. From the game’s conception I had always envisioned a highly interactive background, either by giving objects small animations (either idle or that activated when they were clicked on with the ‘interact’ feature) or by having the narrator (or the player character) making funny remarks about the objects.

So with that in mind I realised I would have to make each background item an asset, so that’s what I did:

I haven’t given them all interactions yet, but in an ideal world they will hopefully have fun animations or commentary before my deadline. After I had outlined, imported, and placed all my assets into the kitchen, I had to change the background because there was all sorts of overlapping and messiness with the old background showing the objects before they were assets. I also felt like the grey background made the whole room look a bit dull and there wasn’t a lot of contrast going on, so I chose yellowy orange with a few different textures.

But this made a sort of floating effect for all the assets and didn’t really give off the style I was going for; it almost looked too defined whereas I still wanted the assets to look like a background rather than a bunch of individual assets. So I decided to try and make the background more interesting without making it look too crowded.

As I wanted to make all my assets interactive I had to import them into AGS as characters with their own individual views. The way AGS animates is with the views for an asset having several different frames and using code commands to know when to activate the different frames, so it made more sense to make my objects into characters. Also characters have more benefits and freedoms to them than objects do. While I still have lots of work to do in regards to making and animating assets, it’s good to see the first room start to come together.

Devlog 1 – Choosing an Engine

The first step I took towards actually creating my game was choosing what engine to create it in. Honestly I am not very talented at coding, I feel a lot more at home when it comes down to the more art based side of game design. So I had to choose an engine to accommodate that. I settled on Adventure Game Studio as it is really helpful to beginners and people less technically inclined. There are also a lot of helpful resources/tutorials for it, as well as a pretty active forum page full of people eager to help with specific issues.

This was the first tutorial I watched and it was one of the most beneficial videos I’ve found in terms of helping people who are a little slower when it comes to understanding how code works. Obviously I aim to make my game more in depth than this tutorial allows for, but in terms of getting the basics for most actions into my head, it would’ve taken me a while to find my footing without videos like this one and other similar ones.

Adventure game studio comes packed with a few presets for different type of adventure games. I chose the Sierra style format because although my game likely has a lot of aesthetic differences than the typical adventure games people tend to create in AGS, it seemed like a very fitting engine to try and create my vision with.

Before being 100% set on using AGS, I did a little research on games that had been created with the engine in order to see the versatility and the limits of it.

One of the games I played to understand some of the limits and possibilities of the engine was Bruises by Leafthief.

The whole feel of the game was incredibly melancholy and soft, with a very comforting message. I really liked the artistic choices, the colours were very good at making the atmosphere that the developer was aiming for. Although ideally I would like my game to be a bit bigger and longer, for what it is, bruises is a really beautiful game.

Talking technically, the actions of the game were mostly point and click problem solving but there were also a couple of puzzles where the player had to fit pieces of writing or pictures together in the correct order and I liked that little intermission from the point and click gameplay. Although I probably won’t implement something like that into Rat Race, it did feel very fitting for Bruises and made for a nice slightly diversified play style.

All of the little animations were adorable and nothing about the game felt static, which is something I’d like to achieve with rat race; I don’t want any of the backgrounds to be still and uninteresting. Even if there isn’t a crazy amount of movement happening, I’d like people to be charmed by the little background animations and feel a bit more immersed.

Menus

A couple of different ideas I had for the pause menu / task list. I think the style of the bottom is more visually appealing with the colour scheme and font, but I quite like the simplicity of the top two designs so hopefully I can find a way to marry those ideas together. I wouldn’t want to have a separate pause menu and task list.

Blog at WordPress.com.

Up ↑

Create your website with WordPress.com
Get started