PRODUCTION - WEEK SEVEN

Monday 15th - Sunday 21th of April

For week seven, I will take on bug fixing and testing to find a great balance in certain aspects of the development. I will ensure any bugs I find are dealt with, and I try to find a fix. I not, I will write down and log the bug and come back at a different time. If I find no bugs, I will know to move on, but I will test thoroughly. This does not mean bugs will not appear later because different people find different bugs. I will also test the grenade and flash-bang throwing, which I aim to complete this week. The only feature missing will be the integration with online, which I will bring up with Zak.


About this, I will implement the flashbang effect in the unity adding the code and the visuals. I will also add the grenade explosion from the other project. I will also aim to implement some of the assets sent through the weeks from my team. These will include assets from the guns to the environment. These will all be sent off to Zak to implement into the final game scene. This week, instead of working on the gun mechanics, I decided to begin working on the models and items. This will allow me to understand the selection for when I make the rest of the mechanics. To start with this, I am going to add the prefabs of each gun as the model instead of the cubes I have in place now. This means I will have to create other objects to hold the other guns Kyle has made.  

Adding More Assets:

Video One:

For one of the assets I am adding this week, I have the rock barrier made by Alex and all of its textures. This means I can add this to the level for now, then I can add the textures. I imported these into the props folder, creating one for the barrier. Once I imported it into the scene, the scale was wrong, so I scaled it up. While the scale is not permanent, it will be helpful to see the textures. I create a new material and add the textures. When adding the textures, I make sure they go in the right areas and change the normal map into a normal map texture.


Also, while I was doing this, I added the pistol item and texture into the game. IO started by adding in the mesh and textures, then created a material. To this material, I added all the texture maps and set them in the right place. Again, like earlier, I made sure to set the normal to a normal texture in unity. Like the above model, I had to scale up the mesh to fit the rest of the items I have added so far.


Video Two:

I begin with the pistol model, I change the pivot of the gun to make sure I can centre it. I move it into the position to ensure it lines up. All of this can be changed later once the team decide on how this should be positioned. For now, I wanted to just get the basic position set up. I make sure the gun is rotated towards the front, so the gun is facing forward. For the next weapon, I move on to adding the UMP45 mesh to the item hierarchy. I follow the same steps, scaling it and aligning it to the mesh I Have created. I removed this old mesh, and now I can use this gun to help scale the other guns. 


For now, in this scene, the scales are not permanent and will change later with help from the team. Next, I begin adding the mesh for the sniper rifle. This is the first model I have not added a hierarchy item. So to start, I add one and create an empty object to hold the mesh. I then added the sniper model I added from the object script. I scale this up and align it so it fits with the last gun. Next, I move on to adding the mesh for the assault rifle. I first add the item in the hierarchy and add the empty object. I then add the mesh to that and scale and align it.


Next, I move on to the guns I have not added yet, so I start by adding the sniper rifle item and an empty sniper rifle to hold the model, I then add the model and scale it. I move it into position, but the scale and position are up to change when the team modify it. Then I move on to the last weapon I have, a model of the assault rifle. I add the object and parent to hold the model, then I add the gun. I then scale it up and align it towards the front. After this, I will move on to adding the items in the hierarchy. 


Video Three:

Next for the guns, I am going to add the rest of the items, including the knife and rocket launcher. To start, I create the parent item for the rocket launcher and add a child under it. To that child, I will add the mesh once it has been created. I copy this and rename it for the knife. Next, as I have created the objects, I add all the scripts for the items to the ones missing. To these, I add the corresponding item from the collection. As the knife does not have an item type, yet, I created a new script to hold the code for the knife scriptable object. In this script, I copy the code from the gun and throwables instance scripts, changing it to a new knife instance. Then, back in Unity, I created a knife instance for the huntsman knife. To finish this all off, I add these to the list of references on the player.  


Video Four:

First, to add the plasterboard, I dragged the model to the scene and scaled it up. This is not the permanent scale, as it can change for the map. I create a new material for the plasterboard, making sure to name it to keep order. I begin adding the maps to the material, making sure to add the correct ones in the right parts. Furthermore, I make sure the normal map is selected as a normal map in Unity to ensure that Unity registers it as a normal map, adding the details. 


Next, I move on to adding the textures to the screw. This will be a part of the Barrell and later be added to it. I add the mesh to the scene and scale it up so I can see the textures to check for any issues. I create a texture for the screw object and make sure to name it accurately. Furthermore, I begin adding the maps, making sure they are all in the correct spots. I added the normal map, ensuring it is in the right spot. I changed the map to a normal map from a texture, so Unity can read it as one.

Video One!

Video Two!

Video Three!

Video Four!

Grenade Explosion:

Going along with my research, I decided to use the grenade explosion code Dave Game Development. Unfortunately, like I said during the research he did not go over this in a video so had to download the code instead. I did this to ensure that the code worked along with the throwing script, as I could not be sure a random one would. So I went to the link on his discord and found the project file. I then went on to the project I downloaded and dragged the script over to mine.


Because of this method, there is not much I have to change, but I wanted to get rid of some of the code I did not need for now. First, I removed the damage enemy code because this doesn't work as I don't have a health system yet. I removed some of the other code that aided this part and worked differently than I needed.


An example of this code can be seen in video one, and the effect can be seen in the example video.

Video One:

Grenade Explosion Example:

Grenade Explosion Example:

Game Testing:

Video One:

As a part of the testing for this week, I wanted to help test the game as it is now. I did this on Zak's multiplayer scene as he sent a build-out to the group. I started by downloading this and opening the scene. While I was testing this, Zak and Kyle were testing the game with me. While I was in, I was aiming to find issues with the current build, whether they only affect me or all participants. Once I opened the build, I was faced with the connection and typed in my name. Here was the first problem in the scene, after asking Kyle what he saw, he said my name only appeared as a test instead of the set name. After I died in the game, this seemingly changed to the name it was intended to be.


After I connected and my name had reset, I noticed a large amount of glitching from my camera when turning. This affected me only as I asked the rest of the participants if it was happening to them, which it was not. This can be seen in the video, as I have a glitchy camera, but everyone else seems to be unaffected. The next issue I saw was an abundance of test players that before I recorded were not there. While on my screen this looked fine, on the other screens they could see them. Another issue I saw was the names of each player could be flipped and if you looked up you could see your name. I believe Zak is working on fixing this now, so it will not be an issue for long.


Video Two:

Next for testing, I wanted to perfect the grenade and flash-bang throw. For this, I will test the throwing until I get to a point I am happy with. For this, I will look back at the video reference that I used for the effect mood boards. Using this, I will try to get a similar physics from the throw to align with similar instances. There was a lot of tinkering with the values, mostly changing the throwing parameters and the gravity and mass. Before I made all these changes, I copied Mitchell's gravity value to ensure that in the final game, the systems would still look good. Unfortunately, I did not get the perfecting process recorded, but below is a screenshot of the current settings I used. I added a video comparing the last throw before the changes to the new throw using references to the games from the video. 

Video One:

Video Two:

Images:

As you can see in the images, I gave the grenade and flash-bang a slightly heavy mass of 1.2. But after testing more, the grenade felt better at a mass of 1.4, giving it a better roll. To achieve the bounce, I created a new physics material and set it to have some bounciness. This is the main way I got the grenade to have the little bounce while rolling seen often in the examples.  I have set the power to 13 for the forward direction using three for the upward force. This ensures it goes mostly forward rather than flying upwards. I set the cooldown to .2 but this could change with more testing. 

Reflection

Assets- Reflection:

As for the assets, I am happy with their incorporation, and they look as they are intended. I did not run into any issues when adding most of them, but the plasterboard has some slight issues. This mainly was the problem of being able to see through the object slightly. I do not know why this issue occurs, but it may be a simple issue with the models' faces. I believe I did well in adding the guns, although the scale is still not right. This will later get taken care of when we add the guns to the final game project.


Grenade - Reflection:

I am happy with the grenade explosion as it was an already tested feature made by another person. While I am not happy that I had to use pre-made code, it served as the best option in this case. That is because having to use another series or tutorial would not have guaranteed that it would be comparable with the system already in place. This would have led to a longer, more troublesome process. I am happy with the amount of customization that this script offers. I am happy that I managed to streamline the code to fit better with the stuff I have already completed.


Testing- Reflection:

The testing proved very helpful l as it helped me find issues in the multiplayer test. This allows Zak to understand the bugs and what he should aim to fix later. It has also helped me get a better understanding of what the game looks like and what we have so far. For the grenade system, I am much happier with the current physics of the throwables. I believe once everything is in the system, it will look great, comparable with other games.