The rest of the week was spent fixing the bugs with the powerup UI and finally redoing the menu systems. Gone is the neon, pixely chalkboard rip off!
Week 15: Bugs, Bugs and more Bugs
So this would be the second too last week before the game is due, not counting spring break. I have been playing the game finding bugs with collision. I have fixed most of the problems and will continue to work on other problems for now.
Week 13: Credits & Gamepad
The majority of my time was spent making sure that the menus have controller support. I had bare bones functionality implemented until my teammates brought in an Xbox controller for testing. It took a lot of tweaking to get the buttons to properly communicate to each other, and I had to add input event buffering due to the gamepad sending off multiple events at a time.
On a less technical note, we now have team shirts!
Week 12: Prep for Beta
The window resize was completed on the 3D rendering side, so I worked with Nick to get the UI to properly change sizes with the window. There are still a few bugs to iron out, mostly in regards to the scoreboard and pause menu.
Week 13: Optimization and bug fixes
For the past few weeks I have just been trying to optimize and fix bugs. I have added a few things such as having the floor pulse and working with Sam to get that networked other than that it has just been bug fix here and tweak values here. I have gotten it to stay around 60 FPS on single player but there is no hope for that on multiplayer due to how the networking of objects is done.
Week 10: Fixing Scale, Player Positions, and Scoreboard
The first thing I decided to do was to make the scale of the game correct. Up until this point, we were using a mage, a test asset, that was about 3 meters tall. This is about 10 feet tall. This meant that all of our other assets (the hexagon and arena) looked really small compared to the mage. So I decided to scale the mage down to 1.8 meters, so that everything was scaled correctly. While it’s easy to scale the mage down, we had to change several different things for our game to be back to normal.
Continue reading “Week 10: Fixing Scale, Player Positions, and Scoreboard”
Beta Build
Week 11: AI and Strange Occurrences
Every time after someone scores, everyone is reset to a position in the arena and the camera was also being reset. So I had to ask my teammate where he was doing this so I could make sure it skipped the AI. Whenever the AI ran to something, noticeably the ball, it would cause them to go up into the air. Also, when I had the ball and I jumped, they would jump with me. When debugging, I saw that in my RuntTo functions, somehow, the y component was being changed even though I was multiplying y by 0. So I just bypassed that by manually setting it to zero after my calculations.
Then I noticed that if the AI targeted you but stopped before they could hit you, they ended up bumping into you afterwards. Meaning you would still be the target and it would treat it as if they had attacked you. So I just used an isAttacking bool that would null out the target object and the problem wouldn’t happen again.
Week 10: AI and Working
When play testing my AI I noticed that the tank would only hover around the main guy if it was another AI, so I added code that would have him hover even if you were a real player. Then I also noticed that the AI couldn’t score anymore because that goal was off the ground now and a simple throw forward wouldn’t get it high enough to score. So my teammate let me know what function I should call in the Camera in order for the AI to look up. So in the Score function, before they threw the ball, I rotated their cameras up before they tried to score. Later I realized that that wouldn’t work every time because then, when they would try to score, their camera would keep going in circles. So I just decided to take the easy route and rotate their camera in Init.
I saw that even after the AI hit you in attack, the target wouldn’t be nulled and wouldn’t actually change until they wanted to target someone else. So I just set it to null after they hit you. Then I finally decided that my second goalie shouldn’t actually be right next to the enemy teams goal with their goalie. I had it just run back and forth a little distance away from the goal that way it shouldn’t be in the way. It also attacks an enemy if its team has the ball.
Week 11: Scoreboards
Networking the scoreboard did not take too much effort once Tom had all of his initial stats working. I added the stats for the scoreboard to the game state, and every time the game state would be sent the scoreboard would reach into the client to grab the specific stats of a specific player, even if that player is just AI. I had to add a few new functions to the player controller so I could easily set specific stats (the controller is called on when the scoreboard updates itself), but, otherwise, I did not have to tamper too much with the player controller.
There was also an issue with the AI when the player returned to the main menu and started a new game. If they switched teams, then the AI would still be on the blue player they became. I added a remove component function to game objects that allowed me to pass in the class of the component. It would remove the first (and hopefully only) component of that type.