This blog post discusses the development of a game called Memory Laps, it discusses in detail the design process and development of the game.
Memory Laps is a memory puzzle game developed within the Unity game engine using c#. The game concept is based on memory cognition and uses flashing tiles with audio to indicate a sequence, which the player must try to remember and input correctly. The game's difficulty can be increased using the inbuilt tools that enable rapid level design and testing. The player earns reward points for each of the levels completed that count to an overall victory trophy. There are also high scores for each level and completion stars awarded.
The pliability pyramid is a conceptual idea I have had, loosely based on the works of Sánchez and others. The pyramid represents the four areas of playability that a designer should consider when coming up with a game idea, goals, challenge, balance & rewards. It can be used in the early parts of a game idea to help establish the key elements of a game.
As you can see from the completed Playability Pyramid, the games overall goal was to help the player increase their short term memory, the challenge of the game increase with more complex sequences as they play through, The balance is created through the player having open access to all levels, and the player gains visual rewards through digital points and trophies.
The layout of the game was designed with mobile gaming in mind, the main screen would be both the main menu and also control the levels as well as display integers that represent the player's points and show graphical trophies which are unlocked when the player archives a certain score.
There were around about eight scripts in total that I envisioned using for the development of this project, these include:
Game Manager: Controls all aspects and settings of gameplay, can be used to set up the play space before the game is played…
Custom Editor (Game Manager): Sets up a UI button to call tiles and reset prefabs for testing the game and designing levels
Level Manager: Use to control all aspects of level states such as loading scenes or reloading current scene, also used for pausing game and calling win/loss state’s.
Score manager: Used to set and store current score value as well as log/call an existing high score via player prefs.
Tile script: Used for AI selection and player selection, also updates inputs and store correct selections, can call win state
PlayerInput: Used to check and store player input
Timer: Used to display the total amount of time the player has to complete the level, the overall level time will be set in the game manager
Main Menu Manager: Used to control the main menu and display the player's accomplishments
A visual prototype was developed before the final product which can be seen in the above image, this helped highlight some scripting and layout issues within the game and also allow for play-tests.
Level Design Tools
To help with the level design process I developed within the Game Manager Script a Generate Tiles button, this helped for quick prototyping and level design because it instantiates the tiles prior to game-load allowing for experiment arrangement work to take place. Once the tiles are set up the scene can be saved and added to the game build or tested using the play button.
The Sprite-sheet was developed in Adobe Photoshop. The idea was to use a minimalistic design with bright a bright colour pallet to give the game a fun appealing look.
The finalised sprite pack, game assets and build are available via the download link. Feel free to have a go at using them to design your own levels or adapting the project completely.