From Gameplay To Game Mechanics
As I work on my design documents for Fadunn, I have been faced with the overwhelming part of listing the Game Mechanics. Even a small puzzle game like Fadunn can have quite a few mechanics to implement, so the question of "where do I even start??" can be a big blocking point. But having this list of mechanics is super important to have plan out and prioritise the devlopment of the game! As I was trying to define what my next milestone would include, this lack of visibility was an issue I needed to tackle.
I ended up with a 3 step method to make the list:
- Detailed Gameplay sequence
- Detailed Game Mechanics list for each gameplay step
- Select Game Mechanics for the milestone
It took some times, but it was a lot less overwhelming than trying to just list the game mechanics from memory! It also helped me see how the elements of my game interact with each other, and started a lot of thoughts about how the Player will interact with the game, thus leading to a first view on what accessibility options I would like to have if I was playing it myself. It will also be a great document to share with other people with different sensibilities who will be able to point out accessibility concerns that I didn't catch myself.
Below is the entire document I wrote while following this process, I share it in the hope that it will help someone else in going through this process.
Fadunn Milestones
Extract from the GDD:
Fadunn is a puzzle game inspired by Factory and automation games, where the player is an alchemist trying to progress through a dungeon by manipulating the Essence of things (aka: hexagonal Shapes made of 2 concentric circles of 6 parts each) with their alembics.
The game is made of a series of rooms locked by an alchemical seal that needs a specific shape to be broken. Each rooms has a various amount of basic shapes available. The player needs to build alembics connected by pipes to move, manipulate, and combine those base shapes to create a more complex one that matches the seal and progress further into the dungeon.
1 Detailed gameplay sequence
Extract from the GDD:
The core loop of the game would be:
- Enter a room
- Check locked doors and resources available
- Build pipes and alembic until it creates the right shape to unlock a door
- Proceed to the next room
Sometimes, the player will need to go back to previous room to unlock different doors and/or change the alembic pipeline to provide different resource elsewhere.
Here’s what a detailed game session could look like:
- Boot the game → splash screen → main menu
- Click “Continue” → launch most recent save → open room (let’s suppose it’s a new room)
- Inspect Lock Nodes (Lock Nodes are the place where the player must bring a specified Shape to unlock a specific Door)
- Inspect Shape Nodes.
- Build Shape Extractor on the Nodes to use
- Select an alembic to build, point toward the place to put it, rotate it once or twice, then validate to create the alembic.
- Select the straight pipe tool. Connect 2 Shape Nodes to the alembic.
- Preview the product of the alembic
- Select the rotate tool. Place rotating section on the straight pipe.
- Preview the product
- Repeat the process of placing an alembic, connect it, preview result until the product match the chosen lock.
- Build a pipe between the last alembic and the Lock Node. Validate the pipeline → unlock the door the next room
- Move to the next room. Check Locks and Shapes → Let’s suppose this room doesn’t have the required base Shape to match the Lock
- Check for Bridges (Bridges are special Pipes that allow to move a Shape between two adjacent rooms)
- Move to adjacent room. Create Pipeline to obtain desired Shape.
- Connect last alembic to Bridge
- Move back to blocked room
- Connect Pipe to Bridge to get the Shape from the adjacent room
- Proceed to build Pipeline to unlock the door.
- Repeat until completion of the game
2: list of mechanics
Let’s use the detailed game session to define the different mechanics needed.
- Boot the game → splash screen → main menu - Click “Continue” → launch most recent save → open room (let’s suppose it’s a new room)
-
main menu [TODO: Define menus and options]
-
save/load game
- inspect Lock Nodes (Lock Nodes are the place where the player must bring a specified Shape to unlock a specific Door) - inspect Shape Nodes.
-
move the camera around the room
-
move the cursor to highlight buildings and gameplay elements (how to move cursor with controller? “cell by cell”? Stick controlled cursor? What about keyboard only?)
-
inspector tool. Either an “alchemist view” that toggles on/off (toggle or “while pressing”? Leave choice to player in accessibility options) that shows the result of each relevant node (Shape Node, Locks, Alembics, Rotating Pipe) or a “on hover” tool, or a “tooltip”, “hover and stop” kind of tool. All of them? What options for controller support?
- Build Shape Extractor on the Nodes to use
-
Shape Nodes: Elements of the Room that can be used by the player to extract a specific Shape. Can be a plant, a mushroom, some rocks, etc. Shape Extractors can only be built on a Shape Node
-
Shape Extractor: Building that can only be built on a Shape Node. Once connected with Pipes, it gives access to the Shape of the Node.
- Select an alembic to build, point toward the place to put it, rotate it once or twice, then validate to create the alembic.
-
Building selection (HUD and shortcuts)
-
Building preview following the cursor, with different shaders to show if the build can be built at the current location or not. In case of pipes, preview bends and forks too
-
Building rotation clockwise and counter-clockwise.
-
CTRL + Z, back/forward button with a few moves historic
-
Reset room button with “are you sure?” pop-up check if cannot be added to the undo function.
-
Create Building (check if can be created, add it to the room, connect it to neighbor buildings). Once built, make another preview of the same building with the same rotation.
-
Move Building function (select already built building, remove it from the scene and turn it into a preview, can be placed elsewhere. Cancel brings it back to where it was.
-
Destroy Building. Specific tool the player need to chose to destroy the building they click on.
- Select the straight pipe tool. Connect 2 Shape Nodes to the alembic.
-
Create Pipe by rotating it then doing a single click. Pipes fork and bend automatically. A single source of Shape can furnish a virtually infinite amount of end points by forking the pipes. There’s no amounts in Fadunn, a Shape is always available in infinite quantity. The game is about designing a pipeline, not scaling it to bigger production rate.
-
Create a chain of pipes by holding click and moving the cursor (toggle option for accessibility, varying controls for keyboard only and controller). The pipe will try to find a short path between start and end point while avoiding obstacles and creating Cross Pipe where needed.
-
Pipe color coding. A chain of pipe can have infinite output, but only one input. This function gives a random color to all the pipe segment chained together to improve the reading of the room. Can be toggled On/Off by the player while keeping the data of color. The player has a tool to change the color of a pipe segment. (Maybe change the color of alembics? For aesthetic and screenshots reason?)
- Preview the product of the alembic
→ Same tool as inspecting the Locks and Shape Node at the beginning to see the Shape at strategic points. In the case of Alembics, the player can choose to show the Shapes at the entrance and/or exit of each Alembic.
-
A “Process” button that fill the Pipes at a specific rhythm defined by player (“[0.0 – 5.0] second per unit of pipe”, with a 0.1 increment unit.) and shows the result of Alembics and rotating pipes along the way.
-
Stop process button: purge all pipes and Alembics and stops showing the previews. If the process is ongoing, the player can modify the pipeline, any impacted pipe or Alembics get purged and refilled in real time.
- Select the rotate tool. Place rotating section on the straight pipe.
- Rotation Building. A segment of straight pipe that cannot bend, and turns the shape by 1 to 5 notches (6 being a full turn). System to define, either a set of 3 buildings rotating by 1, 3, and 5 notches, that the player needs to select then place. Or a “rotating value” placed on base Pipe that turns it into a rotating pipe of the amount of notches defined by the player.
- Build a pipe between the last alembic and the Lock Node. Validate the pipeline → unlock the door the next room
- Unlock Door. A Door is an asset linked to a list of Locks and with a Room Attribute. The player needs to give the right shape to every locks at the same time to unlock a door. Once unlocked, the door remains open even if the player destroy or modify the pipeline. Once unlocked, the Room attached to the Door become accessible to the player.
- Move to the next room. Check Locks and Shapes
-
Move between room: The layout of a Room (the sum of all Building with their rotations) is saved each time the player exits a room. Upon entering a room, the layout of the room is loaded so the player can move freely between rooms and keep the entire pipelines made along the way. (Does it keep the connections or is it more efficient to reconnect everything when loading the layout? Does the filling of the pipe get saved too, or are all pipes purged when a player move between rooms? Is it more efficient to preload neighbor rooms in the background process? Maybe cluster of loaded rooms when a puzzle require to use Bridges?). Player can move between Rooms with dedicated input (keyboard keys? LT/RT + direction on controller?) and by clicking on the door.
-
Map Menu: Menu that shows the layout of all rooms and allows player to jump from a room to another. Might create loading time as rooms far away cannot be preloaded. Except if they are bridged. Ideally: the map would be able to show the Layout of a room in schematics and a list of the available Shapes in a Room.
→ Let’s suppose this room doesn’t have the required base Shape to match the Lock - Check for Bridges (Bridges are special Pipes that allow to move a Shape between two adjacent rooms)
- Bridge: Special buildings that cannot be created by the player and link two rooms together. The rooms needs to be aligned with no other rooms in between. Could be named Bridge to allow for more flexibility and allow a room anywhere to be bridge to another one, but it might be too confusing for players. Unless the bridge acts as a Door that brings the player to the relevant room if this room has already been unlocked. And if the map has a way to clearly show bridges. So maybe?
3: milestone 1
Fadunn 0.2:
A rebuild of Fadunn 0.1 in 3D.
Mechanics to include:
- Move camera
- Building Selection
- Building Preview
- Create Building
- Destroy Building
- Create Shape Extractor
- Process Shape
- Stop Process Shape
- Basic Shape vision (shows shapes output of every building and required shape on locks at all time)
- Basic change room (Only move forward, player cannot move between rooms. Effectively just successive levels with no interaction between rooms).
- Unlock Door (except no door, but when the player unlock all locks at the same time they can choose to move to the next room)
Buildings to implement:
- Basic Pipe (with bends and forks)
- Rotate Pipe (basic version with 3 different pipes of 1, 3, and 5 notches)
- Cross Pipe
- Alembics (Albedo, Nigredo, Citrinitas, and Rubedo) revamped as needed.
- Shape Node
- Shape Extractor
- Lock
Content:
Tutorial improved from Fadunn 0.1 to better explain the forks of pipes and how the alembics work.
Graphics:
- Basic environments with a few props.
- All Pipes and Alembics.
- 3 to 5 Shape Nodes
- HUD and menus