Mini Trafic is a management game and a serious game. The player controls the traffic lights of a city and has to parameter/tweak them in order to keep the drivers happy. The “serious” part of the game is to make the player understand the impact of traffic lights parametrisation on the traffic. And why some of them have to be “unfair” or “too long” to some drivers. The game was developed by Alexandre Lecomte and I (Pierre Planeau) between October and December 2016. It is entirely in French.
Mini Metro and Sim City are our main inspirations for the design of the game. Indeed our game is using flat colors as textures and low poly 3D models. Plus the top-down camera and UI come directly from these games. Finally the music, composed by our friend Cédric Tardella, is our own version of the Muzak genre and the Sim City OST. Indeed, as this is a management game the music has to be calm. But also not too present in order to keep the player focused on his tasks (for the learning/serious part).
The game is composed of a main menu (shown bellow), 2 tutorial levels and a sandbox level. The tutorial levels are here to teach the player the different controls of the game and how to use them efficiently. Then, he can practice his knowledge in the sandbox. Indeed, the sandbox level never ends. It allows the player to manage a big part of a city. And see how a good or bad parametrisation of a particular intersection can affect the whole city.
Mini Trafic has been made using Unity 5, the sound integration with FMOD Studio. The artificial intelligence of the cars is a multi-agent system (ex: MASSIVE) that we coded ourselves. That allowed us to have a very simplistic AI running on hundreds of agents (cars). Which resulted in apparent complex behaviors around the city. In fact, the agents only go from their spawn point to their destination using the roads. This is actually why we could not use the NavMesh of Unity. Indeed, the cars would not follow the traffic laws! They would go off road, on the opposing lane, etc.
Thus, each agent is following a ‘rail’ in order to keep them on the road. Each road has two lanes (two rails) going in different directions. The roads can be connected to each other (like in a children toy circuit) or to intersections. The agents just follow their path to their destination and react to their direct surrounding. They will react to another agent braking in front of them, or a traffic light turning red. You can read more details about the agents on Alexandre’s post about them.
In order to keep the illusion of a “real” city, the car spawners and destinations are outside the camera’s range. Each spawner keeps a city graph with all roads, intersections and destinations. The Dijkstra algorithm is used to precalculate the car’s best path to reach its destination. This graph does not take in account waiting times at intersections nor traffic jams. So it is not real time, but is fixed at the beginning of the game. This allows traffic jams to occur! Otherwise, the cars would always avoid the traffic, thus revoking the need for any player input.
So, what does the player do ? Well, the player is able to parameter the traffic lights using a graphical interface. This allows him to give more green to the most used roads (or the other way around!) in order to see the impact on the traffic. This way, the player can try to create gigantic traffic jams. And then try to solve them only by having good traffic light parameters.
What I did
For this project I was in charge of designing the city, roads, buildings and parks. I did the graph system (with Dijkstra adaptation to our road system), the agent spawners, the road system for the agents to follow. Also, I made some in editor tools to help me build the roads more efficiently. I designed the main UI, the traffic light editor, the tutorials UIs, solutions UIs, pause menu UI. And I created both tutorial levels, the sandbox level and the main menu. I also did the music and sounds integration using FMOD Studio. Finally I made the trailer to present the game, which I hope, you enjoyed. 😉