Blog post have almost seemed to stop as the project was heading into presentation week. The weeks prior to the capstone presentation slowed down due to a rather unfortunate issue addressed in the “Unreal Issues” blog post. As for the week of presentations, it was also without posts due to the said presentations. This post is going to catch the reader up on what I have done just before heading into capstone and address how I felt my presentation went.
First, what have I done since the last update? The last update addressed an issue with the Unreal Engine and the way my grass was implemented in 4.20. That issue was not resolved, but I have added several other features. Listed below are the additional features.
Timer: I built a timer using the FTimerHandler functions within Unreal. It just keeps a running count of how long the game has been played
Distance: I added functions to the mower to calculate the magnitude of the vectors it moves along. The actual distance the mower would be expected to move is much lower than the sum of the magnitudes. I fiddled around with a number that I thought I could divide by to accurately show how far the mower moved. The distance measure that I labelled the conversion was in feet because I felt it was the best representation. That said, this is not a true measurement of feet.
HUD: On the screen, I made a HUD to display the timer and to show a progress bar of the game as it progressed. This was my first HUD I built for the game and acts as the main HUD. A second HUD is the overlay for when the game finishes, either by parking the mower in the shed or by sinking it in the water. The shed will allow the player to back out and continue playing while the water will restart the game after 10 seconds. The second HUD displays the overall stats of distance traveled, time taken, count of grass cut, and grass cut by percentage.
Mower Handling: A small amount of code was added to keep the mower on a certain track while running at higher speeds. This not only feels more accurate to a real mower, but is actually easier to drive at higher speeds.
Mower Calculations: To the player driving the mower, this change seems almost pointless and wouldn’t likely have been noticeable. If the user wouldn’t notice a difference, why change it? Well, I will explain why this was bad to give a better understanding. Originally, I had only calculated the rotation of the tires in one order. This was bad due to the fact that rotations aren’t commutative and that caused the mower to inherently slide to the right without even meaning to. The user wouldn’t notice this however because the actual angle measure I rotated by was small enough that this was practically insignificant, but if the player would have gone straight for extended periods of time (much larger than the allowed area), the effect would have been noticeable. To summarize, since both the changing angle measures and the area of possible distance were small, it was unnoticeable to a player. What the new calculations really means is that the mower no longer moves properly because of smoke and mirrors, but rather because it actually moves as intended.
Sound: I added mower sounds to the game which add to the effect. I found the mower sound effects on OrangeFreeSounds.com. I also added a feature to toggle it on and off.
Camera: I actually added two different camera features. I added a top down camera that can be swapped to instead of first person. The button is a toggle that can used to switch camera mid game. Another camera feature I added that is only in effect while in first person mode is to look left and right with the two triggers of the controller. The trigger sensitivity determines how far you actually.
Additionally, I did some documentation and rearranged a big portion of my code. I actually made some new functions which allowed me to move some code outside of the Tick() function which made the program much more readable.
At last, I will address how I felt the presentation went and my thoughts as the class/project comes to a close.
To begin with, I would like to give a big thanks to Dr. Pankratz, Dr. McVey, and Dr. Meyer for helping me through the project. I feel as though I was in one of their offices once a week talking about the project and shooting off ideas or getting feedback. Without them, the project wouldn’t have come nearly as far in this time frame.
As for my presentation, I was excited going into it. I had asked my co-workers in the IT department to play it before I presented and they had good feedback and responses which was really heart warming. I have always been fond of presenting, so I wasn’t nervous going into the presentation either. Actually, in my early test runs, I found that I had too much info and had to cut a lot out. In the end, I felt that my presentation had a good flow without going to in depth, but also hit enough major points.
Overall, I am happy with the way it turned out. I definitely had more plans for the project that didn’t make it to the light, but I feel as though the current model is in a good state as a proof of concept. I enjoyed the project enough, I might just keep working on it.
“Its nice to look back at the grass after you are done mowing it. Really shows what you accomplished.”