Week 11 – Physics in Games


Today we learnt about the use of physics in game design. Physics can be a blessing and a curse in games, and is very hard to implement in a fun and interesting way. Games like Half-Life 2 use physics for puzzles, however they are usually limited to 2D like puzzles, and are always in non stressful locations. This is because it is hard to spatially reason in a puzzle environment when you are manipulating the pieces using a character controller. 3D puzzles are much more conducive to VR games such as Half-Life: Alyx which has interesting 3D puzzle mechanics (again, only in quiet spots).

Credit: Valve
Credit: Valve

The reason that these puzzles always take place in quiet spots is because they are often too complicated to solve whilst also having to deal with fighting enemies.

This week I finished work on all the levels and implemented audio (which I can’t really show in a blog so you’ll just have to trust me).

Full Tutorial Level
Full First Level

Week 10 – Terrain & Lighting


Terrain can be made in games in many ways. Today I learnt that there are a few specific ways. One of these is a Node Graph-Based Interface. This comprises of different number generators working together to create a terrain. These number generators can be edited and tweaked in order to create the desired level effects. Another method is Perlin Based Fractal Noise. This is more used for procedurally generated worlds and creates mountains well, because it creates peaks and troughs in the terrain in an interesting style.

Credit: Codemahal

It is important to populate your scene with vegetation and shrubbery, otherwise it can end up looking bland. There are many systems for this, most involve specifying areas that the trees can and can’t spawn, and then randomly assigning weights to those areas in order to put vegetation there. A game like breath of the wild (which is open world, but not procedurally generated) probably used randomly placed vegetation systems and then had a designer come in and tweak the positions / remove trees in order to create a more interesting environment. This vegetation spawning method also applies to other field and mountain paraphernalia such as rocks or ponds.

Credit: Nintendo

This week I implemented a splash animation at the start of the game. I created this in After Effects. I also added a flat colour that fades on screen when you die and when you transition between levels.

I have decided not to have a life functionality, instead you will be able to play through the game as many times as you want. This was mainly because the levels may be too hard for lives to be fun, and I did not have enough time to implement a full mechanic like this.

Frame Excerpt from the Splash

Week 9 – 3D Level Design and Pacing


Level Design is one of the most important aspects of Game Design in general. I learnt this week to think of it in terms of connectivity between the levels. There should be something unique and specific happening at each location in order for the levels to be memorable to the player. Each level should be linked with each other one and be interconnected. There should be a distinct way of moving between each level.

A game like Half-Life: Alyx has a creative way of linking levels, which is by having each level feed into the next seamlessly. Each level ends with the start of the next level, with even the loading screen be a grey version of the space around you.

Credit: Valve

Another way of thinking of levels in games, especially games that utilise continuous game design, is through molecules. Thinking of each unique location as a molecule allows you to connect hem in interesting ways, and think about the player path. You can connect the molecules in creative way that allow for more interesting paths.

A map like Mirage in CS:GO does this well, because they have interesting and complicated paths between the bomb sites and the spawns.

Credit: Valve

This week I added coins that the player can collect to my game. The score in the top left will go up once a coin is collected. There is also a gem at the end of the level that the player is trying to collect. This now moves the player between levels.

Week 8 – Character Controllers


This week’s exercise was to work on a game that iterated upon chess. We had to choose certain chess pieces to use in a dungeon-crawler type game that incorporated different character classes that had movement and combat tied to them. In my group we decided that we would have 3 separate rooms in the dungeon that you would fight in. The first room contained 3 pawns, the second contained 3 rooks and the third contained a pawn, a rook, and a queen. You use your king to move around which is followed by your two bishops (king’s guards).

The attack and movement system were based upon a dice roll, which determined how far you could move your piece. If you rolled a 6, you could choose to move 3 and attack 3. This means that there is a lot of strategy in deciding how many points to put into movement and how many to put into combat. Unfortunately, I didn’t get a photo of the game.

Credit: Kypello

This week we covered character controllers in games. They are the fundamental input system in any game with movement and are important to get right. It is most important to get right certain specific aspects, such as: input buttons (which keys do what); character movement (movement on slopes, steps, flat ground and how they turn); camera position (what the character sees, over the shoulder view, birds eye etc); and how animation ties into movement, such as inverse kinematics.

Different games require vastly different character controllers, such as how an FPS will usually require snappy, responsive movement that makes aiming and moving easier. On the other hand, third person games will usually have different kinds of movement systems that allow for greater range of movement at the sacrifice of the inputs feeling perfectly mapped. A game like Apex Legends is an example of well thought out movement with a high skill ceiling.

Credit: Electronic Arts

This week I added a ‘crusher’ to my game, which is a long spike that hits the floor and kills the player:

Week 7 – Developing Systems


This week we covered analysing games as systems. We learnt that the player will mostly not understand how the game works at a systemic level, but should be driven and interact with it at a surface level instead. On the other hand, a designer should be interacting with and tuning a level at the systemic level and be able to drive the players experience through this.

Game systems are often recursive, which means they will be made up of other systems, which can be made up of other systems etc. The main elements that systems are built with are: objects, properties, behaviours and relationships.

Recursion

This week we worked on a Snakes and Ladders task which comprised of fixing the ‘broken’ game of Snakes and Ladders. The reason that this was defined ‘broken’ is because it does not conform the Sid Meier’s definition of a game: “A game is a series of meaningful decisions.” Our approach was to add in a mechanic which allows the player to choose whether their dice roll moves them forward of backwards. This means that the player is able to make a “meaningful decision” to either move towards a ladder or away from a snake. I felt this was a smart way to introduce decision making, however it doesn’t exactly allow for tactics, as there will usually be an objective ‘right’ decision. Therefore the game is still rooted in luck.

Credit: Yellow Mountain Imports

Because of this luck element we decided that to further push the strategy aspect of the game, you should be able to use two counters, and choose which one you move with your dice roll. This makes luck much less important to the game, and adds a higher level of strategy, making each decision somewhat more meaningful.

This week I imported the assets into the unity project, and started to use the tilemap to mock up a level. I also tweaked some of the movement mechanics in order to make the game feel more fluid and responsive.

Week 5 – Game Spaces and Level Design


Game Levels:
This week we covered the different aspects that create levels, and how they can be defined. There are ‘Discrete’ levels and ‘Continuous’ ones. An example of discrete levels could be Super Mario Bros, as it is split into distinct playspaces that have a clear beginning and end. A different form of level design would be The Legend of Zelda: Tears of the Kingdom, which has a ‘continuous’ level design structure, because there are not clearly presented playspaces. Rather, the world is filled with areas that the player can interact with freely, and is not confined by a linear system. Discrete levels can be important in games that revolve specifically around stories because it can be almost like a chapter system, as a book would have.

Credit: Nintendo

Another important reason to consider levels is that computers and consoles have only a limited memory space, so they can potentially only have one set-sized level loaded at a time (although as computer hardware gets better over time this requirement for levels diminishes in importance). Player progression is often tied to level systems, as it is a clear, linear indicator of how far a player is through a game. Problems arise when looking at open-world titles approach to progression, as it often is hard to tell specifically how far a player is through the game.

Game Mechanics:
Game mechanics are a vital part of creating fun and consistent games. In order to make the game feel as if player input has meaningful feedback, it must give consistent outputs to the player. This is called ‘Standardising’. An example covered in the lecture was jumping, as it is important to make the jump mechanic feel consistent. Movement is one of the most important part of platformers, so for a jump to feel inconsistent would undermine any other fun parts of the game. An important thing in games that have enemy projectiles present is to create safe zones. Whether these zones adapt to the gameplay or are static, clearly presenting them to the player is important because otherwise it will lead to the player feel as if they are losing control.

This Week’s Progress:
This week I worked on sourcing assets to use in my mod. I found several tilemaps to choose from, however I am leaning towards this tilemap:

Credit: Szadiart

I have also found this character spritesheet called “Fumiko”

Credit: Sylvius Fischer

Week 4 – Design Fundamentals


This week we learnt about design fundamentals and pillars. Design pillars are the foundations of games that keep them together and usually define their genre. An interesting idea that was talked about is that the fundamentals can be split up into three different categories: mechanics, dynamics and aesthetics. Mechanics are linked to the rules of the game, such as a movement system. Dynamics are the activities the player will be interacting with, such as how a movement system is only useful if there are levels or obstacles to surpass. Aesthetics is where the fun aspect of games come in; they are how the game is designed to evoke emotional response in the player, be that happiness or anger. These all contribute to making a game that is fun to play and has good structure.

Gameplay loops are an interesting concept that I’d never put too much thought into before. A key example of a gameplay loop could be Tetris: move ‘Tetronimoes’, place them at bottom of screen, aim for a completed row. This is a simple premise, yet leads to a highly interactive game that has a high skill ceiling.

Credit: Sega

I have now almost fully implemented the ‘walljump’ system. Everything works, apart from one bug, which is that you can walljump off the same wall twice. I will try and find a fix for this because it creates the risk of being able to climb any wall infinitely, which is too overpowered. Other than that though, the system works well and feels responsive.

The reason that I do not want the player to be able to jump off the same wall twice, is because I want the movement system to be highly skill based. So if the player is able to repeatedly stall by jumping off the same wall, then it defeats the point of having a quick movement system. I do know how to fix this though, as it just involves checking for whether the player has walljumped in a direction and denying another jump in that same direction until they touch the ground or walljump in the other direction.

Week 3 – Communicating Design


This week I learned that there are many different ways to communicate with the player in game design. A lot more than I realised! One of the most vital ways is through feedback both in the UI and in game. Another method which I was less aware of, is environmental storytelling; this is the act of portraying context and giving guidance to the player through art and design in the environment.

An example of environmental storytelling could be how in Cyberpunk 2077, the city is packed to the brim with twisted advertisements, immediately painting a picture of distaste and dystopia. The player is greeted by such rampant capitalism that there is no surprise that the city is controlled by corrupt rulers that will do anything for money.

Credit: CD Projekt Red

I have also started to work on my 2D platformer mod, which is based upon work by “IndieMarc”. I have started work on a ‘walljump’ detection system, which uses the same raycasts as the ‘grounded’ detection system. When I duplicated the other ‘raycast’ system, I had to rotate and rework the positions of the casts, in order to come from the side of the player. I have not yet added in the actual ‘walljump’ mechanic as I have not had time. I plan on fully implementing the mechanic in next weeks workshop.

Walljump and Jump raycasts

My overall plan for this mod is to expand upon the platforming system. I have already altered most of the jump values in order to make the game feel fluid to control, and with this new ‘walljump’ mechanic I am adding I will be able to further expand the movement system.

Week 2 – Game Context


This week we covered genres, context and gameplay. Games can be described in a multitude of methods, but there is no perfect way to describe a game. The easiest and quickest way tends to be picking a genre for the game, however some games fall under two or even several genres. Often game genres are too dependent on simply the camera configuration and visual style, when games are often a lot deeper.

Context and gameplay often tie into the games overall style. Context can stick gameplay elements together like glue. Gameplay can also inform context, however it is usually the other way round, and is most likely to be presented to the player context first.

We also looked at a knock off ‘Flappy Bird’ in the workshop today. The controls were unnatural feeling and unresponsive, in high contrast to the original ‘Flappy Bird’. In the short time we had to test and change the game, I changed the movement system to be devoid of any jump button at all, and instead the bird bounces on the floor. This way you only have to use the left and right movement controls, which I think added an extra layer of complexity and skill to the gameplay loop.

I also noticed that the parallax system wasn’t configured correctly, as it was basing the parallax effect off of the movement of the player, rather than the movement of the camera.

Today I learned that I prioritize context over gameplay, which I had never thought about too much. But it does makes sense, because I am naturally drawn to games with a rich story.