Wasteland - Discussion about game Dev


Hi, here is a discussion about the development of Wasteland. In this article, I'd like to share some of my development experiences and design ideas which cannot be realize in game because of time. I hope they are useful/inspiring for you. 

Plot and world setting

In this part, we introduce the world setting of Wasteland, which we haven't seen in the game.

The story takes place in the ruins of a post-apocalyptic world. There was a time when numerous prosperous city-states dotted the world. Some of them have developed advanced technologies based on science. Some of them have used magic to create a city that never sleeps in the sky. In the vast desert, some of them have built cities that never dry up by utilizing powerful relics found in ancient ruins. Until the balance is broken, they all come to an end.

Where we are :

Ruin of ancient city-state Macoutes

Macoutes, a powerful city-state which the city's prosperity is based on advanced "nuclear" technology invented by biotech company Ambra

By inspiration of Dead Cell, Bioshock and Resident Evil, we want to introduce the theme Biohazard and Biotechnology in our game, At this case, we design an system of currency base on "Cell" which is also the  core element throughout the region of Macoutes. After years of researching of Ambra,  a special "Cellhas been created. People of Macoutes used the Cell in various daily life such as treate diseases, strengthen the body and also their main source of energy. With a Converter, the Cell can serve as an infinity daily energy source. Various objects and vehicles based on this bioenergy are also flourishing. Meanwhile, this also laid the foundation for the destruction of the city-state in the future.

Throughout the adventure in Macoutes, the enemies(mostly zombies) can drop Cells after death just like in Dead Cell. The player can use those cells to make the game easier : improve their ability ( Attack, Defense and other else) or restore health if emergency. If they are strong enough, they can keep those Cells until the end and exchange them to special relic/item which can provide special ability. Some special item can help player to uncover the world if they were interest. In the city of Macoutes, the player can find some locked door and item which can only be activated by Cells( as main source of energy of the city). The door can lead you in a special room/area where inside we could find special item/story. If the player want to go into those door, they must use carefully their Cells during the gameplay.


Who we are : 

In the game, the player take part of a squad of relic hunters. Their mission is to explore the ruins of the old city-states and find valuable relics and technology inside. By inspiration of Genshin Impact,  we also make a system of Element chain. Each of our characters represents an element(Fire, Wind, Electricity, Water) and able to switch between melee mode and range mode.

The first playable character is named Mat. Former soldier who awakened the power of fire while in battle and lost his family during the war. He believes there are relics in the world that will bring his family back.


  Another character, named Jim, is a warrior who comes from a city-state in the far East. Using his sword, he can launch a powerful tornado inspired by Yasuo. He also gets the talent of a revolver, which is his second weapon inspired by McRee

 

  

You can trigger the element chain after unlocking the second character. As an example, imagine a tornado meeting a zombie on fire: 

Game programming

In this part, we introduce the programming ideas of Wasteland.

Character control

For our character contol system, we use the framework MVC(model-view-control) which means we put the basic data(Health, Attack, defense...) in the class GamCharacter as Model. Then we attach each component of different functionality : PlayerAttack which has all function about Attack actions, PlayerMovement which determinate the movement of player, PlayerStatus which handle the status(Burning, Freezing,  Stun...) on the player. All those Controllers read the data(Model) and control the behavior of the player.  The change of data will also show up on UI(Health, Energy bar....). This relationship is what we call MVC : 

Enemy control

Our game's enemies are controlled by Finity States Machine(FSM) which is an easy AI solution.  Let's take a look on our class diagram :


Our EnemyStatesController use to control the enemy States: IdleState, ChaseState, AttackState, ResetState. We can define the behaviour of the enemy at each state.  Before writting code, it is better to construct a logic diagram which shows each state's actions :


We can now program the enemy's behavior in each state according to the logic diagram. An enemy has a simple behavior in which it only tracks the player and chases him. You can either add more action to each state or add more states if you want more behavior. A logic diagram will be more complex and necessary if the enemy's behavior is complex. 

At some point, using a behavior tree might be more effective. However, Unity doesn't have its own behavior tree. In this case, the FSM has to suffice. Compared with drafting a behavior tree by yourself, a simple but heavy workload FSM is more appropriate for this task.


TO BE Continued............ 

Leave a comment

Log in with itch.io to leave a comment.