What a Busy Week it’s Been
The second last week of this trimester is done and dusted and we all got a Halliwell-of-a-lot of stuff done. This has been my third-busiest week out of the whole trimester, with the most busy week only having just over two hours more work done in it. This week we attempted to do tasks that would round up as many LOs to 100% as we could, at the same time, attempting to finish our final project games off.
Last Week’s Shenanigans
Before I start talking about what I have done this week though, I forgot to mention in last week’s Weekly Roundup, that I created both questions in the two-question questionnaire that was used for the internal playtest on Thursday that week, we got some good feedback from that which we pivoted our game from, with the second question about camera movement leading onto the addition of a Field of View slider in-game.
On the topic of tasks I forgot to mention last week, I helped Jordan Dodds, a Scripting 2 student, with some parts of his Scripting 2 assignment. Some errors that I helped solve were: an infinite loop when he was collecting resources, this was solved by changing the while loop to a for loop instead. Also, he wanted a coroutine in a for loop to run 10 times, waiting 1 second between each time, but it only ran once and went from values 0 to 10 in that one time, this was solved by changing the order of things in the for loop and in the coroutine.
This Week’s Shenanigans
I started this week off by working on the Keeping Track Of Studio Calculator Google Sheet side project. I had some questions to ask Jake before I could continue with the project, so instead of going to bed early, I stayed up last Sunday working on the side project. I made it so two less calculations are done manually. The only thing that is manual in the whole sheet now, is the URL 😀 😀 😀 So happy about that! We will see what I missed next trimester, but I am pretty sure it is all automatic now! (except entering your Charts URL, of course). I also added a few Conditional Formatting rules to show the user if the string they have pasted into the document from their Chart URL is correct or not.
I did a major tidy-up of the Sheet, moving all the calculations to a new sheet in the worksheet, so when people use it, there is less of a chance that the calculation stuff will be accidentally touched and broken. I made the new sheet all beautiful,as people are bound to want to look at this mysterious Calculations tab down the bottom. On the main sheet, I moved the URL enter box to up the top, it is not so out of place now and makes more sense when setting the Sheet up. More great stuff was done visually like deleting unnecessary blank columns, and making both sheets line up at the end column, so when switching sheets it looks professional.
Next was updating documentation, both for the benefit of finishing documentation off, and for the LOs it would give me.
The TDD was the first documentation worked on again this week, it was fixed and improved, before I created the first half of a Class Diagram for our scripts and their interactions. The other half of the diagram was worked on by Jake, and after he was done doing his part, I went and tidied it up 😛 Again, no offense Jake, I really like things tidy.
Next I updated the Art / Audio Bible to be a little more specific, especially about sizing of the car models. I also changed the GTR car to be a Lamborghini Aventador, because for some unknown reason, Syed, our Animation collaborator, decided to make one instead of a GTR. It looks great so we aren’t complaining, but it isn’t the car we asked for. I have talked to Syed about what happened but that has been talked about in the Post Mortem blog for this project.The TDD was the first documentation worked on again this week, it was fixed and improved, before I created the first half of a Class Diagram for our scripts and their interactions. The other half of the diagram was worked on by Jake, and after he was done doing his part, I went and tidied it up 😛 Again, no offense Jake, I really like things tidy.
Now Onto More Serious Business
I came to class three hours early on Thursday , to work on the game with Jake, and the whole time was spent trying to figure out how to put different model meshes on GameObjects. The car models were not made all in the same axis direction/orientation, so some car models were 90 degrees rotated, looking like the cars are at a 90 degree angle in the game. After class and when I got home, I spent an hour making it so the models are in their own blank GameObjects, which are placed in the Car GameObject, disabled. When a car is selected, a switch statement determines what car model is SetActive(true). It worked!
It was nearing the end of the project, so the project needed to have a biiiiig clean up as stuff was cluttered due to everything being chucked together and what wasn’t used, hadn’t been deleted most of teh time. Cleaned up all scripts, and the main event: cleaned up the scenes. There were a lot of objects in the inspector, especially in the Game Scene, different parts of different buildings were in different folders and in other building folders where they didn’t belong. This took 1.5 hours to do, but it was then once again clean and now way more handleable. Lastly, cleaned up game folders, placed everything where they belonged and deleted assets that were not needed anymore. I was much happier now that this was done.
Of course after something so drastic being done to the game, there were bound to be a few bugs, five to be exact, all trivial in size. A more mysterious bug was also fixed, that had been occurring for a while now, where some buildings seemed to be disappearing out of nowhere, the problem was that some buildings were still not tagged as ‘buildings’ even after what I thought was an easy quick-fix of selecting all buildings in the inspector and doing a mass-tagging, but of course the child buildings were not selected, only their parents, when ass-selecting buildings in the inspector.
I centralized the GUI Text on the Garage Scene. Also increased the font size to 18 from 12 and changed the colour to yellow. I was meant to do this earlier on in the project, but Jake needed a PlayerController built for the cars, and that was way more important to implement at the time, as Jake couldn’t do any of his pickup testing without cars to pick them up. In saying that, I added two more cars to the game, as Syed, our Animator, had done another two models since the first amount of cars given. As stated before, I renamed the GTR in the game, to ‘Lambo’ as one of the two models we received in this next lot was a Lamborghini Aventador, a car we did not ask for.
We received some feedback from the Internal playthrough on Wednesday, that a FOV slider in game would be a great idea as different people like different FOV levels. This is the first time I have ever used Sliders, and I made the mistake of naming the script ‘Slider’ so when I went to change the slider values, I couldn’t, because Slider.values was non-existent when the Unity documentation clearly said it was valid. Yes, never name a slider script, Slider… haha. That wasted 30 minutes.
Jake made some models for the cars when they explode, they were really cool and I didn’t want them to go to waste, so I incorporated them in 😀 They are so cool!
Jake brought up the point that other areas in our game are going to be hilly, which was a problem as we had an issue where if you left ground level, there would be no going back, so when you go up a hill, you would fly into the heavens. I thought this was a big enough issue, that I needed to try to solve it. I got close quite a few times, but other parts of the game would break because different things had different colliders and pickups were just creating non-stop NullReferenceExceptions from the game’s start. It was a good attempt, just didn’t quite get there… Luckily though, and as stated in the Post Mortem, Steve set aside some time to help us on External Playtest day, before the playtests begun. He solved the problem in the matter of around 20 minutes, a well done job, we were very thankful for his help, even though the hilly levels were left out of the game in fear of a) they not being complete enough, and b) players flying into the sun when they left the ground.
Extra Work After Project 3
After the External Playtest on Wednesday, we read the feedback and decided to make slight changes to the game before we built it for the final time. There was some feedback pointing out that the UI was not obvious enough to players, especially when it came to the controls changing. I tried to get a warning system working where the tail lights would flash as the controls are about to change, but there is a bug where the flashing only does its thing correctly the first controls change. Every time after that, the amount of time between flashes is an additional amount of seconds, so the first time starts 3 seconds before the controls change and flashes every 0.5 seconds (correct), the second time around it starts at 6 seconds before the controls change and flashes every 1 second, and the third time it starts 9 seconds before the controls change and flashes every 1.5 seconds (or 2, I can’t quite get it because it doesn’t show it long enough). In the end I made it so after the first round of control changes, it just showed the static 3 second lights-on before it changed, so that the seemingly-random flashing didn’t confuse the players, and when the player crashes their car, the timer would reset, allowing the players to experience the correct flashing again after they choose their car again.
I also fixed two parts of the first project game I made. The light following the mouse cursor would only work correctly on my computer, only in full screen. I fixed this as I am now using ScreenToWorldPoint to place the light right underneath the mouse in worldspace. The same fix applied to the blood spawning when the player goes off the path.
Blogging is Fun, I Guess…
I updated the first and second Post Mortem blogs so that they talk about why the things happened, what caused/allowed them to happen and how to ensure that it will happen again or not happen again in future projects. Apparently I forgot to do this, or maybe didn’t do it enough when I was creating the blogs, and my LO’s showed it.
I missed out doing the Weekly Roundup on time last week, so I did that this week instead! You get double Weekly Roundup’s this week, come on, be excited, they are good! (You are reading one right now).
My Industry LO is lagging behind, so I needed to write a very solid Industry Blog which hopefully gives me as much LO percentage as my first two Industry blogs together. This Industry blog talks about Prince’s, Obama’s and the BBC’s contribution to teaching youth to code. Sounds interesting, huh! Go check it out, I bet you didn’t expect Prince’s name to come up when talking about code, check out what he did.
Just in time for the end of the week, I also published an updated Career Choice blog which talks about what I have done this trimester, also an update of what I want to be when I finish this course, and also more about what I have done before this course, to get to this point.
See? I told you it was a big week this week, this blog isn’t that far off of the length of my Post Mortem blog for Project 3. I hope you have enjoyed reading my blogs, I don’t know how many more I will have done before the end of trimester (one week to go!), but you will be pleased to see at least another one blog, which will go into detail about how I would make the game from Project 3, for real.
This is Daniel Jochem, signing out.