Monday, August 27, 2012

Week 7 of Midterm

We are now in crunch time. We present this coming Wednesday 8/29/2012. I feel that our project is fairly complete for the alpha stage and that our presentation will go well.

Of course you can't have a presentation without bugs, some bugs that we are experiencing right now is that if you walk on the edge in a ramp that we created you get the error message "Player has been killed by someone" when this happens we need to close the game right away, because it would crash the program. I don't know what it is I would suspect it has something to do with collisions but I'm not one hundred percent sure on that we will have to do some play tests to see if it's true. Another bug that were having is that the enemies at the first platform sometimes don't attack the player and just stand there, I think that it has to do with them spawning before the player spawns and don't know what to attack in that short period of time. Another bug is that we have a river and if you jump during the time you are in it you would fly across the screen you won't fly out the level because we added some mountains in it. A bug that I'm aware of is that when you do your attack animation you "fire" a projectile this is a problem because what if I want to spin the "hit" the enemy. I would kill the enemy before I even make a complete turn. I think that I might be able to fix this with adding a delay right after the animation is played but I haven't tested it yet because I'm not sure how to do it to a human player, I know how to do it to a enemy but not a human player. Another bug that I'm running into is that enemy's can hurt each other. I tried doing some research on how to eliminate friendly fire or even reduce it to nothing but everything I tried doesn't work. I was thinking of seeing is there's anything that would detect what type of damage you take and  reduce or eliminate it. Those are all the bugs that I know we have and are going to have to fix before we present in the Beta presentation which is in 8 more weeks.

This week I had to do a Boss AI, a walking animation for our Mini Boss as well as a attacking animation, another walking and attacking animation for our Main Boss, and 18 models. Ten for our Main Boss, Seven for the Mini Boss, and one for the regular enemies. The models weren't hard at all the only thing that took me the most time was the Boss AI to work the way I wanted it to work. For the Boss AI I had to do a couple of things the hardest was to make him wander around. this was done by giving him a bunch random positions and him choosing which ones to walk to. It sounds simple but coding it is a whole another story. However after 2 hours of pounding it I was able to get it neatly done it just something acts strange and pick a coordinate located across the map and it tries to walk there through walls. The Mini Boss had to be big because we wanted him to look different from the other enemies and the player to know that he will react differently to. The Main Boss is huge if I would compare him to Uno I would say that his shoe is bigger than Uno. The final addition we added to the regular enemies was that one of our group members said that why don't we add a zero to show that if the enemy hits zero they will die. So that's what I did to the regular enemies. I included Uno in the following screen shots so that you can get a understanding of the scale the enemies are.

(Main Boss Attack Animation - Main Boss Walking Animation)
(Main Boss)

(Main Boss Attack Animation - Main Boss Walking Animation)
(Mini Boss)

(Mini Boss Zero - Normal Enemy Zero)

Sunday, August 19, 2012

Week 6 of Midterm

This week i didn't really have anything to do all my responsibilities are complete, so I decided to go back and polish some things off before we present in two weeks. Something that bottered me but we could have gotten away with is that both Uno and Esa don't have a mouth. In our original sketches Uno and Esa had mouths because we wanted to have them talk. Later we decided that were just going to use grunts and mumbles for the voices and have it subtitled .
(New Uno    -    Old Uno)
(New Esa   -   Old Esa)

I also went back and re-positioned some of the old meshes so that there perfectly aligned with the grid and won't have a problem when putting them in the game, but the changes are so small that if I were to have both meshes next to each other you wouldn't be able to tell. I also made Uno's movements more smother in the game. Before he would walk left and right the same way he walks forward. When I was making the animations to walk left and right I came across a problem that made me laugh at the end. I had some complicated animations that had Uno looking forward while he was move slightly to the left/right. So when I tested them out to see how they look. It look very jittery and awkward when he moved diagonally. So with that I said to myself what if I try something really simple like just taking the animation of him walking normally and turning him left/right and voila it worked and looks amazing. The animation of him walking back was something different because I asked myself if I walk back I'm not going to be jumping ill just take small steps and that's what I made him do. I was also able to give Uno a Idle animation It happens one every 10 seconds or so I will just show it on a loop so that you don't miss out on it. Since the new animation are the same as the walking I just made him face a different direction I will not include them. The little white nub is where the Sword of Subtraction would go.

(Old Left Animation - Old Right Animation)
(Back Animation - Idle Animation)

I also got working on some collectibles that the player would be collecting in the level. I also thought that we didn't have enough trees so I made a couple of extra. I also got started on the second level and some of the meshes that we will be using on it. Just like some of the old meshes I have a comparison to the 3Ds Max Render and the UDK Render so that you can get a better look at the mesh in a different default light.

(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(3Ds Max Render - UDK Render)
(Here is a part for the Addition Level I had to make this a top down view so that you can see the whole level)

Sunday, August 12, 2012

Week 5 of Midterm

This week I was placed in charge of doing two very important things. One was to complete the weapon and fix the distance issue that I was having. The second thing I was placed in charge was Mesh-Swapping. They were both fairly hard but all I had to do was ask myself the correct questions then I figured it out. I finished to quickly that I was able to get ahead in things I wanted and needed to do. I now got all the enemies excluding the bosses in the game and working perfectly. I was also able to look back on Uno's attack animation and give him more. I will now need to ask the team if they want to make it so that Uno will do a random one of them or so that it is a sequence. I'm sure they will want to make it a sequence, but I just want to make sure I don't put a lot of time into something that will be changed right away because it is completely wrong from the start.

Fixing the issue with the weapon wasn't easy at first but once I figured out what to do like everything else it just falls into place and becomes child's play. My issue which I originally thought was that the problem was in the weapon not having a set range. Later, I found out that it was the actual AI that I had to change not the weapon. Once I understood that I just had to add a distance check between the enemy and the player. We originally wanted the enemy to look at Uno then 'charge up' then attack him so that the player would have enough time to react, but after finding out that there are limited animation that we can call I made it so that when the enemy see's you they will just do there normal running animation and when they get a set distance they switch to there attacking animation. I thought that 'We'll I can make it do the attack animation when they see you then freeze up for a little while then attack.' the only problem with that is that what if the player doesn't see the enemy and the enemy does. It will defeat the whole purpose if him having the delay to react. So then I thought what if I make it so that as soon as the enemy gets a certain distance he will stop charge then attack. The problem with this is that if the player decides to just run away slightly after the charge up the enemy would walk to that line and start charging up again. Shortly after that I thought about adding fuzzy logic to the distance. Fuzzy logic was mentioned in one of my previous posts in this blog, it is when you blend the line between two things like red and yellow it is orange in the middle and between orange and red is orange red but up to what time it will stop being orange and start being orange red. The reason I had for not implementing fuzzy logic is that it would still be the same. but if I set it to random all the time what would stop the enemy from stopping all the time because he is in that fuzzy distance. So instead of dealing with all the stopping I just decided to remove it all together until we figure out a better way to approach this.

This is the fixed enemy melee weapon.

The other thing I was in charge to do was Mesh-Swapping. Mesh-Swapping is when you have lets say a character and something happens like he changed clothes. instead of loading a completely new model you would just swap the current model for the new one. You can also do it so that you have a box and something happens in the game that would change that box into a sphere. We require Mesh-Swapping for this game so that the enemy would go from a number to zero. For example, if your fighting a number 5 you will hit him with the sword of subtraction then he would be subtracted by one then he would get Mesh-Swapped to four, because 5-1=4 and that would also be a indicator of how much health they have left. Just like the distance problem with the weapon I had to ask my self the right question and that was 'Ok what makes this model have it's certain mesh?' Then it hit me, you would just have to change the variable that makes him start off with the default mesh then you would set another variable to check how many time you hit them. I had a problem that since my weapon does absolute damage and drops health down to zero the game engine would say ok this enemy is at zero stop everything that it's doing or is going to do. What I had to do was make sure that I was able to check if the enemy took damage so it would just check that it's health isn't 100% then at the very end it would take the extra damage to kill it but I would have to give him full health so that the enemy doesn't continue to get changed. The problem with that is that you just can't subtract health from a enemy, you can give them health but not subtract it. I had to figure out some crazy way to call on the damage function and have him take the extra little damage that my sword missed. After I had it all figured out all I had to do was plug in some variables so that it can load the proper model. That is when I had to finish the rest of the enemies.

The first enemy is stuck in the attack animation and I haven't been able to get him out of it without breaking the model.


Here is the Color Wheel we decided to use for the Numbers. We skipped Blue, Red, Purple, and Pink because those colors are for the main characters and we want them to be special.


Here are the animations that I was able to come up with, because I had a lot of extra time to do them. The little white nub is where the weapon is going to be placed, however if will not be rotated that way I just had to curve it so that it gets positioned in UDK correctly.

(First Attack - Second Attack)
(Third Attack - Fourth Attack)
(Fifth Attack)