Wednesday, February 4, 2026

CAGD 495 Sprint Blog 1

2/04/26

For this Sprint I worked on creating some awesome 3D assets to be used for our team's project game called Rally Rumble. As one of the team's 3D artists I was assigned multiple cards this sprint that involved Modeling, UV’ing and Texturing and putting them into the game engine. The entire team is motivated and working hard to get our first prototype running as soon as we can, so it was important for me to complete all my tasks. 


The first thing I started working on was creating the first rumble arena in which our game will be taking place for our players to battle one another. This consisted of making sure I read and learned both our game’s GDD and ALR to fully visualize what I was going to be making, the same goes for the rest of my cards this sprint. With that being said I started to work in Maya on 3D modeling the arena which consisted of me working with modular pieces. Since the arena would be made up of duplicate models it was important to create them from modular pieces. 


Once I had those pieces modeled for the arena, I then took them to UV so that I could start assembling the actual models. I essentially created 2 distinguishable models that looked similar but unique in their own ways so that the Arena would not look repetitive. Once the arena was assembled, I took it to texture with some basic colors and added them into our games project inside of Unity. 




The same steps were taken to create my other assets which included the Stadium Seats, the Carpet Floor and the Book as well. Overall, for each of the assets listed above I made sure that during the modeling stage of the process I did not run into any N-gons when it came to modeling them. Making sure of this was crucial so that by the time I started UV’ing and texturing those models I would not come across any major issues. 




When it I was creating the model for the carpet floor I went with a cube instead of a flat plane so that there wouldn’t be any texture issues. Overall, this would also grant us the opportunity to properly attach a collider in game for our players to battle upon. I also made sure to make our textures tile so that they could be duplicated and repeated multiple times inside of Unity as needed to fit our arena and it turned out pretty great. 




Lastly when it came to creating the book asset, I thought It would be a unique idea if I added our games icon to the cover and calling it our official Racing Manual. Thanks to our team's 2D artist I was able to grab the game icon he had created and simply make a texture to apply out of it inside of Substance Painter. The font was just as easy to apply using a text layer in painter and it honestly turned out fantastic. This is going to be a super fun detail players could see when they are battling it out when it comes to them playing our game's second Arena.






Thursday, November 20, 2025

CAGD 470 Sprint Blog 6

11/20/2025

Sprint 6 Kickoff

For this sprint I focused on a couple of things that I needed to definitely take care of since last time. One of the main crucial ones was getting our animations to play properly with our character model of the player since I could not get them to work for our build last time. My other tasks involved fixing bugs heavily that appear to break core features and mechanics of our game that would cause our players to get frustrated and not enjoy our game. We learned all of this through our team's most recent playtest feedback we had received from our last prototype build. 

So, like I explained I first started by reimporting our model that came from our FBX files that had the animations attached so that I could now use the model that had the appropriate rig and skeleton attached to it. Once I did this I went ahead and reattached all of the important components to that model's inspector window in order to match our old player game object. After I did that, I made sure to attach my animator controller as well as my respective player scripts and I gave it a shot. As soon as I did that it worked perfectly and I marked this card as complete. 




The next thing I immediately worked on was updating all of our speed variables across the board. These included player movement, animations and ability timers. It became clear to us during our playtest feedback that players thought the movement for our game felt too slow and buggy, so I wanted to address that almost immediately. All I really did for this was go into both of my player scripts and update all the float values I had declared for speeds. Player speed went from 5 to 8, Animation speed from 1 to 1.75 and another important one was sun pillar charging that went from 5 seconds to now only 3 seconds to charge. These would all now reflect faster speeds that would make our game feel much smoother. 

The last and perhaps most challenging thing I worked on was bug fixing. There were quite a few bugs that were still lingering around in our latest electronic prototype and that were brought to our attention during the feedback. There were at least 3 big noticeable bugs but one of them was by far the most annoying and game breaking bug, which was ultimately a wall clipping bug. The problem was players were using our dash mechanic, and it would accidentally cause them to clip into walls or blocks in our levels making them stuck and having to restart the level entirely. This was very frustrating to our players, and it made their play experience very poor unfortunately. It is because of that reason that I actually spent a lot of hours finding a solution to this bug. 


At first, I tried casting a ray cast in either direction that my player was facing in order to detect when my player would nearly collide with a wall so that my dash mechanic could stop there. I was basically getting nowhere with this and I had to ultimately redesign how my player was moving completely. I used to move my player through transform.translate and apparently Unity physics does not like this, so I instead rewrote all my players movement to now rely on its rigidbody attached to it. Both my player movement and dash used to move that way so making these changes was definitely necessary. As soon as I did this I would no longer be able to clip into walls and that bug was 100 percent taken care of. This was a huge win and a massive relief because this bug was terrible and game breaking.


Sunday, November 9, 2025

CAGD 470 Sprint Blog 5

11/09/2025

Sprint 5 Kickoff

For this sprint I had a couple of things to work on right off the bat. Some of them included getting our special tile effects to work directly with our players' movement mechanics, as well as getting our animations implemented to finally reflect our player idling, walking and jumping. This sprint was also important since we needed to have a new electronic prototype ready to go by the end of the sprint to showcase and get some playtesting out of it.





So, as I mentioned I began this sprint on working with the 3 different tiles that our team made for our game. The Slime tile, Dandelion tile and the Mushroom tile. All of these needed to have their own distinct effect on the player, and they basically would affect the players momentum as far as moving and jumping. I started working on the slime tile since I thought it would be the easiest to accomplish. What I did for this was create a couple of new variables inside my player collision script that would reference both new slower and weaker jump variables. Since our speed and jump variables would now be changing at certain times, I also renamed our original variables to reflect normalSpeed and normalJumpForce. This way our player could always go back to their original momentum speeds as soon as they left the specific tile. 

As soon as I had this it was easy enough to now in my same collision script write a new if statement inside OnCollisionEnter to now check when the player has collided with the slime tile. When this is true it would simply set my players original momentum speeds to the newer slower and weaker ones. I also made a separate one to check if the player has reentered a normal ground tile to reset their momentum speeds back to normal. 

I did the same process for both the Mushroom and Dandelion except that these 2 had different effects. The mushroom tile grants our player a super jump force while the dandelion grants our player super speed while they are on it and for 5 seconds after they have left the tile. Above is how I was able to get them to work similar to the Slime tile.  The only difference is that for the dandelion in order to get it to work for 5 seconds after, I needed to write an IEnumerator that could start a Coroutine as soon as I have left the Dandelion tile. This if statement would need to go on my OnCollisionExit function for it to work. 





Immediately after all 3 of those tile effects were working I started to implement some of the animations that our team had ready for me to add. This was perhaps the thing that took the longest to do and overall, there were some challenges I had to face in order to get it to work. I started by making sure all 3 of our animations were set as clips in our inspector and made sure that both the idle and walking were set to loop. After that I made an animator and attached it to our player and also set the 3 animations inside of it with the appropriate transitions to them.

The problem I encountered was that the player model I had set up in our scenes was not the one that had a skeleton and rig attached to it so unfortunately, the animations were not able to be seen even though they were actually running. In the animator window each one of the animations was getting triggered except you could not see them play out in the game view. My fix for this was to instead drag in one of the models that came with our FBX files of the animations instead and it seemed to work but by then our whole movement script had broken. It is because of this that we ultimately decided to not include animation into this build for now while I take some more time perfecting the animations. That will be my entire focus next sprint.