This week I've been working on making the game feel more arcade like. I tweaked a few variables in arcade mode to give it a more "wave-like" feeling. I also tweaked the capital ship AI to make it feel like more of a fight. In attack mode, they approach you slower so they have more time to fire at you.
I also changed the turrets a little. I widened their range of movement to a 180 degree dome. This makes it a little easier for them to fire at you. I also tweaked the AI for the second cap ship so that the weak point isn't enabled until you destroy all of the turrets. That makes the second fight a little harder and a little more involved. To compensate, I reduced the shield strength of the turrets as well, and I think I'll make them vulnerable to weapon and big bomb pods so it's not so hard to kill them.
Tuesday, March 29, 2011
Friday, March 25, 2011
Polish and Submitting
The last few weeks have been all about polishing the game and making sure everything works and looks nice. Also, we submitted our game to the XBox live community for play testing. We got some good feedback about the game and a bug that we hadn't caught that has to do with saving and loading the scores. Daniel was going to look into making it a synchronous call so that the game waits for the data do save/load and hopefully that will fix it.
I worked on the sound system - the framework for making our sounds 3D was in place but wasn't being used. I also fixed the problem with too many sounds being played at once so there was a lot of distortion. I edited the song Burning ambition so that it looped and made the music loop when it finishes. I also trimmed the gravity sound effect and made it loop in the player instead. That way it can play as long as the effect is active.
I made a new sprite sheet for the cap ship weak point. Brandon showed me how to do lightning in Maya so I made a lightning ball and colored it purple. I also shrunk the normal maps and color maps for the ships to reduce our project size. I changed the health meters to correspond to the ship that's currently targeted and I added some lines to the radars to make them look more like radars instead of just circles. I also added a new menu screen background and separated the title into its own image so we can make sure it's title safe.
I finished up the turret class for Jason and Wilson. They were really close but they had never worked with models before so it was a little tough for them to finish. I also added code to the AI class so that the ships bug out after a certain amount of time if you haven't killed them. They only do it if you're not in phase 3 since you need to kill the ships in phase 3 to collect the tactical pod. I also got random ships to spawn in phases 1 and 2 so it's not just scouts. Only ships you've already seen up to that point will spawn though.
I worked on a few of the suggestions from the industry professionals that came to our class. One of them was to change the targeting system so that you're always targeting an enemy, and clicking L3 just targets the enemy in front of you instead of toggling it on and off. I tweaked the controls so that you can always barrel roll with the bumpers and change targets with D-Pad up and down.
I worked on the sound system - the framework for making our sounds 3D was in place but wasn't being used. I also fixed the problem with too many sounds being played at once so there was a lot of distortion. I edited the song Burning ambition so that it looped and made the music loop when it finishes. I also trimmed the gravity sound effect and made it loop in the player instead. That way it can play as long as the effect is active.
I made a new sprite sheet for the cap ship weak point. Brandon showed me how to do lightning in Maya so I made a lightning ball and colored it purple. I also shrunk the normal maps and color maps for the ships to reduce our project size. I changed the health meters to correspond to the ship that's currently targeted and I added some lines to the radars to make them look more like radars instead of just circles. I also added a new menu screen background and separated the title into its own image so we can make sure it's title safe.
I finished up the turret class for Jason and Wilson. They were really close but they had never worked with models before so it was a little tough for them to finish. I also added code to the AI class so that the ships bug out after a certain amount of time if you haven't killed them. They only do it if you're not in phase 3 since you need to kill the ships in phase 3 to collect the tactical pod. I also got random ships to spawn in phases 1 and 2 so it's not just scouts. Only ships you've already seen up to that point will spawn though.
I worked on a few of the suggestions from the industry professionals that came to our class. One of them was to change the targeting system so that you're always targeting an enemy, and clicking L3 just targets the enemy in front of you instead of toggling it on and off. I tweaked the controls so that you can always barrel roll with the bumpers and change targets with D-Pad up and down.
Friday, March 11, 2011
Wrapping things up
We're just about done with all the functionality. Right now survival mode is done and we're finishing arcade mode. We need to get the space station in and tweak the capital ship battles. The AI for the capital ships is different than the rest of the fighters, so Pace and Felix and Daniel have been working on that.
There's just been all these little tweaks and things we've been meaning to get in but haven't been able to until now. I got trails to appear behind the pods, but engine trails for the ships are a little processor intensive so we're not using them right now, though the system is in place. I got maneuvers in the system - a barrel role and two immelmann rolls (up and down). The screen shakes when you get hit and the controller rumbles when you're getting low on health. The HUD is now title safe and scaled to the screen size. Felix and Jason started the Energy Ball system and I finished it up. It uses an animated sprite. I got them charging and firing at the player for the capital ship and just firing for the bombers. I put shields in the game so if you get hit or an enemy gets hit their shields light up. Also, if you use a shield pod your shield glows blue for a few seconds.
I fixed the texturing issues on the xbox - the glow maps were screwed up and the texture mapping was all distorted. I fixed an issue where the animated sprites weren't being positioned correctly because the field of view was changing. Finally, I cleaned up most of the content - I got rid of stuff we weren't using and renamed everything to be more consistent. I still have to go through and convert everything to png's and jpg's and adjust the resolution on some of the bigger textures to save space.
There's just been all these little tweaks and things we've been meaning to get in but haven't been able to until now. I got trails to appear behind the pods, but engine trails for the ships are a little processor intensive so we're not using them right now, though the system is in place. I got maneuvers in the system - a barrel role and two immelmann rolls (up and down). The screen shakes when you get hit and the controller rumbles when you're getting low on health. The HUD is now title safe and scaled to the screen size. Felix and Jason started the Energy Ball system and I finished it up. It uses an animated sprite. I got them charging and firing at the player for the capital ship and just firing for the bombers. I put shields in the game so if you get hit or an enemy gets hit their shields light up. Also, if you use a shield pod your shield glows blue for a few seconds.
I fixed the texturing issues on the xbox - the glow maps were screwed up and the texture mapping was all distorted. I fixed an issue where the animated sprites weren't being positioned correctly because the field of view was changing. Finally, I cleaned up most of the content - I got rid of stuff we weren't using and renamed everything to be more consistent. I still have to go through and convert everything to png's and jpg's and adjust the resolution on some of the bigger textures to save space.
Friday, February 18, 2011
More graphics
I haven't been very good at posting this semester, but I have been doing a lot of work on the graphics system. I added an animated sprite management system which I think is more efficient than trying to do particles. I didn't get rid of the particle system, but for certain effects (explosions, gravity well, plasma balls, ship energy centers) I decided that an animated sprite would look just as good as particles. I also added explosions and the gravity well effect using the animated sprites.
I also added a space dust system. Basically it generates a few random white spots around your ship that you fly through to show that you're moving. When the sprites get behind the camera, they respawn in front of your ship. I also had to put in a case for when the ship is going in reverse to handle spawning the sprites a little differently.
Finally, I added the icons for the shield, weapon, gravity and big bomb pods for the hud. I had to tweak the images a little because we wanted them to be color coded with the buttons that activate them.
The next thing I have to work on is getting some kind of trailing system in place. We want a trail to go behind the pods as they shoot and also coming out of the engines of the ships. We could do it using particle effects, but I'm also looking into trying something with the post processing system to see if I can get it to happen in the glow pass. I'm thinking of maybe adding another texture to the model that gets blurred and fades as time goes on.
I also added a space dust system. Basically it generates a few random white spots around your ship that you fly through to show that you're moving. When the sprites get behind the camera, they respawn in front of your ship. I also had to put in a case for when the ship is going in reverse to handle spawning the sprites a little differently.
Finally, I added the icons for the shield, weapon, gravity and big bomb pods for the hud. I had to tweak the images a little because we wanted them to be color coded with the buttons that activate them.
The next thing I have to work on is getting some kind of trailing system in place. We want a trail to go behind the pods as they shoot and also coming out of the engines of the ships. We could do it using particle effects, but I'm also looking into trying something with the post processing system to see if I can get it to happen in the glow pass. I'm thinking of maybe adding another texture to the model that gets blurred and fades as time goes on.
Tuesday, February 8, 2011
Glow manipulation
I did a couple more things to the graphics engine to allow the glow to be turned on and off for certain objects. Namely, I made it so the pods only glow when they're in use. I also had to tweak my custom shader code because the normals weren't showing up correctly. The models were being drawn flat with no shadows. I figured out that this was because the actual normals of the ship weren't being used - just a normal map. What's supposed to happen is the normal map is used like a filter through which the actual normals of the models get passed. Without the actual normals, the normal map doesn't do anything.
I also tweaked the targeting mechanism so that not only does it consider distance of the enemy when deciding which enemy to lock onto, but also the angle between it's relative position to the player ship and the player ship's forward direction (in other words, how close is it to the player's targeting reticle).
I also tweaked the targeting mechanism so that not only does it consider distance of the enemy when deciding which enemy to lock onto, but also the angle between it's relative position to the player ship and the player ship's forward direction (in other words, how close is it to the player's targeting reticle).
Friday, February 4, 2011
Graphics engine overhaul
I should have posted this yesterday, but I forgot to. I re-vamped the graphics engine to accommodate post processing. As of now I have a glow post process implemented. To make an object glow, we give it a glow map - a texture mapped to the uv's of the object that's black except for where we want the object to glow. The new system renders the scene to a render target instead of the screen, and then blurs the areas of the image where the glow textures are mapped before drawing it back out to the screen.
I also finished up the lasers, though if I can get a post processing/particle effects trail happening, I might redo the lasers again to make them more efficient. In order to get them to be the right shape, I had to make 3D models instead of just billboard sprites, but if I can figure out how to make a trail behind an object, I'll go back to the sprites. I have to work on the trail anyway for the ships and the pods, so if i can get it working right I'll try it out on the lasers too.
I also finished up the lasers, though if I can get a post processing/particle effects trail happening, I might redo the lasers again to make them more efficient. In order to get them to be the right shape, I had to make 3D models instead of just billboard sprites, but if I can figure out how to make a trail behind an object, I'll go back to the sprites. I have to work on the trail anyway for the ships and the pods, so if i can get it working right I'll try it out on the lasers too.
Tuesday, February 1, 2011
AI, Laser and other tweaks
I improved the AI so that it's a little more fun to fight. They now speed up after they fly by you so you can't catch them without using an engine pod. When they turn around and start to fly back toward you, their speed cuts in half so you have more time to shoot at them. This solves the problem of the game moving too fast without compromising the speed of the ships.
I also tried for hours to get the lasers to billboard around the z-axis instead of around the y-axis with no success. After profiling the engine, we decided that we can use a model instead of a billboard sprite and it wouldn't cost us too much more.
I also tried for hours to get the lasers to billboard around the z-axis instead of around the y-axis with no success. After profiling the engine, we decided that we can use a model instead of a billboard sprite and it wouldn't cost us too much more.
Thursday, January 27, 2011
Lasers and post processing
I've started doing some experiments with post processing and I've begun creating a system to apply those effects to our game. I've also been trying different ways to redo the laser system, since the old system was very expensive to draw and update each laser. I've been trying to find out if it would be better to use a billboarded sprite or an invisible 3D model (a locator basically) with post processing blur. I haven't been able to find much documentation on 2D post processing, so I'm leaning toward the latter but haven't yet implemented it.
Tuesday, January 25, 2011
4.0 Conversion
We're now converting our project over to XNA 4.0. This also entails restructuring and cleaning up the code. I had to fix a few glitches with how the AI enemies were updating their direction. With the player, the controller determines their rotation, but with the AI, their direction is determined by actually changing it to point toward the player. Because the model's "forward" vector was being updated but the "up" and "right" vectors were remaining the same, the draw function was skewing the models and they eventually disappeared entirely. The world matrix was getting updated with every call, but for some reason, calling "Direction.Normalize()" wasn't actually normalizing the direction vector. I finally tried "Direction = Vector3.Normalize(Direction)" and that seemed to work. I still don't know why the other call wasn't acting like it's supposed to. It was probably silently failing for some reason.
I also got a few of the HUD elements back into place, although they're still not fully functional and I still need to clean up some of that code to adjust for the "title safe" area.
I also got a few of the HUD elements back into place, although they're still not fully functional and I still need to clean up some of that code to adjust for the "title safe" area.
Thursday, January 20, 2011
Busy busy
I've done quite a bit since the last time I posted. I put the HUD elements that Brandon designed into the game. I created a system where enemies spawn at intervals at random positions around the player for survival mode. I did lots of AI work and made them do fly-by passes at the player.
I also used what I learned for the radar with the viewport transformation matrix in several other aspects of the game. For the targeting, I calculate where the enemy will be by the time the laser gets to it and draw a "lead target" for the player to shoot at. I also draw a square around the currently selected target and an arrow pointing to the direction you should fly to get to the enemy quickest. I used the same ideas to make the AI aim better.
The same principles fixed the position of the crosshairs in the third person view. They adjust their position according to how far away the target is.
I also used what I learned for the radar with the viewport transformation matrix in several other aspects of the game. For the targeting, I calculate where the enemy will be by the time the laser gets to it and draw a "lead target" for the player to shoot at. I also draw a square around the currently selected target and an arrow pointing to the direction you should fly to get to the enemy quickest. I used the same ideas to make the AI aim better.
The same principles fixed the position of the crosshairs in the third person view. They adjust their position according to how far away the target is.
Tuesday, January 11, 2011
Back in the saddle
Over the break I did a few things to the project. I revamped the texture for the lasers a little to make them look a little better, I set up a way to draw the crosshairs accurately in third person view, and I finished the functionality of the radar!
The radar was a huge thorn in my side and a problem almost everyone on the team had tried to figure out with no success. In the end, I found out from my graphics class textbook that there was one more transformation matrix that none of us had known about - the viewport transformation matrix. It translates the final coordinates (after they go through world, view, and projection transformation matrices) to screen coordinates. This solved our problem of trying to project a 3d point on to a 2d plane.
I also used the same idea for the crosshairs and told Wilson about it so he can use it on the targeting reticule.
The radar was a huge thorn in my side and a problem almost everyone on the team had tried to figure out with no success. In the end, I found out from my graphics class textbook that there was one more transformation matrix that none of us had known about - the viewport transformation matrix. It translates the final coordinates (after they go through world, view, and projection transformation matrices) to screen coordinates. This solved our problem of trying to project a 3d point on to a 2d plane.
I also used the same idea for the crosshairs and told Wilson about it so he can use it on the targeting reticule.
Subscribe to:
Comments (Atom)