[2] Hexus Nexus - Serious Games Project

Image 1:Hexus Nexus Main Menu

Image 1: Hexus Nexus Main Menu

In the Serious Games module as part of my degree in my final year of University, I was tasked with creating a Serious Game with a focus of ‘Entrepreneurship Education’. My aim was to focus on the Teamworking sub-competency, to create a game where team members worked together to beat a scenario. In my attempt, I was able to create a 4-player Unity prototype that had generated scenarios based on a seed and developed my own localisation method for making the game support multiple languages.

Game Description

I took inspiration from games that featured co-op puzzles such as the mobile title ‘Spaceteam’ and from previous experiences had, including an instance in Gears of War 2 where two players would navigate through a Research Facility, needing to disable turrets to enable the other place to proceed. Hexus Nexus was structured as a 4-player co-op who would each play across 4 separate devices. Primarily this would be a desktop computer but in later testing, the game was also playable on Android. Each would complete a challenge, where all four answers would unlock a new round - with a total of 4 rounds. Beating all the rounds would complete the game. The game features no aspect of an individual being able to be ‘better’ than the rest or be able to race ahead, as all sessions must complete their challenge to proceed, or all fail. This would encourage team members to assist each other to ensure victory. I was able to drive this by implementing verification steps that would require all players to be at the same stage before all would be able to proceed. This was done by:

  1. Having the answer to the player’s question requiring another answer/number from another player

  2. Limited attempts to prevent one player brute-forcing potential answers to gain an advantage and circumvent the purpose of the game

  3. A timer that would prevent a player starting too soon due to their session finishing earlier - as one player failing prevents the remainder from proceeding

Screenshots of the game better illustrating the points above are found at the end of the post.

Unity And Game Mechanics

I created the game in Unity. Each player would run a session simultaneously with the other players and be connected not with networking, but a code that would generate a unique game and run on a timer. I made this decision as the environment that the game would be played in, such as a school or college, might not permit the linking between computers. The gameplay was entirely user-interface based, an approach that would be kinder on the sort of hardware you would find in such environments. Using Mouse and Keyboard as an input as opposed to a gamepad would also be a benefit in this environment due to their abundance and familiarity with the target audience.

Game Generation

Using a 6 number integer, generated at random by Player 1 and inputted by players 2, 3 and 4 (thus preventing a game starting due to P1 needing to give the number), I was able to generate each scenario based on a seed returned by inputting the generated number into Unity’s Random system.

UnityEngine.Random.InitState(GameNumber); SeedNumber = UnityEngine.Random.value; SeedWholeNumber = ((int)(SeedNumber * 10000000)).ToString(); for (int i = SeedWholeNumber.Length; SeedWholeNumber.Length < 8; i++) { SeedWholeNumber += "0"; }

Inputting the number into ‘UnityEngine.Random.InitState’ will generate the same subsequent numbers each and every time - allowing games to sync without networking. With this, I was able to generate verification keys and answers based on the given result, and take parts of the number and add/subtract to give different potential answers, further generating a random game for the players. With this in mind, I made the generated number by Player 1 6 numbers to prevent the player from getting the same game. There were also plans to have a list of saved numbers from games already played to prevent games on numbers generated to be played in their entirety.

Localisation

The project also had an added focus (should anyone taking the module have dared to attempt it) of implementing a system of localisation. In my attempt to incorporate the feature, I found that, at the time, I was not able to find an already existing method that would allow for seamless additions of new languages at run-time and in the future. This would have meant that at the conclusion of any development, the game would have been locked to any languages the game had. As such, I looked to develop my own method that would allow for adding extra languages to the game in the future without needing the source code or re-building the game.

The first challenge was being able to have the file outside of Unity. With the .csv file compiled with the game, it makes it unchangeable. Preventing further languages from being added without rebuilding the game. As such, the game would be built and the created .csv file would be placed within the directory of the game to be read on launch. This, therefore, allowed the file to be changed without recompiling the game.

The second challenge faced was converting the .csv file into a usable format in-game. This was done by inputting the CSV file into a string array, then taking the chosen language and putting it into a List. From there, I would take each indexed item and place it onto the text objects in-game. Should the player chose another language, the list would be remade and the objects re-populated.

Future Potential

Whereupon the completion of this module earlier in my final year, I was able to allocate time to my other coursework pieces. Were I to return to Hexus Nexus and improve it, I would do the following:

  • Increase the number of rounds the players will play. This including designing other types of challenges for the players to complete.

  • Add the options to play with 2 or 3 players as opposed to just 4. Increasing the scenarios the game could be utilised.

  • Implement the options to change the degree of difficulty to allow players of different ages to be able to play.

Game Screenshots

Below I have added screenshots of the waves and the final (statistics) screen of Hexus Nexus:

Image 2: Pre-Wave verification page. To proceed into the game, each player must acquire the other player’s keys and input them into the corresponding spaces. This helped ensure both the games could be synchronised prior to the actual game starting and preventing a single player advancing without first verifying.

Image 2: Pre-Wave verification page. To proceed into the game, each player must acquire the other player’s keys and input them into the corresponding spaces. This helped ensure both the games could be synchronised prior to the actual game starting and preventing a single player advancing without first verifying.

Image 3: Wave 1. The first wave requires a player to communicate with the specified player to get the answer so it can be inputted to proceed. A common theme that takes place throughout the game. The shapes would be populated based on the answer generated by the system

Image 3: Wave 1. The first wave requires a player to communicate with the specified player to get the answer so it can be inputted to proceed. A common theme that takes place throughout the game. The shapes would be populated based on the answer generated by the system

Image 4: Wave verification. After a player has given the correct answer, their letter will be shown alongside three empty boxes. The player will need the other three keys to be able to proceed. To the right of the image is the Unity Inspector on the game’s main script.

Image 4: Wave verification. After a player has given the correct answer, their letter will be shown alongside three empty boxes. The player will need the other three keys to be able to proceed. To the right of the image is the Unity Inspector on the game’s main script.

Image 5: Wave 2. The second wave is a maths question, requiring a number from the specified player before being able to calculate and present the correct answer.

Image 5: Wave 2. The second wave is a maths question, requiring a number from the specified player before being able to calculate and present the correct answer.

Image 6: Wave 3. The third wave required the player to press the button at the correct time that would result in the remainder being zero.

Image 6: Wave 3. The third wave required the player to press the button at the correct time that would result in the remainder being zero.

Image 7: Wave 4. The forth and final wave was a more advanced maths question, requiring numbers from all players before being calculated.

Image 7: Wave 4. The forth and final wave was a more advanced maths question, requiring numbers from all players before being calculated.

Image 8: Statistics/Endgame screen. Upon win or fail, the statistics screen would be presenting showing the overall time taken, the amount of waves completed and the amount of mistakes made. As an added bonus I included the fireworks system used on VR Carnival.

Image 8: Statistics/Endgame screen. Upon win or fail, the statistics screen would be presenting showing the overall time taken, the amount of waves completed and the amount of mistakes made. As an added bonus I included the fireworks system used on VR Carnival.

Previous
Previous

[3] Patterns - Streak System

Next
Next

[1] VR Carnival - Stand and A Boat