Skip to main content

Posts

Showing posts from January, 2025

29th Jan Initial Ideas Outline

My goal for this semester is to focus on puzzles in games that don't immediately present themselves as puzzles. Games like Tomb Raider and The Legend of Zelda do this effectively, communicating to the player that they must get to a location using the tools and environment and they must figure out how to do it. This approach doesn't present its gameplay as puzzles as explicitly as other games do. Some games have a game board with objects to move and a clearly defined solution, very clearly communicating to the player the win condition and the mechanics of the puzzle. However, a game presenting the player with a gap in the road is a puzzle, provided they have the abilities and/or tools to get across in some way. My aim is to explore games that present puzzles in such a way, how they do so, and and what the purpose of the puzzle is. If the purpose is to create an enjoyable gameplay experience for the player, I would like to discover how this is done, and tests put in place to ensu...

Semester 2 Project Progress

13th January 2025 To begin this project, I am experimenting with creating different game mechanics. This is to build up a repertoire of skills in Unreal Engine and also see if any mechanics seem as if they can be adapted or incorporated into a game. I began by using free assets to make a character that can run around and execute an attack pattern. This was just to experiment with the assets and create a character that I could test other mechanics with. The first mechanic I created was one that lets the player grab an object and pull it toward them. When within a defined range, the player's reticle changes shape to indicate to them the object they're looking at can be grabbed. Grabbing it moves the object on an arcing trajectory toward the player. This could be used to grab a weapon to use, to bring an enemy closer to be attacked, etc. 14th January 2025 I added functionality for the player to hold an object and attack with it. When an object is pulled toward the player and reach...

Decision Justification

Highlighting Doors I spent a while trying to decide the best way to communicate to the player which button opens which door, and if to do so at all. This complication was influenced by research into puzzle games I conducted throughout the time I was working on the project. I learned that there are multiple approaches a player can take to solving a puzzle, some would stop and analyse to try and work out a solution, while others prefer to start interacting with the level immediately to see what happens. The first group of players would benefit from being able to immediately see which doors are connected to which buttons upon loading into a level. This could be done by colour-coding the doors and buttons or having them share symbols. An approach that would better suit the second "brute-force" group of players is providing no indication at all of which door will open, forcing the player to press play and make their robots stand on buttons to learn their effects. The approach I de...

Learning Agreement

Project Outline A puzzle game. The player controls three characters. Each level consists of a planning phase and an execution phase. The player plots a path for each character to take within their range of movement. In the execution phase, all three characters move along their path at the same speed. The goal is to get one of the characters to reach the exit button. Project Context Many puzzle games have the player control a single character. Many others involve controlling many at once (eg. Lemmings). This game is somewhere between the two, having the player control three characters that interact with each other as they navigate a level. I am interested in the idea of using procedural generation to create levels in games. This has been done with many genres including puzzle games so it would be interesting to explore whether it is possible to automatically generate level for my game. Key Areas of Research Research into puzzle games that I believe are well-designed: Braid, The Witness,...

Levels

Level 1 - First Steps This level introduces the player to controlling the character. Level 2 - Labyrinth This level uses the fact that the player now knows how to move the character and adds the slight challenge of solving the maze. The player may choose the wrong path and have to try again as only one path will get them to the exit within the move limit. Level 3 - Behind Closed Doors This level uses a single character to introduce the player to the concept of buttons in the game. Level 4 - Patrol This level introduces guards, which destroy any robot that comes into contact with them. Their path is shown to the player during the planning phase Level 5 - Calibration This level is similar to the previous one but the guard starts from a different location. This means the player must alter their strategy slightly from the solution they found for "patrol". Level 6 - Helping Hand This level introduces a second character for the player to control Level 7 - Synchronicity This level i...

Game Key Features

Player Movement The player controls a ghost that maps paths for the robots using WASD. Pressing one of the keys moves the ghost to the adjacent space in the desired direction. Before moving, there is a check to make sure there isn't a wall in the location the player wants to move to. If there is, the player does not move. The ghost faces in the inputted direction direction regardless of obstruction. As the ghost moves, it creates points to draw a line from one of the robots to itself. The player controls which robot's line they are drawing by selecting 1, 2, or 3. Route Plotting Each time the player takes a step in any direction, their new location vector is saved in an array, unless their new location is equal to the previous location. This means they took a step backwards so it removes their previous location. Each robot actor has a spline component, which is used to draw straight coloured lines between each point in the array each frame.  Robot Movement The robots move when ...