Game Deconstruction #2: Mallow Man

For the second game I wanted to take from initial planning to finished prototype, I wanted to create a 2D platformer, which felt like an appropriately scaled challenge after my first game deconstruction. 

Key Goals:

This project had a few key goals that I wanted to achieve above all else. These include:

  • An intro screen with UI, allowing a game start, Level select exploration, or application quit.
  • 5 levels, increasing in difficulty as the player progresses. 
  • Tight 2D movement.
  • A simple, fully animated sprite based character.
  • An interactive level select.

The 2D platformer I chose to study for my deconstruction is a great indie title known as "Dadish" by the developer "Thomas K Young. After playing this title and writing down key features of the game which would be required to form an overall feel similar to the source material, I formed this list of features that I felt would benefit me in the most in learning new skills. 

  • Movement:
    • A constant speed regardless of the degree of input
    • Variable jump height dependent on long/short presses
    • Terminal Velocity after falling for a determinate period
  • Animations for:
    • Idle
    • Horizontal Movement
    • Falling
    • Death
    • Level Success
  • Environmental:
    • Tilesets for blocking out main play space
    • Solid platforms that can only be jumped on, not through
    • Thinner platforms to highlight two-way platforms
  • Camera
    • Moves horizontally with player
    • Moves vertically based on how high the player has travelled
    • Has drag 
    • Acts like a physical object that is prevented from moving when near level bounds

Once I'd broken down the gameplay I experienced into the above features, I then made a list of features that I wanted to implement based on either my own interest, or desire to challenge myself:

  • Enemy variety. I wanted to include a number of enemies that would all inherit from a core enemy class, that each posed a different type of hazard to the player. The finished project ended up with:
    • Standard patrol enemies. These enemies were given a set area to patrol back and forth in, as well as a speed to do this at.
    • Wall/Ground detection enemies. Like the patrol enemies, this type would patrol a set area, however this area was determined by whether or not the enemy had detected a wall or the end of a platform, leading them to begin patrolling in the opposite direction. 
    • Seeking enemies. These enemies were given an agro-radius, and would chase the player once they entered this radius. 


  • Scoring. I wanted to give an incentive to play through levels multiple times, aside from just for completions sake. This scoring would be effected by two other features that I wanted to implement:
    • Collectables. I wanted to include a standard collectable such as coins that were common throughout levels. Along with coins, I also wanted to include a special collectable in each level, akin to Star coins in Mario games. 
    • Level Timer. Another facet that would affect a player's overall score was how much time was left on the countdown timer upon completion of a level. This timer would also serve as a driving force of urgency in levels, as letting the timer hit 0 seconds would lead to a game over scenario. 

  • Interactive level select. I really wanted to challenge myself by creating an interactive level select screen. On this screen, players would be able to choose what level to play, but also view details about stages before entering them, such as the best completion time so far of the stage, whether the level's special star had previously been collected, and whether the stage has been completed. Along with these details, levels would be locked depending on whether their preceding stages had been completed or not. An interactive stage select allowed me to flex my skills in using scriptable objects within unity to store vital data that could be referenced in by a variety of scripts at runtime. 

The Development Process:

Development on this prototype began in February of 2023, and concluded in September 2023. The project was put on hold for approximately 2 months from April to June due to my fulltime job becoming more demanding.

Throughout this project I learnt a lot about the use of Scriptable Objects, Unity Cinemachine, Events and Delegates, and the Unity physics system. These were the main areas in which I focused my study.

The project lacks elements such as sound, multiple input support and save files. This is due to me feeling that by September 2023, I had learnt all that I could within the scope of this project, and it was time to start something new, as I had achieved my original goals. I didn't want to fall into the trap of trying to perfect a prototype which had the sole purpose of being a tool and outlet for learning. 

References: 

Dadish by Thomas K Young: https://store.steampowered.com/app/1522950/Dadish/


Leave a comment

Log in with itch.io to leave a comment.