The Mansion: Release and Reflection


The Mansion is released, and, barring any bugs being discovered, complete (at least for now, I might come back to it some day), so, in this devlog I'm going to take a look back at where this started, what has changed and why, what assets I used, what I learned from playtesters and my own observations, and afterwards I will provide a guide for all of you to understand the game.

Throughout the game design process I made a slew of changes to the game based on my own design observations, and those of the playtesters, here I will outline every change made from the initial pitch and I will then go into detail explaining why that particular feature was added or removed. The first and biggest deviation from the initial pitch of The Mansion, was the almost complete removal of the game's story. While I did record a couple pieces of audio to represent the story, in the form of me narrating the events before and after the game, I decided to scrap those after multiple playtesters expressed their enjoyment at the simplicity of puzzling during the testing session, given that my idea for the story was for it to be a creepy story, pervasive throughout the game, I quickly realised when trying to implement it, that it would overshadow the fundamental gameplay loop that those playtesters had enjoyed. Ultimately, I let my initial pitch for the story inspire the visual design of The Mansion, rather than existing as a distraction, to lend the game a distinct visual identity. The second feature I outright cut from The Mansion during development was the idea of a column that acted as a regular block that simply existed on both floors. I cut the column during early development while I was designing the early levels of the game after I realised that a lot of my early puzzles were heavily based on the correct positioning and order in which to move blocks, relying on the player's ability to pass over them to create the intrigue within those puzzles, whenever I tried to insert a column into this framework, I quickly realised that the column represented a frustrating obstacle that stood in the way of the flow and uniqueness of the game, which, rather than diversifying the game, ended up streamlining it towards regular Sokoban design. The final feature I cut, was a minor one in the form of pushable boxes that didn't need to reach an objective tile, while I did have a basic box object ready for a such a purpose with a little more coding, I quickly realised while playing early level designs that I found the non-objective boxes to be frustrating, keeping me from the gameplay loop of finding ways to get the blocks on the correct tiles.

A week before The Mansion's release I participated in a playtesting session in which I got a lot of feedback from players of an early edition of The Mansion, this playtesting session gave me vital insights which greatly informed my design process over the course of the last week. The first and most prominent issue I encountered during the testing session were multiple players who could not get past the first level for a long while due to the fact that they were struggling to learn the game at the same time as trying to solve a puzzle, from this I learned two invaluable lessons, that I needed a hands on approach for explaining the game, and that the way the levels were ordered was creating an unfair difficulty cure early in the game because of a difference in how I and players considered the game. The first thing I did after realising that players were struggling to learn the game was to add a main menu and controls menu with an explanation of the controls and objectives of the game, in addition to that, due to the fact that the game's central mechanic was hard to visualise with it only being explained to you, I added a miniature version of the game to the bottom right of this control screen, with a fun detail for anyone who completes it meaning that accompanying the instructions players could experiment and understand the game before having to dive in. Something I realised after so many players struggled with the first level was that what seemed intuitive to me, the game's designer, and what seemed intuitive to a new player were vastly different, the original first level of the game (now the second level) took place on a straight line, requiring the player to place a box in the middle of the room to allow for space to jump between the floors, the reason I believed it was a good tutorial level was because it took place in a 1-Dimensional space, without having to consider the 2nd Dimension, a player would be forced into learning the importance of positioning, instead, it turned out with a greater degree of freedom, players became much more acclimated to game's system meaning that puzzles involving positioning should be the next lesson after the player learns the mechanics and the importance of proper ordering. The playtest session provided a bevy of invaluable insights which I took forward into the design philosophy of The Mansion in the final week of development.

While developing The Mansion I used a number of assets, each of which I will now list and explain.

Background.png: An image I constructed in Piskel to act as the background for The Mansion. Fun Fact: there are multiple constellations featured within the Background, each of which can be found in the lyrics of a song by Joanna Newsom.

Background (Prefab): The Background Prefab is an object specifically designed to be used on the MainMenu, and Controls scenes which are increased in size to allow for the necessary UI including the miniature version of the game in Controls scenes, this is why the Prefab has the sprite scaled to 2.5x its size.

LevelBackground (Prefab): A scaled down version of the Background Prefab meant for the menus to be used throughout The mansion's levels.

Box (Prefab): A plain green box initially used for testing purposes, at one point I had intended to use this as a neutral bax wiout objective before scrapping that idea.

CeilingBox.png: CeilingBox is a sprite representing the CeilingBox object created by me using Piskel, the box is meant to resemble a wooden crate with purple engravings that grow darker when placed on slats of wood below those on the very top of the crate.

CeilingBoxActivated.png: An alternate version of the regular CeilingBox sprite with a brighter and consistently coloured purple engraving to be switched to by the Prefab when it is on top of an objective, made by me using Piskel.

CeilingBox (Prefab): The object representing a pushable box on the ceiling including code to facilitate detection of surrounding objects, audio whenever the player pushes the box, and sprite switching when meeting an objective.

FloorBox.png: A sprite representing the stone slabs that can be pushed by the player while on the floor.

FloorBox.png: A sprite representing the stone slabs that can be pushed by the player while on the floor while they are on an objective tile.

FloorBox (Prefab): Object representing the pushable box while the player is on the floor.

CeilingLoadBearing & FloorLoadBearing (Prefabs): Two sets of prefab and sprite which call upon the game manager to move every object on the opposite floor whenever they are pushed.

CeilingLoadBearingPush & FloorLoadBearingPush (Scripts): a script designed to allow the object it's attached to to be pushed while also calling the GameManager to push every object on the floor opposite of the object the script is attached to.

CeilingObjective & FloorObjective (Prefabs): Prefabs with the Objective tags that boxes search for when checking whether they're meeting their objectives.

CeilingTile & Floor Tile (Prefabs): A tile to represent the ground on each floor.

CeilingWall & Floor Wall (Prefabs): Prefabs with the Immovable tag that other objects look for when checking whether they can move into a space.

Congrats (Sprite & Prefab): An object to be shown in alternative versions of the MainMenu and Controls screen reserved for when the player beats the game, features code from prefab StartMansion allowing to change colour when a player solves the puzzle in the ControlsTwiceTwice scene.

Ending: A scrapped spritesheet for an ending cutscene depicting a sigil appearing in the sky through the lens of a blurry phone camera.

GameManager (Prefab): An object designed to handle game-wide and complicated procedures such as moving floors when a LoadBearingColumn is pushed, and checking the number of completed boxes and moving to the next scene if it matches the total boxes int he leve.

Player: The Player character using a set of sprites traced from the main character of the Sokoban website (https://www.sokobanonline.com/) as a way to pay homage to the place that got me into the style, the Player object is the player's main mode of interaction throughout the game using its script to achieve a set of wide ranging effects, starting with a basic Sokoban framework which I found by researching on Unity forums (https://forum.unity.com/threads/how-do-i-get-started-with-grid-based-movement.79...) how one would handle grid-based gameplay and finding a video explaining a Sokoban setup

upon which I build the multiple floors system which works by redefining what counts as objects that the player can see or interact with while also checking whether any object on the opposite floor would block a player's attemp to change floor. The Player object also has dynamic sprites which change based on which direction the player is moving while at the same time detecting and performing a majority of the sound FXs in the game.

SceneSwitcher: A script I pulled from the early tutorials designed to allow a button the send a player to stop of their choice.

StartCeiling & StartFloor (Sprites): Two sprites to be switched between by the StartFloor object whenever the player hits the Space Bar on the MainMenu scene.

StartFloor (Prefab): An object that makes up one half of the game's title on the main menu with the ability to switch between appearing like the floor and ceiling as a fun way to represent the mechaincs of the game withing the menu.

StartMansion (Prefab): The object that makes up the other half of the game's title, the StartMansion object uses the StartMansionGraphics script to change colour should a player finish the puzzle within the controls menu.

Gravity (Sound FX): A scrapped sound meant to represent when the players uses the floor switching ability, I eventually cut this sound due to the fact there already a great deal of sound whenever playing the game quickly.

 MarblePush (Sound FX): The sound of two stone slabs grinding against each other, this sound is to represent the movement of the FloorBox Object.

Wood Push (Sound FX): A sound I created by blowing on my microphone and applying a slight amount of distortion, meant to represent the sound of FloorBox being pushed.

Wall Hit (Sound FX): A sound I created by hitting a recorder against a tissue box, meant to represent the player trying to take an illegal action, such as switching gravity to floor while a floor box is where you're standing, or simply trying to run into a wall.


The Mansion Guide:

Controls.
WASD to Move
Spacebar to Move Between Floor and Ceiling as Long as No Object is Blocking You.
R to Restart Level.

Mechanics.
In The Mansion you will be tasked with pushing Box objects, you will be able to push any Block as long as there is no object behind it including other boxes.

   

onto corresponding objective tiles.

To do this you will need to leverage the gravity system, which, when you press spacebar, send you from the floor to the ceiling, or vice-versa (to tell which you are on at any given time, just remember, the floor is made of marble, the ceiling is made of wood), while on the floor you will be unable to interact with object on the ceiling, and while on the ceiling, the same rule applies to objects on the floor.

To solve each level you will have to consider a combination of the order in which you solve each element of a level, and the positioning which would still allow you access to the rest of the level.

In addition to the Blocks and Objective tiles, there is another tile, the Load Bearing Column, which, when pushed, drags the entire opposite floor along with it, meaning that you can change how the floor you're on accesses the other floor to reach or push boxes that would've initially seemed entirely out of reach. Load Bearing Columns are essential to solving some levels, but they will never need to sit atop an Objective Tile, so don't worry about that.

With these tips you should now be prepared to defeat the dastardly puzzles lying within the mansion, good luck and have fun :)


References.
TheSplashsky, Unity Forums, How Do I Get Started With Grid Based Movement, 2019, https://forum.unity.com/threads/how-do-i-get-started-with-grid-based-movement.79...

GameAssetWorld, "Unity Grid Based Movement (like Sokoban)", 2022, 

Micah Rodney, Sokoban Online, "Box Man", https://www.sokobanonline.com/help/about

Files

FinalBuild.zip Play in browser
Oct 14, 2023