Mommy's Best Games, Inc. is an independent game developer founded in 2007. This is a view behind the scenes of our game development and marketing!


Monday, December 1, 2008

Peak Worms, Popularity and Parties, Oh My!

Both earth and flesh hang heavy on its breath,
A howling toothy maw and knell of death.

- Dr. Roth

The New Xbox Experience launched, and with it, Weapon of Choice. It has been very exciting to say the least. Every morning, I wake up, turn on the computer and check to see where we rank in regards to popularity. (They like us, they really, really like us!) And before we go to bed, we check the Microsoft Forums. (You too can leave your comments there.)

For those of you making out your holiday wish list for Santa or Bubbie, there is a new arrival at our store. If you dig WoC's art syle, tell your loved ones about the Weapon of Choice Alien Annual Wall Calendar. You get 12 months of the hideous space creatures you love to obliterate. And as an added bonus, the delirious Dr. Roth has included Latin classifications and poetry for each one. Based on forum feedback, we have talked with WoC's music composer, Hamdija Ajanovic about producing a WoC soundtrack.

Our Atlanta launch events were great! Friday night at Waba games resulted in a speed round, played on the 200 inch screen with the music cranked up. (We never imaged that our 3 year old nieces would love the game too.) Computer Arena had a great set-up and a large crowd. It was great to have Blake Edwards, from Project Owlboy dev team, join us at both events. When I heard Bobby Blackwolf from AllGames Radio was disappointed he could not make it, I knew I had to contact him. Bobby interviewed Nathan on his 11/30 podcast. Check out the pictures from both events.

Thursday, November 20, 2008

Extreme Gratitude

I struggled last night to create a post regarding the Weapon of Choice launch. I knew what I wanted to convey, but my thoughts were all over the place. I decided to sleep on it and finish it this morning. Well, this morning, I decided to google "Community Games" and "Weapon of Choice." What I found were numerous sites with Community Games forums. I could not stop reading. I was overwhelmed by what I read.

November 19th was a day we look at with excitement and fright; Weapon of Choice would be out there for the world to play, judge, criticize, critique, and hopefully enjoy. It is a little hard to admit, but Nathan and I felt, and still feel, a little naked, exposed and vulnerable. However everything thing we have read online lets us know that the past year was not for naught.

To all the fans who downloaded and purchased the game,
...took a $5 chance to buy the game without downloading it first,
...told their friends (real and virtual) that the game was fun,
...send us an email about your positive WoC experience,
...interviewed us, posted on a forum, commented to a blog, or shouted to the sky...
Mommy's Best Games says,

AND - join us at our events in Atlanta tonight and tomorrow. We are delighted to announce that Blake Edwards, from the Project Owlboy dev team will be joining us.

(Nathan will resume posting soon. Right now, he is busy working on the next game concept art and some holiday goodies for fans of the WoC art style & monsters. Check our Cafe Press store in about a couple weeks.

Saturday, November 15, 2008

Shipped--Let's party!

We did it. Weapon of Choice is IN the Community Games Catalog. We're set and ready to go for November 19th launch. Thanks to all for your continued support, encouragement, and for spreading the good word about Weapon of Choice. (Oh, and thanks, in advance, for buying the game! wink, wink.) Also, we decided out price would be 400 points ($5)-- a veritable STEAL!!! If you think we should have charged $10, maybe you should but two copies of the game?

Inspired by the Isabelle's in Tucson who are hold The New Xbox Experience Launch House Party, we decided to do the same thing... except we are now in Atlanta where we do not have a house NOR do we have gaming friends in this area. So, calling upon the powers of the internet, we located 2 console gaming centers to hold our events. Friday, November 21st, we will be at Waba Games in Duluth, GA from 7-9 PM and Saturday, November 22nd, we will be at the Computer Arena in Roswell, GA from 3-5 PM. Attendees can:
* Meet the Developers *
* Play the full version of Weapon of Choice will be FREE *
* Check out other brand new 360 Community Games *
* Learn more about XNA and how to make games for Xbox Community Games *
* Take home free giveaways! *
There are admission fees into the console gaming centers. Admission is reduced by $5 at Waba during the event. These will be exciting and fun nights. Tell your Atlanta gaming friends to come join us.

Also, we have a new trailer. So, pinch your uvula and cross your toes.

Wednesday, November 12, 2008

Help Peer Review Weapon of Choice!

I'd like to get Weapon of Choice ready for the Community Games Launch but I need your help!

The game has to pass peer review before it can enter the catalog. If you are a Creators Club premium member, you can review the game now! The sooner you can review it the better. It helps us know the process is complete and ensures we are ready for Day One of the launch. Thanks to all who can help!

If you're not a member, consider getting involved. It's easy, plus, in addition to Weapon of Choice you get to check out oodles of other crazy games before they hit the market.

Monday, November 10, 2008

Down to the Wire

So although it is 42 degrees outside, things are heating up inside. The game is up on Creator’s Club catalog in the Playtest category. In the meantime, Nathan furiously continues to work on the last minute things, like what happens when memory cards get swapped out during gameplay and setting up the trial version of the game, with up-sell screen and all.

The great news is, so far no crashes or bad bugs.

If you are on Creators Club, we encourage you to play-test Weapon of Choice and give your feedback. If not, you too shall have your chance to obliterate hideous aliens; Weapon of Choice will be ready for purchase on 11/19.

After a couple days of testing with no crashes, we anticipate getting the game in for Peer Review. (Again, Creators Club members, please Peer Review us)

This is THE week- and as they love to say here, in the wide-open-parts of Indiana...

Saturday, November 1, 2008

Gamespot interview

Great exciting press news!
Gamespot just posted an interview with Nathan at the Community Games Launch Party. The trailer shows gameplay features such as Death Brushing. Plus, there is a good amount of time dedicated to the Teat Walker. Check out the video, send it on to your friends, and leave a nice comment on Gamespot...

Friday, October 31, 2008

Contest Results and Launch Party

Hello, Amy here. As the marketing and business side of Mommy’s Best Games, I decided to write this week's entry. Plus, as we shoot for the November 19th launch of Community Games, Nathan has his hands and head full of many other important tasks. As you have read in prior devlog entries, we entered Weapon of Choice into Microsoft’s XNA Dream Build Play 2008 international competition. We were very excited to learn that we earned THIRD PLACE!!!! We are the top American team. Check out the other winners; they all look great and are fun. It is definitely worth your time to check out.

We were also invited by Microsoft’s XNA Team to attend the Xbox LIVE Community Games and XNA Game Studio 3.0 Launch Event in San Francisco on October 29th. What an event! Also in attendance were the Word Soup and Colosseum teams. The room was set up with more than 15 high-def flat screen TVs with ready-to-play Dream Build Play and other XNA games. The press came, and we were ready. Although it was tough in one week to pull off schwag, we rocked it! Through Ebay, I ordered 50 1GB flash drives to create digital press kits. Although we would have desired to have our logo imprinted, it would have taken too long to print, ship and save data before the event. Instead, I created a sticker that had the WoC logo and Mommy’s Best website. The digital press kit included a welcome letter, two game trailers, three tracks of original music composed for WoC, screenshots and concept art, Mommy’s Best and WoC logos, unique gameplay features document, pertinent websites, and a partridge in a pear tree. We also ordered flexible flyers with the WoC title screen imprinted on it, in black, which were tossed around the party by the end of the night. Again, the lesson learned was, 4-color imprint is what is desired; it is expensive, especially when you have a rush order on it. We also provided the community and press with our promotional game cards, game card magnets, and business cards. The trick to getting all of this together so fast really relied upon 3 day shipping straight to the hotel instead of trying to get it here first, then take it with us to the hotel.
Nathan and I were very excited to talk with journalists from Gamasutra, MTV, WIRED, Gamespot, IGN, Joystiq, and Destructoid. Heck- we even have a piece in the New York Times. The press we have already received has been phenomenal.

However, we will still not abandon our original marketing plan: 1) get on as many blogs and websites as possible, 2) get friends and fans to deliver game cards to local game stores, college bulletin boards and any place that gamers frequent. Although, Microsoft's hospitality sure did help boost Weapon of Choice's marketing plan.

So, as high as we feel, onward we go, to finish Mommy's Best Weapon of Choice by November 19th.

Wednesday, October 1, 2008

Sound Design

My weakest area is in sound design and creation. I always dread having to make sound effects for the game. I end up enjoying it sort of like exercising, though it's tough to get the motivation to start. I like to think positively that it's the easiest area for me to improve in when working with sound effects. Fortunately Hamdija is handling all the music and doing a real bang-up job.

I would love to have someone (other than me) recording each sound effect from nature, or blending natural sounds to get a new sound. Unfortunately, I don't have the time or the budget or the equipment to record each sound effect in Weapon of Choice. I honestly think the sound design is coming along at least satisfactorily, and sometimes really well. Since I'm not recording the sounds, that means I have to get samples from somewhere.

When I first started in the industry over a decade ago, RWS was using 'the General' for sound effects. I think that still stands as a very good option, but since then I've worked for wealthier studios which employ sound designers in-house who often record new, unique sounds for each effect. MBG has neither of those options. While $1500 isn't a fortune for the General, it is enough to force us to consider other options. One of those options I've found while looking turned out to be great.

The site is called SoundSnap and as far as I can tell, it offers royalty free sounds effects for commercial use. To make sure I 'make it mine' I never use a raw sound from their site. I always mix each effect with at least one other sound I get from there, or from some other free site. Because it is 'user-driven' it's sometimes difficult getting a specific effect, but it often has lots of effects for most things, and they're all free. I do find that SoundSnap usually has high quality sounds and can be great in a game once you massage them a little.

For the sound massaging, I like to use GoldWave.
I actually did buy a license for only 45 dollars which I felt has definitely been worth it. The demo version of the program offers most of the functionality if you're interested. The program itself has many mixing features and is fast and simple to use.

To round out this media post, I actually used Windows Movie Maker to create the first trailer of the game. Wikipedia tells me it's been bundled since Windows Me (so you probably own it) but I've never needed it until now. I've found it fairly powerful and easy to use. Since it's free and did the job well enough, I'm sticking with it for now--and the new gameplay trailer which will be available next week!

For Flock's Sake

Flocking is the sort of programming that you can lose days experimenting with the subtleties. Some of you old-timers may remember Stanley and Stella video from back in the 80's. Craig Reynold's "boids" taught me my original programming understanding of flocking. Since learning about it, I've programmed flocking systems several times (all for fun) and was excited to come up with an enemy to use it in Weapon of Choice.

The creature in the game is called the Darting Flock. In the prototype, the center (shown as a white rectangle) is the controlling element. The green fliers try to guard it. As the player shoots their way through the flock, the controller creates more fliers that encircle it. Some even dive-bomb you. The fun is trying to cut a hole through the flock and shoot the center while dodging incoming fliers.

Originally I tried simply having the fliers steer around the controller, and constantly home in on its center with an acceleration, sort of like the Earth being slung around the Sun. While the behavior looks decent in the video, it feels a little chaotic (which can be exciting) but generally primitive. I decided to try out a flocking algorithm to spice up the action.

As described by the "boids" system, flocking works by having many objects follow a small set of steering rules. I've simplified the system more but also added some changes to it to keep it interesting. The new actions are: 1. Find the closest neighbor. 2. Follow a target position offset behind the neighbor by a random angle. 3. Recheck for the closest neighbor every few seconds. The exceptions are a few 'leader fliers' which need to know where the flock is going. They are forced to follow the controller at a certain distance, while all other fliers connect from there. When the leaders follow the controller, they are actually following a position just outside the controller that orbits the controller itself. This indirection gives even more motion to the group.

The blue lines in the image are between the flier and their target. The white lines are from the flier that is getting followed by another flier. You can trace the chain of fliers as they follow each other to see the order.

Flocking can be more expensive than homing from a processing standpoint since every flier has to check the distance to every other flier. By staggering and delaying how often this happens we can ease the burden on the processor.

Several neat behaviors come from this. The fliers may fly outwards suddenly but will eventually come back around, usually in a wild spiral. When the player kills fliers, for a few seconds some of them will follow their dead friends down before reacquiring a new neighbor! This makes the fight a lot more exciting and can create some really intelligent looking emergent behavior from relatively simple programming.

Prototyping and Rough Design

With the DBP contest over it's time to get back to core development. That means finishing the game on time! There are a number of new levels blocked out and I've separated them into two groups. One group is to be finished by November 1st, the second group is additional levels to be finished mid-way through November. Why would we have two finish dates? Because unfortunately Microsoft hasn't released exactly when Xbox Live Community Games will be launched and we want to be ready for launch. From various internet rumors, it seems likely it will be some time in November, but we're not certain when.

Originally I was planning on the game releasing in December, but having the potential release date of the game pushed closer in time does wonders for figuring out design priorities. It was clear what levels we should include in order to finish by November 1st. Originally there were over 40 levels outlined (I was completely delusional at the time) and close to 60 monsters from small to gigantic. There will be more like 9-12 levels in the game, but these will definitely be the most action-packed and distinct levels from those originally envisioned.

Recently, I've somehow managed to convince Jack Mayer to help design some of the levels. Jack brings many years experience with him along with Xbox 1 development time! In order to make the most efficient use of two people (myself and Jack), we decided early on to rapidly prototype the enemies and the new levels. Jack is roughing in the level as I am prototyping the enemies. The rough art consists of building a skeleton for an enemy, and just using colored blocks on the bones. I do animate them but in a much less detailed manner. The programming for the enemy is created, but again not near to the same quality the final version will reach. The amount of polish for the prototype itself is a balancing act. The more polished you make it the more problems you may uncover early, but the more work it takes away from the final pass on the enemy or level.

Here's a test level with a prototyped enemy:
And for contrast here's a finished level with completed assets:

The benefit of all this early work is now the level designer can get the gameplay (enemies, hazards, vehicles) in place, more accurate, and more fun than without using prototypes and just jumping straight to polished assets. In addition we can find level art needs previously unknown, new enemy art needs, and generally new ideas can be figured out early on, rather than trying to shoehorn them into the finished assets. For the current level and enemies prototypes we identified the need for: new hazards on a climbable enemy, new attack abilities to balance an enemy's attacks better, and new environmental hazards to be used throughout the level to vary level pacing.

Without this early work we either would have never made these improvements, or we would have wanted to make them but at the cost of much more rework down the road.

Sunday, September 21, 2008

Dream Build Play submission uploaded!

Microsoft is sponsoring a handsome contest for games developed using XNA. The entry submission period ends this Tuesday and I've finally managed to get Weapon of Choice submitted for review!

It's been a hectic few weeks getting in all the last pieces of art, sound, and code but the real fun came about week ago in the form of hurricane Ike. Yes, I've been working on the game in southern Indana but that doesn't mean the storm didn't cause real damage and trouble here. Kentuckiana had a wind storm that lastest for 3 straight hours with recorded winds over 80 mph! Miraculously the house maintained electricity and water while most towns nearby had their services knocked out. Unfortunately internet connectivity was broken by the storm. This isn't normally big a deal, but frustratingly Microsoft requires a constant internet connection while an XNA game is being debugged on the Xbox (they site security reasons). With the contest ending within days I really needed an internet connection the entire time I was working and debugging the game.

With connectivity unavailable for some time in the south we packed up Xbox, computer, router, monitor, and enough cords to build a statue of Locutus and moved north to Indianapolis for the week! Graciously my sister and brother-in-law allowed us to set up shop in their upstairs loft for a few days where the internet flows like so much sweet wine. From there, brother-in-law and fellow entrepreneur Jon Coulter play-tested, as did my old friend, and bake-ware creator Matt Griffin. With some solid 360 play time over 30 crash bugs were found and fixed (all related to threading, in the form of one thread changing data which a different thread was currently also trying to change). Without such varied playtesting I'm not sure if I could have stumbled upon all the bugs myself. The next drama came Saturday in the form of technical difficulties uploading game submissions for the contest.
Finally, earlier this afternoon the server problems cleared like a tropical storm blowing over and Weapon of Choice was uploaded successfully! And now it's time for a little rest before the big push to finish the game for this Holiday season and the launch of Community Games!

Monday, September 8, 2008

Cock your Weapon of Choice

For anyone that hasn't seen it yet, the first official trailer for Weapon of Choice is now available for your viewing pleasure. It features a variety of areas in the game along with quick views of some of the nasty monsters and fun weapons. Seeing Xerxes fly through the air with his Jet Engine gun you can get a feel for how fun it is to play in a nearly-out-of-control kind of way.

This trailer is only an introduction to the pace and art-style of the game. Later on, we'll have another video available showing more of the sassier gameplay mechanics in the game.
In addition to the trailer, the company website has received a full overhaul. Here you can read more about the game's story, check out some screenshots, and visit the Store for some t-shirts that will make your friends jealous. And be sure to sign up for the mailing list for new information and extra special assignments!

As far as the game's development progress goes, I'm currently finishing up the sounds on the fifth level boss. He goes through three art transformations and four code transformations meaning he takes a while to defeat and still keeps the fight really interesting!

Saturday, August 30, 2008

Weapon of Choice Approved on CG Beta

The game was submitted to the Community Games Beta a few days ago and cleared the Peer Review. Shew! The Peer Review involved other CG developers downloading the game to their PC and launching it on their retail Xbox 360. The idea is they play the game and test to ensure it doesn't crash, doesn't have prohibited content (such as porn or copyrighted material), and that it matches the descriptors I set when I submitted the game for review. The descriptors are things like blood and sexual content. The process gets more difficult when it asks how much cruelty is in the game. Its easy to say there's blood in the game but am I being cruel to the aliens when I blow them apart? I gave it a 1 out of 3. If other peer reviewers had disagreed with this or my other descriptors the game would have gotten rejected. From there I would have to readjust the self-rating based on others feedback and resubmit it.

Fortunately no one turned it downed based on the descriptors and even better--it didn't crash for anyone! I had tested it thoroughly and didn't find any crashes myself, but there's nothing like having someone that's never played it try it out. While the game is 'out there', it's not currently publicly available. Other Community Games developers can play a limited version of Weapon of Choice, but the full game won't go on sale until later this Holiday season.
While not technically necessary I was interested in putting the game through the complete Community Games process in order to see how it worked, how long the process took, and to force myself to work on the 'boring' things that needed to get done and were starting to accumulate. The big one of those was addressing the television 'title safe' region issues for text and menus. Developing on a new computer monitor, I had pretty much (foolishly) expanded everything to fill the entire screen. On a TV this doesn't work very well as lot of the edges of text and images are lost. This work took entirely too long, but at least it's finished and I won't have to deal with it too much in the future.

Friday, August 22, 2008

Greetings from the Future

Xerxes is one of the first playable characters to which you have access in Weapon of Choice. His Jet Engine gun is one of the most powerful weapons in the game and it gives you the ability to fly around in a jet-pack like fashion. His hovering spin double-jump lets you maneuver even further while in the air! Here's an image from the design specs for his weapon.

As it turns out Xerxes is based on a real person that just happens to live in the year 2188. Here's his new MySpace page. I'd like everyone to get to know him as he has some fascinating insights into the Earth's future. And please, show him some hospitality by adding him to your friends list.

Saturday, August 16, 2008

Weapon of Choice launching on Community Games Beta

The game is about be released! That is, in a very limited fashion. I'm hard at work ironing out the bugs for a version to be published to Community Games beta. I've spent a surprising--annoying amount of time dealing with text and images that run off the sides of the screen with a standard-def TV. Early this coming week I plan to run the game on a HDTV. I hope there aren't any new text issues there too, but there probably will be. It will be good to see how the Peer Review process goes and to find what issues there may be. Also it will be nice to see what feedback we get from other developers.

In order to play games on the Community Games beta you have to sign up as a premium member. Only people that want to make games for Community Games should do that, though. Starting with the Holiday season of this year, the real non-beta version will launch and everyone that has an Xbox 360 and an internet connection will be able to play demos of Community Games and buy them. No special membership will be required! Microsoft says that Community Games will be available in a similar way that Live Arcade games are currently. You'll be able to browse a list of games and try them out as you please.

Currently there are over 70 games released to the CG beta 'games catalog'. I've tried a few so far. Swarm is a fun twist on Missile Command. Colosseum is very polished looking. Drop Engine is difficult but has lots of gravity gameplay in it. Spectrum is confusing in the same way that 'Double' mode in Raiden III can be. City Rain is more deep than most CG games, and has an entertaining environmental slant to it. ("Don't put a landfill near the river. You'll pollute the water supply!" Feels like something the a lame comic villain would do to Gotham city).

Thursday, August 7, 2008

Monster Watch

With the arrival of the Chuul on Earth and the devastating processes they've initiated, alien mixtures of various origins have been encountered.
Here is the most recently observed case.

Bombing Mushroom

Approximately 1.5 to 2.5 meters tall, 1 meter wide. Spore over 3 meters tall.

Known Behavior

When agitated closes cap quickly and thrusts into sky. While floating to new location, large seed-like entity dropped to attack or block pursuers.
Spore capable of lashing assault.

Saturday, August 2, 2008

Saving and Marketing

While the conversion of the game to the 360 is 'over', along the way I tore up all kinds of things getting the game to work on the console. Among those was the ability to save and load game data. The game records data such as what level you've reached, what levels you've beaten, how many times you've taken a given path, what Operatives you've rescued, etc. Saving still worked fine on the PC, I just delayed making it work on the 360. Earlier this week, the time had come to fix it.

XNA made it fairly easy to save/load game data on the 360. Since I was already using a filestream on the PC, I was able to simply cut the saving and loading code out and place it in a separate function to run on the PC and Xbox. From there the PC and Xbox needed individual wrapper functions. The Xbox function was easy to setup using the StorageDevice. Before saving the first time the player has to choose a storage device (such as a hard drive or memory card). The snag I ran into was when I tried opening the Guide to have the player choose the device, it never showed up! It turns out help documentation in Visual Studio didn't mention that XNA auto-picks a device if you have only one, and never shows the Guide. I would have known this if I were using the msdn help because a user comment there explains this auto-picking behavior and links back to the XNA forums. That'll show me for thinking I can live without the internet!

Marketing for Weapon of Choice starts soon! While MBG has very little money for marketing we do have lots of moxie, and vim, and chutzpah and other descriptions that make it feel like we're working on a silent film instead of a video game. Those adjectives combined with elbow grease, knuckle cracking, and sweaty brows have created a really sweet trailer for the game! Sadly, not all the stars have aligned for it be uploaded yet, but that time will come very soon, along with several gorgeous screenshots and a snazzy new homepage. Yippee!

And just to spice up this entry a little and reward anyone that read to the end, I'll throw in this sketch of a very large creature in the game. He's all in pieces here, but through the magic of video games he'll come to life, right on your screen! Then he might crush you with his hooves.

Thursday, July 24, 2008

Thuper threads and Lightened loads

I've tried four versions of threading at this point and finally have a noticeable speed up in the game. The original version was using the .NET threadpools. I've found out those weren't meant to be used in a situation that required high performance. Then I tried an implementation of my own design that resulted in a slower framerate. Then I got a little help from an old friend which resulted in a threading solution that worked, but the framerate stayed about the same.

The fourth and current version makes the game faster and is a combination of methods. When using XNA on the Xbox 360 you have access to four hardware threads (1, 3, 4, 5) and a one thread for the main game application (thread 0). With that in mind, my update threading uses four threads to update all game objects simultaneously. The new design gives each thread one quarter of the level objects in succession. That's important, because the longer each thread can run uninterrupted, the better.

Some profiling output for the 360 was set up using StopWatch. In addition, I have a boolean that can be toggled by a controller button combination. Without threading the update takes around 25ms. With the new threading the update is down to around 17ms. It's not an incredible gain, but it does make a significant impact on the framerate and the smoothness of the gameplay. While more framerate improvements are planned for the near future, the framerate for the game on the Xbox 360 is finally playable!

The other good news of the week was the load time improvement. Previously I had game objects, animation files, and gameplay data all in separate files per object. I've since consolidated them from over 1100 files down to 3 files. The load time on the Xbox 360 for a full level has gone from over 6 minutes down to around 30 seconds! I'd still like it a little faster, but at the moment it's a great change!

At this point I consider the 360 conversion finished! Cheers and tears! It's time to move back to working on the game itself!

Tuesday, July 15, 2008

Bad Threads and Good Shaders

In an effort to better use the Xbox 360 I've been looking into multi-threading the update loop in the game. After waffling between a custom managed thread system and the .NET ThreadPool, I settled on the ThreadPool. It seemed to make sense on the PC. I have it arranged basically as follows:
  • The level allocates an array of 'ManualResetEvents' to signal when a thread is finished working.
  • The object list for the level is in a tree layout. Where a branch starts, a thread (provided it's ready) is set to updating that branch. ThreadPool.QueueUserWorkItem is used to start on the branch updating function.
  • The Event array is checked until a new thread is ready. Previously on the PC I was able to use WaitAll and WaitAny but the 360 only supports WaitOne. It's uglier but it seems to work.
When I finally ported it to the 360, it turned out that the pool was allocating lots of various objects during runtime down inside the .NET functions. As we saw before this causes the 360 to collect garbage which slows everything down.

While exciting and promising, I've decided to set threading aside for a time and move forward elsewhere with the game. Hopefully some time in the future I can beneficially use threading.

The good news of the week is that I did get a decent framerate boost from switching to a custom shader! Shaders are code that run on individual pixels and vertices. I was previously using the provided BasicEffect shader to draw all my Quads (MBG's advanced sprites). I found this example and was able to spend some time hacking out pieces unneeded. After about a half a day I whittled the shader down to very little, since the game requires no special lighting methods.

The framerate for the PC version boosted around 15% and the 360 version increased about 10%! It was certainly worth the time and makes things look that much smoother.

Tuesday, July 8, 2008

The framerate adventure continues!

I'm happy to report the framerate for Weapon of Choice on the Xbox 360 is playable! It's still not 'great' but it is 'okay'. I know that's not the best report but when the framerate made the game unenjoyable just a week ago, I'm feeling pretty good about it. And on a decent computer, the framerate is smoking (often around 80 fps)!

There were a few changes that yielded some large improvements. The first was to 'batch' the processing of the vertices. All of the images of the trees, monsters, etc are created using two triangles stuck together (a 'quad'). While this is like sprites in most games, these quads are slightly more complicated. They are skinned to their vertices in a similar way to a full 3D model in other games; because of this I can't use the built-in SpriteBatch system in XNA. Before the optimization I was simply rendering each quad. With the batching, the quads with the same texture are grouped together in a bigger list. An interesting optimization point is that around 50 quads gives the best results, while a larger list of 200 quads was faster than no batching, but not as fast as 50 quads. There's probably a lot of reasons for this, but NProf suggests that it has to do with spending more time copying the larger vertex buffer needed in the 200 quad version. The framerate jumped to around 15% faster after the batching.

The second change that pushed the framerate even more was the use of DXT compression for the textures. In the Content Pipeline in XNA all textures have an option to use this compression. The interesting thing is the default is 'Color' not DXT (these are in the properties of the texture, under Content Processor, Texture format). I can't visibly tell a difference when using DXT compression, and the framerate increases by about 20% after this!

I found this entry in Shawn Hargreaves' blog very useful for GPU optimization.
The last change I made was to actually shrink the biggest textures used. At their biggest some textures were around 1000x1000. I've shrunk them down to more like 600x600. In my particular case I think it helped supplement the framerate with the previous changes in effect by reducing the texture fetching time.
Currently I'm running into CPU slowdown on the Xbox and am exploring custom shaders for faster drawing and multi-threading for the game object updates. Hopefully these get me the last boost for a great framerate on the Xbox!

Tuesday, July 1, 2008

Taking out the trash

Weapon of Choice is programmed using Microsoft's .NET framework and is programmed in C#. This means unlike the C programming language, in which memory is deallocated manually, 'garbage collection' takes care of cleaning up memory. The difficult thing about it is while it's nice to have something handle this automatically, the Xbox 360 version of this garbage collection is really slow compared to the PC.

Last week I finally got Weapon of Choice running on the 360 only to find that it played really slowly and stuttered about. The good news is that I finally have the stuttering under control. It turns out the garbage collection was to blame. For every 1MB I was allocating and leaving to the collector to deal with, it would stall for almost a quarter of a second to clean up. Right now, during a full level, I basically allocate no new memory. It's very nice to see it moving fairly smoothly. For reference I used the CLR Profiler. If you're using XNA, don't use this one.

The bad news is, the game is still slow! Consistently slow, it's true, but still pretty slow. With XNA I have no good performance profiling tools on the Xbox, but I'd guess it's around 10-15 frames a second. That is where the game stands today. Thus I'm currently looking at ways to improve the framerate.
On game sites there's a lot of talk about 60 frames a second. I agree, that's really smooth. I have the game running at a little over 30 frames a second on the PC and it's still smooth and extremely fun. If I can get the game up to 30 fps on the Xbox I'm going to be thrilled. The game would be extremely playable and fun at that framerate.

Monday, June 23, 2008

Weapon of Choice runs on the Xbox 360!

It's official! I finally have the game successfully running on the Xbox 360. It's amazing to see it playing on the TV instead of my computer monitor. Knowing it's running on the console and seeing it on my shabby, standard def TV just makes it feel very 'official'. Once it ran I was able to bask in the victorious glow and enjoy that achievement for about 400 milliseconds.

Why about half a second? Because that's how long the horrible frame stutters lasted as the game chugged along on the Xbox! It was like the beginning of ABC's Wide World of Sports, but instead I got to feel both the thrill of victory and the agony of defeat in the same moment.

Yes, it was crushing to see the game barely limping along at about 5 frames a second. It actually stutters at about 10-15 fps down to nothing, so it's hard to estimate. Fortunately, I've been doing some reading and it seems like this slowdown conversion is common. There are many differences between the Xbox 360 and the PC architecture, and now I get to find out all about them! Or at least as many things as I can discover. I do have hope that I will get the game running fast enough for fun and hopefully to a point that it could even be considered smooth!

Here's a photo of the game running on the Xbox on a real TV.
That alone will keep me smiling for days (I won't let needing to optimize the game get me down)!

Friday, June 20, 2008

Break time: Confusing 'Ninja Spirit' ending revealed!

I beat Ninja Spirit last night on the Wii Virtual Console. I have a Turbo Graphx-16, but sadly this was just more convenient. There is no written story when the game starts. A quick animated sequence shows the player character get zapped by green lightning and a white wolf runs next to him and howls. Before each level there is a small amount of Japanese text, but I'm not able to translate it. My friend recently beat it also and warned me that the story screen lasts for only a few seconds. With that in mind, I watched the ending with the camera ready.

The ending was pretty cool, but was only more confusing. Your character runs out into an open plain and falls to the ground. He then transforms between an almost-wolf and a human several times (remember at the beginning he wasn't a wolf, it ran along next to him). Then there's a nice 'boss procession' while the credits roll in which each enemy performs a menacing attack reminding you of the battles. After that the story concluded and I managed to get a picture (the text disappears really quickly!), but it captured the image in a weird state (the text is repeating):
Is "Tsukikage" supposed to be you or the white wolf? And did the wolf inhabit the player? Was the player character evil and causing all the evil? Or was the Tuskikage the good element inside the player helping me defeat the evil? Maybe it's that last one... though I think the introductions is more artful than clear. It's just about as confusing as a Metal Gear Solid story.

Tuesday, June 17, 2008

The Conversion is in progress.

Weapon of Choice
has several levels running right now on the PC. Unfortunately, it needs to run on the XBox 360, since that's the real platform for which it's designed. The game is a high-action arcade style side-scroller that can be played with the keyboard and mouse but is best played with a game controller. The good news is, converting it to the 360 will be easier than usual since the game is built upon XNA. The bad news is, until now I've eschewed the 'Content Pipeline' part of XNA. I'm now in the process of getting the game to use that system.

I really enjoy gameplay design, gameplay implementation, and art. I don't generally enjoy engine or tools programming. I do it because it's necessary, and it's the right thing to do. This conversion is very painful for me, but I've managed to find a good amount of help on the XNA forums. When a full level is running on the 360, I'll post the exciting proof. As it stands now, here's my current test situation: a tree that draws off the top of the screen. It's not exciting yet, but I'm really happy to see that tree drawing right now!

Look at that! It's on the TV--not the computer monitor! It's very exciting!

Yes, that's a standard definition TV. Although I can see how the game will render on a HDTV since the computer monitor is pretty similar, I also like to see how the game will show up on the standard definition TV. I believe a significant portion of game players still have this type of TV--this includes myself.

Thursday, June 12, 2008

Game Resume: Doing Time

I started professionally in the game industry in 1998. The sad part is I didn't get to work on a game that actually shipped till 2003. Yup, five years of telling everyone "Yes, I really do work on games!" but having no proof.

I got my first industry job programming at Running With Scissors. This was back during the heady days when places like Panasonic were throwing money at any game with a snazzy character. RWS had just finished POSTAL and I came on during a time when martini hot tub parties in Vegas and leisurely, 3 hour lunches were part of the work week.
It was like a dream--this is how everyone thought the game industry acted--and it was really going on! Until... we had to make a new game.

We went through several iterations for the next game and even secured funding for a little while. At one point RWS artists were hand-painting intricate sculptures, photographing them, and scanning them into the computer to be used in a new adventure game. It was pretty cool in theory and totally insane from a development standpoint when you saw it in action. It would literally have taken years to see that vision through. RWS never got any versions of that game finished, but we did make a pretty sweet game a few years later.

After RWS slowly closed down in 1999, I moved to Orlando to work at n-Space just before the world was going to end. There, I worked on a Duke Nukem game for the PS2 and helped with an Austin Powers game to coincide with the new movie. Neither made it to Gold, but it was a pleasant, mediocre ride along the way. As the PS2 Duke game floundered and Take Two slowly distanced itself from n-Space, I decided to jump ship and head back toRWS for POSTAL 2. It seemed ridiculous to me that the game would go from top-down isometric to a first-person shooter, but I knew it would be more fun than what I was doing at the time.

Next update--a game that ships!

But before that, let's look at a picture from Weapon of Choice's past. Here's a very early version of Xerxe's Jet Engine gun in a old test level with a simple background.

The flames aren't quite as big now, but I promise it's even more fun to use in the current version!

Monday, June 9, 2008

Game Resume: The Team

I'd like to talk about what games I've worked on in the past but also who's working on this game. There should be several posts, and to keep it from getting too dry, I'm going to end each of these Game Resume posts with a screenshot of how Weapon of Choice looked in the early stages.

I'm doing most of the development on Weapon of Choice. What does that mean? Well I'm doing the 1. game design, 2. programming, 3. artwork, 4. animation, and 5. sound effects.

That leaves the story and the music. AJ Johnson is writing the story and dialog. He's a great writer and also has the largest collection of games of anyone I know personally. (Yes, this really bothers me. I own a lot of games and systems, but his collection still tops mine.) Hamdija Ajanovic is composing the original, hard-rocking music score. He's worked on movies and original albums and his beard can probably go a round or two with Chuck Norris's.

And for the business side of things, my wife Amy Gandell Fouts helps deal with people since I'm sort of a tactless monster. She's written grant proposals for non-profits like SAAF, Child and Family Resources, and Jewish Family Services LA.

For dessert, here is a very OLD screenshot of the game (mild laughter is permitted):

This was back when I first got the level editor running and was testing out IK for Xerxes and the first monster, the SpikeSack. And I was apparently making my player characters as large as Last Battle instead of something playable like the original NES Batman.

Monday, June 2, 2008

Xerxes redo finished.

Weapon of Choice has over 20 playable characters designed. The artwork is finished for 7 characters and 4 are currently playable. (Yes, there's a lot left to do!) While a lot of games let you see the concept art used, it's not often that you get to see the actual progression of the art. I thought for a change it would be fun for players to see some of the art changes as they happen behind the scenes before the game is finished.

Here is the original image for Xerxes Remington shown during the selection screen:

I like it, and it serves its purpose. But after a lot of discussions, I decided it would be worth trying to make it more interesting. I approached it from two ways: 1. the pose, and 2. the actual design (clothing, hair, etc).

I'm not a great character artist, but I am improving. My ol' buddy Steve Wik *is* a great character artist. He's been drawing characters for years and knows what he's doing. He was so good as to guide me in redoing Xerxes. I picked out the pose but Steve helped make the pose more natural. He also added some neat new design elements, like the tattoos and the goggles. Steve acted as my Cyrano de Bergerac (without the big nose), whispering how to make things cooler looking.

Here's the new portrait for Xerxes:
The new portrait is more energetic, and it also suggests an alternate use for Xerxes' own Weapon of Choice, the Jet Engine gun. Not only does it shoot flames and kill things but he can fly around with it like a jet-pack! I'm still going to do another polish pass on the picture in a few months to improve things like the tattoos and the highlighting.

It was difficult to decide to spend time redoing the art. The old portraits were functional, and get across the general idea of the characters. I decided though it would be worth the extra polish for something so prominent.

Thursday, May 29, 2008

The move is finished.

We're back in Indiana! I had to fly with the computer which was pretty scary. It's a desktop model and I hadn't heard of anyone traveling with them (nor read anything prominent on the web). It turned out fine though. I did make sure it was a carry-on, but it's kind of large. It's also a little flashier than the typical grey box, though not particularly spectaular. I'm not ostentatious but this was a simple a matter of economics as it turned out this well ventilated case was cheaper than a dull-colored case. Pretty much any security person over the age of 40 looked at me funny as passed through the checkpoint. Other than that, it managed to fit under the seats of a Canadair Regional jet (2 small seats on either side of the aisle).

Yeah, that's a Victoria's Secret bag holding all my design drawings... sometimes any bag will do.

Powering up, the computer works fine and it's time to hunker down for some character re-works. I'm going for more dynamic poses with better designs in general. I'll post a comparison of the first character's "before and after" when I finish it up next week.