To The CoreA casual mobile game where going deepest puts you highest
This page is dedicated to To The Core. It will portrait the process of the design and development of the game.
(This game is currently in development, so everything is subject to change)
You’re a miner who is competing in a mining competition on one of the biggest planets of the known universe. Mine as deep as you can, as fast as you can!
Mine as much special resources and earn gold. Buy upgrades for your mining ship and mine even deeper. Try to come out on top of the mining community in the universe.
You control the mining drill by rotating your device around the z-axis.
This way it moves left and right on the screen. With these controls the player can avoid obstacles and try to mine specific ores when he sees them on the screen.
There are different types of block to mine in the game. Each block type has a specified time that it takes to mine. The difficulty increases by making the different blocks harder to break. This is making it more difficult to pass through the different blocks.
This project started out as part of a game design minor I followed at the Amsterdam University of Applied Sciences. I worked together with 4 other students to develop to the core. We worked in small sprints and kept iterating on the design.
The technical implementation
(This section will describe some technical challenges and decisions I made)
To The Core needed a system which would automatically switch zones after some period. A zone is chunk of the generated level that consists of different types of ore. The designer of the game needed the possibility to design new ores and zones, and the game had to spawn them automatically.
Each zone has it’s own properties:
– Spawn depth
In order to develop the needed system, I created the following UML diagram
I started of with creating a ZoneObject which is a scriptable object that can be made via the menu’s in the Unity game engine.
The Zonemanager is a single-instance object which loads all the zones from the resources folder once the player hits the start button.
The SwitchZone function from the ZoneManager is called from the level generator once all the rows of the current zone have been spawned.
Since we wanted the game to take place in 1 scene, a menu manager was needed which would show the correct menu to the player at any given time. After the requirements of this task had been set up, I started the development of this single-instance game object.
One of the requirements was that the manager had to be able to work with different, so called, ‘view layers’.
For example, when the player visits the shop and tries to buy an upgrade, the part of the UI which said ‘buy upgrade’ had to be displayed above the default shop UI. So it’s more like a pop up screen.
The manager has a list with all it’s child objects, which are the different menu screens.
Because simple animations are used in the UI, I implemented an IEnumerator which would first play the ‘leave screen’ animation of the current menu, and only once that has been completed it would play the ‘enter screen’ animation of the requested menu.