Game Development Community

dev|Pro Game Development Curriculum

Mission Complete!

by Dusty Monk · 03/03/2008 (12:33 pm) · 0 comments

So it's been just over three months since my last post, but contrary to popular belief, and some would perhaps even say hope, I am not dead. And in fact, though most of November and December, and a good bit of January were spent generally goofing off and loafing, about mid january I returned to my mmo POC (proof of concept) in earnest.

Now, as you probably won't recall, I'll remind you that when I left off, I'd just finished getting a salvage/loot system in, and was in the process of tackling a mission (ie., quests) system. And, now.. I just gotta say..

Boy did I underestimate how much work it was going to be!

There's just, an extraordinary amount of work that had to be done!! Everything starting from defining objectives and prerequesites to figuring out how to handle circular datablock dependencies (more on that later!), to setting up the various pieces of data to the incredible amount of UI work that had to be done -- it just seemed like every time I finished one piece it made me realize I had three more pieces to write!

Now, last time I went into excruciating detail on exactly how the loot system worked. This time, I'm going to spare you the boring minutiae for two reasons. One --- it's a big system and to describe it in detail will take more time than I've got to update this blog.. and Two -- in the end, it's not really all that interesting.

What is interesting, is that I ended up with what I feel is a fairly complete WoW-like mission system. Oh sure it doesn't put an arrow on the hud or update the minimap (namely because I haven't implemented a minimap yet), but it does have all of the following functionality --

1.) Accept a misison, and be awarded items to provide assistance for the mission.

2.) Check back with the mission-giver, and get an "in-progress" text dialog.

3.) Full Mission Log, that keeps track of all your current missions, and displays status text on how you're progressing on any individual mission.

4.) Complete missions, and provides for both guaranteed rewards, and optional rewards, where "You may also select from one of the following.."

Additionally, NPC's have text that's updated on a per-client basis that reflects if they have mission for you, if you're currently in progress on a mission for them, and if you're ready to turn a mission into them. These are the equivalent of the ubiquitous exclamation point and question marks that appear over any NPC in any self-respecting MMO these days. In fact I was originally going to do the question marks and exclamation points, (and probably still will, eventually), but didn't want to take time off to model them up, and fiddle with exporting them and getting them attached to bones, when some simple text would suffice for my POC. After all, the hard part here was making sure the right information regarding a client's (player's) relationship to the NPC was replicated down to the client!

I'm also very excited because the completion of this task marks a pretty major milestone for the POC. I now have basically a full slice-of-gameplay from beginning to end. To that effect, I have created a zone and some content that I have imaginately called the "Mini-Mission". The intention was for you to be able to get into the zone.. get some missions.. kill some monsters and loot them.. get some cool gear and weapons and equip them, and complete the missions. And that, my friends, is exactly what you can do.

So, without further ado, here are some fun screenshots from the Mini Mission. I put them in a slideshow over at photobucket, and you can view them at the link below:

Mini-Mission Slideshow

Slideshow Caveats - The stupid slideshow in photobucket is way too fast. But there's no control to slow it down. If you hover over the slideshow it will bring up the play/pause controls, and you can pause it as it runs. Click on any panel to view an individual screenshot, then click "Full Size" if you actually want to read some of the Mission Text in those screenshots.

Next time I want to talk about data. Fun, right? But it's a problem every developer has had to tackle -- how to get your game data into the game. I've implemented a solution, and Torque does a wonderful job of supporting static data concepts through datablock classes, and so I figured I'd talk about my solution. I'm interested to hear from other developers what they're doing, if they want to share, and what they think about the solution I'm using. But that's for NEXT time!

till then, Enjoy!

About the author

Dusty Monk is founder and president of Windstorm Studios, an independant game studio. Formerly a sr. programmer at Ensemble Studios, Dusty has worked on AAA titles such as Age of Empires II & III, and Halo Wars.