top of page

About the game

Terminal Inferno is a air traffic control simulator where you can challenge your organizational skills and your patience in this out-of-the-(earthly) world simulator. Manage the routes of the aircrafts that carry the souls of the damned and manage unforeseen events. Keep an eye on your "collaborator" Kevin, he might cause some serious disasters.

Specs

  • Engine: Unity

  • Programming language: C#

  • First Person Simulator

  • Year: 2023

  • Development time: 1 month

  • Team: 10 members (4 designers, 2 concept artist, 2 artist 3D, 2 programmers)

  • Type: Accademy project

  • Role: Lead programmer

02_Twister_05_Terminal_Inferno_Capsula_principale
02_Twister_05_Terminal_inferno_Sfondo della pagina
TI_Screen2
TI_Screen1

Game Structure

The game is a First Person puzzle game. It is divided into waves from easiest to hardest, and each wave has a time limit to be completed. 
The gameplay is inspired by "Mini Metro" and "Keep Talking and Nobody Explodes". In this game we have a handbook where there can be found all the associations between airplanes and gates based on color and a code, and each step to fix the errors and unexpected. So after first finding out this handbook, the player needs to plan and connect the airplanes routes based on the code and color. Then, after opening the gates, some errors and unforeseen events can appear and you need to manage. After the airplanes reach their destination, the wave ends and a new one restarts. In all of these, a nice college Kevin (a phantom) will try to help us, creating, inadvertently, only more chaos to manage.
The goal of the game is to reach the highest score and the highest wave, in fact each operation correctly carry out will give some points, base also on execution speed.

What I have done

As a lead programmer I took care of all the aspect of organization of the internal tasks and code, have a close relationship with designers for the features, bugs and decision to make.

I made the logic of the main monitor for the airplanes routes, the Kevin events, the main menu UI, the monitor interaction feature to zoom in and out of each monitor, the base of the score system, the wave's system (time management), the third monitor logic to show statistics, handbook, drawer and part of other interactions.

       Airplanes Routes Monitor Logic

The third script aims to manage the core logic of the routes, from spawn, to creations of each line, up to moving images and restarts.
It contains some arrays, whose one of LineController, to take care of all the points, lines, colors and images for each airplane. Then there are some variables to count some aspects of the game to manage the final score, as well as some variables to count the intensity of each aspect. 
After some initial general set-up, like deciding a random fly code and adding a tag for each point to make them part of a certain gate. At the start of the game, the routes are spawned: here first the starting planes spawns, they are chosen randomly among all the available but with a total number that depends on the current wave, then the destinations are spawned (set up as the ending point) based on the fly code and a random choice of the possible point of the found group. Finally, based on the starting and ending points, each airplane's autonomy is computed and shown on screen.

​Another important parts is the airplane route selection, adding and connecting each point to that to create the route, and the reset of the line to restart building it. This part was made in the Update, checking for user input mouse click and release, using a raycast on the UI to understand which part was selected, and then calling the corresponding method of the line controller to add points and show the route.​

After connecting all the routes, it is time to open the gates. This logic was made with a coroutine that causes a timer to start, in which each airplane (color point) starts moving at the same time until it reaches its destination or causes a crash.

Finally, the score points for the routes of this wave are computed and updated in the general statistics.

The monitor logic is displayed in the engine by using a 3D world UI and line renderers.

I created 3 scripts: Points, LineController and RouteManager.

 

The first one is a simple data class to identify the point (image) in the screen in which the routes can be connected; there are some information like the index of the raw and column of the point relative to the others, color and type to identify the start and end of the route.

The LineController's script contains a list of points, and its scope is to manage each route in terms of points to connects. It has some variables to identify the state of the route, like the color, autonomy, some boolean values for crash and active states, and the important variable of a LineRender to show the player how the route is made. Here there are some methods to manage the logic of adding and removing points other than show, checks, set-up and reset. 

  • GitHub
  • LinkedIn
bottom of page