Tuesday, July 27, 2010

Conception

Here's some more concept art. I've been working on trying to create the first boss. It's going to be a giant Bargle controlled mech although we haven't yet figured out how this enormous image will fit on screen. I guess that's why it's merely a concept....

Saturday, July 17, 2010

HUD & Grenades

Sooo, I took a little break from working on the game. Another way to put it, I played Fallout 3 for the first time and that kind of shuffled my free time priorities a bit =) Not to say I hadn't been working on the game at all, but pretty close to it. I hit that point where there's a lot of boring stuff that needs to start getting done. Also, the networking challenge keeps getting tougher and tougher, and it's a pain to debug networking issues. I decided to put networking on hold (possibly permanently for the sake of actually finishing this game sometime this year). You probably won't notice the changes in this video, but I made some fixes to the game loading and map changing routines so it's smoother. I'm also in the process of working out a system to change and load worlds. These tasks aren't as much fun because there's not a lot to see when they're completed. I've read and heard of different methods of staying motivated when you reach this point in your game's development. One method is to try to mix up the boring tasks with the fun tasks. For every boring task I complete, I should follow it up with something more fun. So between the loading and changing routines, I also added a new weapon, grenades, and a HUD for the player thanks to Chris' new art addition yesterday. The HUD isn't finalized yet, we're thinking of changing the size, maybe location, and adding more effects and whatnot. Since there is nothing in the single player game that can hurt you yet, I just programmed it so when you fire a shot, you get hurt! Watch the red health bar at the top.





Wednesday, July 14, 2010

Concept art / Desktop Background


There hasn't been any updates in the last couple of weeks so I figured I would post a bit of concept art that can also double as a kick ass desktop background. I've been exploring some features of my drawing tablet and used it's inking function to make this sketch. The inking function is supposed to emulate an actual pen by gauging the stylus pressure and adjusting the thickness and darkness of the line accordingly. So far I think it does a reasonably good job for a cheap model. Currently, I'm considering doing the cutscenes in this style. ( Click the image to enlarge, the thumbnail looks meh)

Tuesday, June 29, 2010

Networking Improvements

After reading through the code of the network prediction project provided on the XNA Creator's Club web site, I was able to implement the prediction and smoothing algorithms into our game. Although it didn't completely remove all the stuttering, I'm happy to say it did help a great deal. This worked fine for regular characters, however, I was faced with a bigger challenge of fitting these algorithms into the Tank class which uses Farseer physics. After thinking about it a bunch, I decided to forgo the algorithms for the Tank class and take another look at ways I can improve its stuttering. I studied the data I was sending for the tanks and discovered I had omitted a very important piece of data.. the velocity! The reason I made this mistake is because I use a Vector2 called "Trajectory" for the Character class which is the velocity. But the Tank class, which is derived from the Character class, uses the Trajectory variable to store the force that is applied to the physics object. The velocity itself is kept by the Farseer class "Body". So I added this data to be transmitted over the network for syncing. Through the testing I've done so far, this works well. However, there could be issues I might see only after some real play testing.

Besides the code updates, we also finally decided to pay attention to another critical aspect of the game.. the design. I downloaded a game design doc template and we started going through it, answering a lot of important questions about what we want the game to be like. I can see a lot of time will be spent on this doc, considering we spent an hour working on it and only got about 25% through it. Good times!

Sunday, June 13, 2010

Artybartfast

Scenery update time. I changed the awkward looking floating dirt blocks into palm trees to make the environment a look a little more natural.



In addition to the above I also created a completely new environment; the underground cavern.

Saturday, June 12, 2010

Performance Problems

I was on vacation last week and so did not work on the game at all. Before leaving for vaca, I found that there were some severe performance issues with the game on the xbox. I was wondering when this was going to happen. I had to do some testing to determine the cause of the performance problems and found some great help for this from Shawn Hargreaves blog here and here. Basically, XNA comes with a really nifty tool you can use to inspect your games heap when its running on your xbox and view all sorts of metrics on the garbage collector and memory usage. This made it easy to discover that I was putting the garbage collector into overdrive because I had 4 objects per map tile allocated for map scripts. This was far too complex. I limited the map scripts to only 20 sets of 4 per map and that solved the problem. This was much harder to do than to type, but I'm glad it's over with. In addition to this change, I've also added the ability to specify a background image for a map in the map editor.

Saturday, May 22, 2010

New Tank Art



Chris put together some great looking art for our first vehicle. Inspired by the warthog from the halo series, this will likely be the standard single passenger land vehicle. He also made some slope segments, so now we don't need to look at those ugly white polygons.

I've been working on getting other things networkable in the game, including projectiles, the tank, and the turret. It took a lot of experimenting and effort to get the tank working right, particularly with syncing information such as which character is driving which vehicle. There are still some bugs to kill, but overall things are working well. Currently, I'm working on adding simple gameplay elements such as health, damage, death, powerups, etc. You know, the things that make a game fun to play. Here's a video of our new tank riding on our new slopes on a single player game.