Improve my skills with game engines and programming (specifically Unity and C#)
Goals for the semester
Create unique play experiences
Explore choices with cascading/lingering effects
Not morality systems or obvious choices
Systemic game design
Games where multiple systems interact to create more complexity/randomness
Examples: Legend of Zelda: Breath of the Wild, Far Cry
Unique play experiences
Where any given playthrough will not be the same as another – can be through open world, randomisation, choices, etc.
Aka “Karma system”, where the player’s actions affect a value that swings between good or evil, which then affects how the other aspects of the game work – npcs may shun an evil player and help a good player. Tends to be very binary.
Especially in conjunction with morality systems, when choices are obviously right or wrong, or good or evil. Both choices can be valid, but it will be very obvious which one has which result.
Example: Bioshock, saving or harvesting the Little Sisters.
This is a record of my ideas and thought processes for the 2D platformer project.
My initial ideas for this project ran along the lines of a platformer where instead of directly attacking enemies, the player would instead try to lure them into trapped areas, which would then be activated with buttons somewhere else in the level. I considered a less violent alternative to this idea, by modifying the goal to luring cats into cages, as opposed to people into traps.
I also had the idea of using an art style/level design where the platforms and scenery blended together, with the goal of creating a somewhat more immersive environment than a standard 2d platformer.
As I proceeded I began considering different ideas for how they game should work, and what would be required for a game of this type. Some of these ideas included:
Giving the player one or more throw- or droppable tools – such as catnip-filled toys, fish or balls – to attract the cats to a specific place.
Programming an AI for the cats – what will their normal behaviour be, wandering or stationary?; how will they react to the toys?; will they ignore, flee from or attack the player?; will the toys stay permanently, or will they be destroyed by the cats?
Different behaviours for different cats and/or items – for example, a fish may be consumed(destroyed), but a toy will remain, and a ball will move.
How would the cage doors be triggered? Is the goal to lure the cats and distract them until the button can be pressed, or is it just to get them to the c
Although I brainstormed a few different ideas for sprites, I decided to hold off on creating them in favour of focusing on the programming side.
I made lists of everything I could think of that would be necessary to code it the game, as well as the assets I would need. I did some more sketches of level and character designs, and began working through some Unity video tutorials for 2D platformers. I found the ones on the official website to be a bit confusing, and ended up using several from BlackthornProd’s YouTube channel instead.
I used free assets from OpenGameArt.org as placeholders for the assets I planned to make later. My first attempt, which involved replacing the robot boy default sprites with new ones, had a glitch with the jumping mechanic and animation. After being unable to fix it, I decided to start fresh with a less complicated level design, so I could focus more on getting the basic mechanics working. I also decided to program from scratch instead of using the standard assets, so that I might get a better idea of what was going on in the scripts. While this was not immediately successful – my second attempt was full of errors – I have since learned a lot about how the codes used work and why.
While my original idea was to have multiple cats that had to be guided to different areas, I decided that that would be a bit too difficult – especially as I was having issues getting the basic mechanics to work properly. I considered different ideas that may be easier to implement, but could still be interesting with only one cat. Some of these ideas were:
Luring the cat with a held object instead of a thrown one
Player controls a laser pointer dot to guide the cat (scrapped because it wouldn’t be a platformer)
Limiting the movement of the cat or player/having them in seperate areas
Making the level a maze the cat must be guided through
I also considered simplifying the art style to make it easier to draw and animate – for example, the cat design with no limbs except the tail.
For my final attempt, I planned to code an AI where the cat would wander the platform it was on until it noticed a toy dropped by the player within it’s range. It would then go to the toy, until the toy destroyed itself (after being hit 3 times). The goal would be to get the cat to go to the bottom right corner of the screen. While I was able to successfully code player controls (although the animations still failed), the cat tended to glitch itself out instead of moving, and I was unable to test the toy’s self-destruct for this reason.
While I failed to complete my game, I feel I know a lot more about coding and how things work in Unity. I think one of the biggest things I could improve would be to iterate faster so that I can ask questions quicker – most of the times I had the opportunity to talk with someone about coding I was working on things I knew how to do.
For this project, my main role was Project Manager, and as such the bulk of my contributions were organisational. I also drafted and researched the dialogue (which became the informational signs in the final game), created both of our pitch powerpoints, created the design document (transcribed to this page) and designed the mini-games for each of the game areas.