About The Game

Please Hold is a simulation game made by the undefined team for the Vadász Dénes informatikai verseny where the player can build and manage their own city. The game provides different game mechanics that come together to create the game expreience as well as multiple quality of life features.

Story

In the game you play as an office worker. While working they call the customer-service of their company but get put on hold. While on hold they get bored and eventually they start playing on their phone. The game they play is a citybuilder game. This is where the real game begins.

Game Mechanincs

The game has 6 main mechanics >>

  • Building construction
  • Building repair
  • Services
  • Random events
  • Population happiness and Budget balancing
  • Simulation end

Building construction

Buildings can be constructed on empty plots.
The player can construct 3 different types of buildings:

  • Flat
  • Hospital
  • School

The amount of happiness that the population gains depends on which type of building the player places.
When starting construction must specify the area of the building as well as the turns (months) it will take to complete the building process.

The cost of the building depends on the area the building takes up and the calculated amount gets subtracted from the total budget of the city each month. Under the surface the construction system uses the project system.


Building repair

Buildings may also be repaired. This starts a repair project which may include multiple buildings and can both be started from the HUD of the game and by right-clicking on the building the player wishes to repair.


Services

Through services the player can gain a stable source of funding. They can include multiple buildings similar to the projects. They also have a cost but depending on their value they also yield returns to the city budget each month. The player can set the name and type when creating a service.

Services can be ended through the HUD at which point they will stop subtracting from the budget but wont add to it either.


Random events

here are 5 random events in the game one of which gets randomly selected at the start each month. The events can have a variety of effects on the city depending on what gets chosen.

The five events are:

  • Fireee : multiple houses are damaged (the index of the damaged houses is shown) and the happiness falls by 15%
  • Water pipe disaster : the happiness of the people falls by 5% and player has to use 10000$ of budget to fix the issue
  • City wide famine : the populations happiness decreeses by 15%.
  • Extra government funding : the city gains 100.000$ extra budget
  • Nothing happens : nothing happens

Population happiness and Budget balancing

Initial happiness and budget amounts can and must be set upon starting the simulation as well as defining a minimum happiness value.

As stated above different events and happenings in the area have an effect on the happiness and budget of the city. For specific data refer to the paragraphs above.

The happiness value is a range from 0 100% where 0 is the minimum happiness set by the player upon starting the simulation. If the player dips below the specified amount in population happiness or reaches 0$ in city budget before the simulation time period is up the simulation ends early in a game over state.


Simulation end

When the simulation ends the statistics are shown to the player. These are the cause of the sim ending, the budget the player finished with the happiness the city was when the simulation finished and the amount of turns they completed out of the desired amount of rounds.

The game can end because of 3 causes:

  • If the player completes the time period set when starting the simulation.
  • The population happiness falling below the minimum happiness.
  • The city running out of budget.

Systems

The systems in the game work to make the game feature complete and whole.

There are 5 main systems in Please Hold >>

  • Projects
  • Save and Load system
  • Player Preferences
  • Camera system
  • Logging system

Projects

Projects are the main driving system behind the game. They can include multiple buildings at once. All of the have a name, a type, and a cost as well as a time to complete (months). This system is utilized in multiple areas such as the building and repair game-mechanics.


Save and Load system

The game saves the current state of the simulation each turn into a .csv file from which the player can continue a simulation they started earlier without having to restart the whole process.

The load system is able to populate the simulation data such as buildings, their types and specifications. If the player has already started a simulation and the save system has created a save file, through the load system we can enter back into an already started simulation loading the relevant date happiness budget and buildings.

A separate load system was created for the players preferences and settings.


Player Preferences

The user may tailor their experience to themselves by changing the settings of the game the settings include the following:

  • Music volume
  • Camera movement sensitivity
  • Camera orbit sensitivity
  • Camera zoom sensitivity

This menu can be reached both through the main menu and the pause menu inside the simulation.


Camera system

Inside the situation the user can properly look around using the camera system we build. With this in place the player may pan and drag the view around to inspect different buildings. To make focusing on buildings easier after clicking on a building and then pressing the F key on the keyboard the user can focus onto a building. A zoom in and out feature is also available for convenience.


Logging system

Inside the game files the game creates a log text file each turn (month) with the correct date for that month. These logs detail everything that happened in the city during that turn. For example the projects started, repairs happening, buildings getting built, happiness and budget changes and event that month.

Development

We worked on the project for about 4-5 weeks. To achive the final product we used mulitiple different pieces of Software.

Work division

Péter

Peter worked on the visuals of the game. This includes making the 3D models and texturing them then importing all the models and assets into Unity. The UI was also produced by him along with any shaders the final game has. Besides visual appearance Peter also helped out with the programming of the game logic. He also composed the music tracks heard in the project.

Máté

Máté was the lead programmer of the project. He created almost all of the underlying code and logic of the game. As well as creating the backbone of the game added multiple quality of life features such as the saving and loading system.

Dani

Our backend developer was Dani who worked on both the Access database and the Excel spreadsheets for the project. He created the necessary database files suffering with learning Access so that the we could keep working on the main game. Our Excel spreadsheets in which we visualize the data were also solely made by him.


Tech Stack

Microsoft Access, Microsoft Excel

We used these application for the database and the visualisation of data.

Unity, C#, Visual Studio

Our game-engine of choice was Unity and because of that we used C# with it. For our development environment (IDE) we went with Visual Studio since it has great support for Unity`s API.

We choose Unity for the project since last year we tried to work with a less developed game-engine in python (Ursina) and it slowed our process greatly. With this modern enigne we were able to work quicker and more efficiently producing a much more visually pleasing product in the end.

Blender, Gimp

Blender and Gimp were used for producing the 3D models and the textures for them.

For these tasks the Blender & Gimp combination was the obvious choice since our 3D artist (Peter) was already experienced with working in both of them on larger scale 3D projects.

Abelton

Peter used Abelton to compose the tracks in the game. Like the other software Abelton was choosen because of the familiarity of it to the team.

Git, Github

We used Git as our version controll software. We debated using Unity`s could based version controll but we figured that with Git the submission process would be easier and we also had previous experience using it.


Our experiences

The Good

We learned a ton while working on this project. When starting the work we decided to challange ourselves by picking an alien game-engine.

Because Unity and with it C# was unknown to us we had to learn it in the 1 week leading up to the announcment of the competition. Our previous expreience with the Godot game-engine was really useful when learning Unity.

C# as well was new to use but learning tought use a lot of usefull concepts in programming.

It was great to work in the team since we have gotten used to the structure over our past projects.

The Bad

This was not the first time but our main enemy was the time limit. We submitted on the project deadline which caused a lot of stress on the final day.

Microsoft Office :(

Assets

Here are the example files included in the final project. Both Access and Excel files can be viewed through the File Viewer.

File viewer

✖

Azonosító Név Típus Építés éve Hasznos terület
1 Napfény Lakópark lakóház 1990 120
2 Dombalja Apartmanház lakóház 1985 150
3 Béke Tér 12 lakóház 2000 180
4 Tölgyfa Rezidencia lakóház 2015 130
5 Rózsakert Társasház lakóház 1998 160
6 Aranypart Villa lakóház 1975 140
7 Parkview Lakóház lakóház 2005 110
8 Harmónia Otthon lakóház 2010 170
9 Ady Endre Gimnázium iskola 1980 400
10 Városi Általános Iskola iskola 1995 420
11 Központi Kórház kórház 1970 500
12 Rózsa Utcai Egészségház kórház 2003 480
13 Pláza Bevásárlóközpont üzlet 1992 250
14 Belvárosi Szupermarket üzlet 2007 230
15 Acélgyár gyár 1965 600
16 Városi Autógyár gyár 1999 550
17 Központi Buszpályaudvar közlekedési csomópont 2012 700
18 Fővárosi Rendőrkapitányság rendőrség 1988 300
19 Központi Tűzoltóság tűzoltóság 1993 310
20 Művelődési Központ kulturális 2011 450
21 Városháza adminisztráció 1955 350
22 Galaxy Bevásárlóközpont kereskedelem 2015 500
23 Napsugár Játszótér szórakozás 2008 100
24 Aréna Sportkomplexum szórakozás 2016 450
25 Grand Cinema szórakozás 2000 320
Azonosító Név Születési év Foglalkozás Lakóhely
1 Nagy Anna 2023 nincs 1
3 Tóth László 2015 tanuló 3
4 Szabó Eszter 2010 tanuló 4
5 Varga Zoltán 2005 programozó 5
6 Farkas Réka 1998 tanár 6
7 Kiss Tamás 1985 építész 7
8 Balogh Dóra 1972 orvos 8
9 Oláh Bence 2016 tanuló 1
10 Molnár Zsófia 1990 bolti eladó 2
11 Nagy Anna 2013 tanuló 3
12 Kovács Péter 2008 tanuló 4
13 Tóth László 1995 sofőr 5
14 Szabó Eszter 1980 mérnök 6
15 Varga Zoltán 2003 tanuló 7
16 Farkas Réka 2001 tanuló 8
17 Kiss Tamás 1993 építész 1
18 Balogh Dóra 1989 ápoló 2
19 Oláh Bence 2017 tanuló 3
20 Molnár Zsófia 2012 tanuló 4
21 Nagy Anna 1996 szakács 5
22 Kovács Péter 2000 diák 6
23 Tóth László 1982 jogász 7
24 Szabó Eszter 1975 orvos 8
25 Varga Zoltán 2014 tanuló 1
26 Farkas Réka 2006 tanuló 2
27 Kiss Tamás 1999 pincér 3
28 Balogh Dóra 1988 marketinges 4
29 Oláh Bence 2011 tanuló 5
30 Molnár Zsófia 2009 tanuló 6
31 Nagy Anna 1992 bolti eladó 7
32 Kovács Péter 1984 sofőr 8
33 Tóth László 2007 tanuló 1
35 Varga Zoltán 2004 tanuló 3
36 Farkas Réka 1997 könyvelő 4
37 Kiss Tamás 1981 építész 5
38 Balogh Dóra 1979 üzletember 6
39 Oláh Bence 2010 tanuló 7
40 Molnár Zsófia 2002 diák 8
Azonosító Név Költségvetés Kezdés dátuma Tervezett befejezés dátuma
3 Vízvezeték rendszer fejlesztés 1000000 19-Mar-25 19-Mar-26
4 Iskola Felújítás program 2345670 01-Oct-25 01-Oct-26
5 Városi faültető projekt 576400 05-May-25 21-Aug-25
6 Csatornahálózat korszerűsítése 15000000 01-May-25 30-May-25
7 Tömegközlekedés fejlesztése 80000000 01-May-25 30-Aug-25
Azonosító Projekt azonosító Épület azonosító
1 3 9
2 3 10
3 3 24
4 4 9
5 4 10
6 5 23
7 5 24
8 6 20
9 7 12
10 7 13
11 7 14
12 7 17

Gallery

Here are some pictures from the game both while it was developed and from it`s complete state >>

Images of the game in development >>


Images of the final game >>

Memes>>

✖