Week 09

Week 9: Environment and Lighting In Unity by Valzorra

Aesthetics and Lighting

The main mechanics in the Unity Prototype were completed at this stage as James and I had come up with a functional Movement Script, Camera Script, Teleportation Script, and Electrocution Script. All of these mechanics worked as expected and there were no obvious bugs or inaccuracies with them. That’s why I thought it would be rather nice to modify the prototype environment in Unity and to make it more a bit more presentable and thematic. Additionally, this was a nice way of adding additional floor space onto into the prototype, allowing for further mobility to any testers. I started the process with the idea to recreate a very basic and abstracted City Street, as that is one environment we may see Zeta in throughout the game. I started this process by including additional 3D Planes and positioning them next to the green ones in the preexisting version of the prototype. Once I was happy with the space I had, I took basic cubes generated from within Unity and edited their dimensions to make them look like buildings. I kept adding on blocks and buildings, changing their shapes and sizes until I was happy with the overall look and feeling of the environment.

Positioning the Buildings and Floors in Unity.

Once I was satisfied with the positioning of the different objects I thought I would edit the lighting and make it appear as though it was a thematic night scene, only illuminated by street lights and signs. At this stage, many of these aesthetic decisions are not particularly significant, because the most important part of this prototype is to showcase the functionality of the mechanics. Anything else is there to make it a bit more aesthetically pleasing for anyone testing the prototype. With this in mind, I decided to make the lighting seem native to the environment, as though it was coming from flickering lights onto the buildings. That is why I have included a series of Point Lights with different Range and Intensity settings scattered throughout the street. Additionally, these lights have slightly different colors, ranging from pinks to purples and blues. This results in a very beautiful mix of color that gives the environment a distinct nighttime feeling and is reminiscent of neon signs and highlights. Once I was happy with how the lighting tuned out, I directed my attention to the Buildings, and made a few materials to color them in and make them fit into the rest of the scene. What’s more is that I thought it would look even better if I were to add an appropriate Sky Box, so I picked up a free one from the Unity Asset Store.

Overlap of the Point Lights’s Range, which produces interesting pleasing color mixes.

Solving Axes Rotation and Scaling Problems

Once I was happy with the aesthetics of this prototype, I thought it would be nice to replace the current tablet-shaped model with the 3D Model I was working on during Week 8: Intro to Modelling with Blender. However, that could have gone a lot smoother than it did. When I added the model to the project, its axes from Blender did not match the conventions used in Unity, which resulted in the model appearing to lay down. This problem tested my spacial orientation and my capabilities of accurately estimating rotation and after a series of failed attempts, Google Searches, and a series of questions for James, I managed to find the fix. In order for a model from Blender to stand up straight and behave as expected, the model needs to be turned on its X-Axis at 90 degrees. Once this fix was implemented in Blender, the model worked as expected in Unity. In addition to the issue with the axes, there was a minor scaling issue in Unity, which made the Range Indicator grow exponentially in size. The problem was that the Unity scale measurements did not correspond to those in Blender. As the Range Indicator is parented to the Player Model, and the Player Model was rather scaled up after the import in Unity, the Range Indicator also grew proportionately. This fix was rather easy and all it required me to do was to downscale the model in Blender by the appropriate amount. Once that was done, the model was imported into Unity once again and the Range Indicator appeared as expected. Overall, importing 3D Models from Blender into Unity had its intricacies, however, all problems were solved with the mere configurations in the 3D Modelling Software. Additionally, this was a valuable learning experience, because now I know what edits I would need to make when I am importing future models into the project.

Some of my failed attempts at trying to solve the rotation issue in Unity.

The Finished Prototype

After these aesthetic changes and after fixing the issues with Axis Rotation and Scaling, a new NavMesh was baked, and the prototype was tested. I was happy to discover that there were no further issues with it and that all of the aesthetic and environmental changes ran smoothly. I was a bit concerned that the player and the enemies would blend into the environment and would be difficult to spot, however, upon running the prototype, they seemed easily distinguishable from everything else. I created a series of different materials to add onto all of the separate models into this prototype, some of which emitted luminosity to stand out even further, such as the Enemies and the Player Model. A detailed video of the prototype in its complete state with all of the environmental details and functioning mechanics has been provided below. The full source code, scripts, materials, and assets can be reviewed in the Unity Project.

Week 9: Paper Prototype by Valzorra

After our feedback session on the Friday of Week 8, Adam recommended that I create a paper prototype of the dice rolling mechanics and the actual process by which one selects abilities. I thought this was a fantastic idea, so during Week 9 I spent some time creating and testing the paper version of this mechanic. In order to do that, I needed to design a very simple level that allows for creative exploration, sufficient movement, and for all of the mechanics I had so far to be utilized. That’s why the goal of the Paper Prototype was to get from Point A to Point B, all while navigating an environment with enemies scattered throughout. My hope was that the simplicity of the level and goals would provide the perfect conditions for testing the actual mechanics without making things too complicated for players.

The first decision I made was to use a very basic Hex Grid as the hexagonal shape means that the player would be able to move to either side with only one space. By contrast, it would take two spaces to re-position the character diagonally if the grid were a made of squares. Using a Hex Grid also eliminates the necessity for any special rules relating to adjacent tiles and so on. While crafting the level, I filled in some of the Hex Tiles, to indicate that those blocks were walls, which means that the player and the enemies would not be able to walk over them or to see through them. Another key decision I had to make for the Paper Prototype was how many dice to use and what type. I chose to run the paper version with three six-sided die, because at this stage I had settled on a total of 7 abilities, including the Telekinetic one, which would allow you to alter the results of the roll. I’ve chosen to go for a set of three in order to give players a sufficient number of opportunities to make combinations with their powers and to come up with more creative solutions around the level. Based on user testing, the number and type of dice may change later on.


The Rules

At this point I knew what type of map I was going to use, and I knew what dice I would be using. I picked up a few high quality models from the board game Descent to function as placeholders for the player and their enemies. This meant that I now had all of the key components to test this paper prototype out. All that was left was to come up with a few basic ground rules of how this game would be played. The first important bit to figure out was how the turn system would work in this prototype. Taking inspiration from Descent, I decided that during a turn, the player would be able to perform to actions. One action would be a Movement Action, while the other would be an Ability Action. A Movement Action allows the player to move up to 4 spaces in any direction. Ability Actions will be described in further detail shortly. Once the player has completed their two actions, the enemies also get a turn. An enemy turn consists of another set of two actions, one Movement Action, and one Melee Attack Action. Enemies can also move up to 4 spaces in any direction, and in order to perform a Melee Attack Action, enemies would need to be located in a tile adjacent to the player.

It’s important to note that both the player and all enemies have only 1 HP, which means if anyone gets hit once, they are out of the game. This system has been implemented because to me it was crucial to set this prototype up as a strategic experience, rather than something you could fight your way through. Players must use their abilities in combination to maneuver across the environment and the enemies in a strategic manner, and their mistakes would mean death. This also correlates with my idea of Zeta as a character so far, because she is no brawler or fighter, which means that most enemies would have an edge on her physically. However, she is quite clever, which is why she uses her intellect to escape such confrontation. In addition to having 1 HP, enemies also have a stat for how far off they can see. Their line of sight is 4 spaces in any direction from the enemy, while the player does not have a limit to their line of sight.


Now that I have discussed the basic Turn System of this prototype, and the basic stats of the player and enemies such as Movement and Health, it’s time to move on to the abilities. It was necessary to come up with a table of basic stats for each ability and to assign them to a number on the dice. Additionally, each one would have a certain range, which is indicated by the number of tiles in any direction it takes for that ability to reach its target. Some abilities would take place instantly, as soon as the player chooses to cast them, while others would have a predetermined duration. Duration is measured by the number of turns a certain ability would last for. The powers I have chosen to explore within this prototype are Teleportation, Shield, Blinding Light, Stopping Time, Chameleon, and Electrocution. I would like to take the opportunity to note that the Chameleon Ability is taking the place of what used to be the Sound Wave Ability. The Sound Waves, which used to reveal enemies behind walls, are not particularly useful in a top-down view camera, where the player would be able to see most things anyway. In contrast, the Chameleon Ability provides more opportunities for a stealthy approach to problem-solving.

  1. Teleportation

    • Dice Number: 1

    • Range: 5

    • Duration: Instant

    • Effect: Teleport the player to a desired location instantly.

  2. Ability: Shield

    • Dice Number: 2

    • Range: N/A

    • Duration: 2 Turns

    • Effect: Forms a protective shield around the player, allowing them to take one extra hit from an enemy.

  3. Blinding Light

    • Dice Number: 3

    • Range: 5

    • Duration: 1 Turn

    • Effect: Causes the player to emit a blinding light from their body, temporarily stunning enemies and rendering them unable to act.

  4. Stopping Time

    • Dice Number: 4

    • Range: N/A

    • Duration: 1 Turn

    • Effect: Stops time for all enemies and NPCs, except for the player. The player is able to move and use other abilities while time is stopped.

  5. Chameleon

    • Dice Number: 5

    • Range: 5

    • Duration: 2 Turns

    • Effect: The player takes on the form of a chosen enemy within the range of the ability. Once the player has put that mask on, enemies would not attack them, as the the player would appear to be one of the enemies.

  6. Electrocution

    • Dice Number: 6

    • Range: 2 + 1

    • Duration: Instant

    • Effect: The player can damage a selected enemy within range with an electric bolt. If there is another enemy within one space of the first target, then the second enemy will also take damage from the electric bolt.

Those are the six available abilities and which number of the dice they correspond to. The interesting and innovative mechanic that we are testing here, is the actual manipulation of the dice roll. Players would be able to change the roll and strategically plan which abilities to use. As they roll the three dice they would be able to make a total of three changes to them. From left to right, the first die could be changed twice, rotated both along its X-Axis or along its Y-Axis, essentially leaving the player to choose any ability on the die. The second die from left to right could be amended only along one axis, either the X-Axis or the Y-Axis. The third and final die cannot be changed and the player would have stay with that ability and figure out how to implement it in their solution. Players can cast these abilities in any order they choose, and they are not required to cast all three. I believe that sums up most of the statistics and core mechanics of this paper prototype. So far, it seemed rather promising and it even made me think that this would not be a bad idea for a board game as well. However, as I am intending to include a fun little narrative within this experience as well, so far I will not be turning to the world of Tabletop Gaming. Now, without further ado, let’s have a look at how the testing went.

Testing the Prototype: Step-by-Step

Testing the Prototype: Changing the Roll

The example above showcases a step-by-step description of how the game would be played and how one could maneuver through the environment using the abilities rolled from the dice. However, in that specific, play-through the player did not feel it necessary to change any of their abilities because they were happy with how the dice rolled. Below I have embedded a video recording of a player who chose to change their first ability in the manner described above in the rules. The change their dice twice, once along the X-Axis and once along the Y-Axis. They chose to keep their second and third abilities unchanged. Unfortunately, the player was not successful in completing this level as one of the enemies was able to complete their turn and get in melee distance of the player. However, this play-through showcases the mechanics beautifully and according to the rules.

Thoughts and Reflection

Overall, I was very pleased with how the testing sessions for these mechanics went as it genuinely seemed kind of fun. The prototype did exactly what I was hoping it would do and it gave players the opportunity to choose how they would maneuver through the level. Each time the level was tested, players used different sets of abilities to solve the puzzle, many of which worked. This means that the mechanic successfully provides a variety of different solutions to the same problem, making each play-through unique. The condition of all characters having only 1 HP made the prototype all about strategy and forced players to think carefully about what powers they used and when. What’s more is that it seemed like all of the mechanics transitioned to the board game format beautifully, thus providing a fairly accurate idea of how this would work in a video game.

The first test conducted allowed players to roll the set of dice without any limitations, so long as they exhausted all three abilities per roll. In that test, the level was solved without much trouble and with the use of only four spells. After that test, James recommended to try and set a limit on the number of times one could roll the set of dice. We tried playing it again, under the condition that there could be only one roll. This made the game a bit more difficult, however, it was still manageable provided players planned their movements carefully. At this stage, James made another great recommendation, which was to allow players to roll the set of dice as many times as they needed, however, with each roll after a predetermined number, the enemy’s line of sight would increase. This could work quite well because it means that if players are stealthy and as strategic as possible, then they would have an easier time solving the puzzles. On the other hand, if they use their abilities recklessly, they will be a lot easier to spot, putting them in increasingly difficult positions.

Another revelation from these tests concerned the individual abilities themselves, Teleportation, Chameleon, Electrocution, Stopping Time, Blinding Light, and Shield. As I watched people play the paper prototype I came to the realization that some of the abilities are functionally identical. For example, there isn’t a great deal of different between what Stopping Time and Chameleon do, they both help the player move undetected. This has prompted me to analyze each individual mechanic again, to rework some of them, and to figure out a better set of abilities, which would be more exciting and varied. I will aim for each ability to fulfill a different function and to be more interesting than just the first thing that comes to mind, which I have realized is what a lot of the current abilities are. This massive redesign of the individual powers will commence next week and I may even need to change the type of dice I end up using.

These are the type of questions and considerations prompted from this very simple paper prototype. Once all of these mechanics are also implemented in the digital version, I would have a much greater understanding of what could work in that format and how to balance it properly. The main bit to take away from these testing sessions is that the mechanic of dice rolling not only seems to work, but it also quite fun and that the individual abilities will undergo a redesign. I look forward to continuing the tests digitally.