blog.raydenuni.com

Philosophical Ranting of an Engineer

Zone with a purpose

August 1st, 2007

In World of Warcraft (WoW), there are many different zones or geographical regions. Each zone has a variety of monsters to fight and quests to complete. Zones are designed for characters of a certain level range. Some zones are places where low level characters can fight, quest, and level while some are for high level characters. I think zones could be organized better than they are now.

When playing in a zone, a player has the option of taking on quests. These quests might have the player talk to or deliver an item to an NPC. Or he might be asked to kill a number of monster or kill a single powerful monster or retrieve an item that is guarded. Whatever the quest is, the player receives experience and gold and sometimes an item for their work.

Some quests have follow up quests. A player might get a quest that asks them to kill 10 small monsters, then 5 big monsters, then kill the boss monster. Some quests are elite, that is they ask you to do something very difficult and are for groups of people to accomplish. Some of these elite quests are dungeon quests. That means you must go into a specific dungeon, filled with elite monsters, in order to complete the quest. Elite quests and elite dungeon quests generally give the greatest rewards in terms of money and items.

Quest lines are a great way to give players continuity to what they are doing and give them more of a purpose than simply being given a smattering of unrelated quests. I believe that more can be done to give players more of a purpose and a direction and make the quests and the zones more compelling.

I propose that quests in zones should be related and should guide the player along a mini-story. After finishing with quests in a region, a player will have completed a variety of quests leading up to defeating the overarching evil boss in the zone’s dungeon. While some quests will be unrelated to this path, most will progress the player along a branching series of quests. To give you an idea of how I imagine the quests to work, here is a graph.

In this image you can see several nodes with direction lines connecting them. The square nodes are normal quests, the hexogonal ones are elite. The line signifies what quests unlock another quest. In order to start the “Kill 10 Blobs” quest you have to have completed “Talk to Quest Giver.” However the lines are not requirements in that all must be completed, the line only means it unlocks a quest. The “Kill Mini Boss” quest doesn’t require you to complete all 3 prerequisite quests, only one. This means that if you loathe collecting quests, you can avoid those and focus on the killing path. Or maybe you want to complete all of them, you are free to do that. I think the number of quests in the area and the experience given should be such that a player need not complete all quests in order to level past a zone, letting him pick and choose.

I would expect a real quest graph for a zone would be much more complex with some dead ends, unconnected branches, but this would be the general shape. The idea is that all of the quests leading up to the dungeon quests, are preparing you to face the end boss. As you work your way through the quests you learn more about the evil boss and all the horrible things he has done to this zone and why you must defeat him.

This method of organizing quests and displaying a quest graph to player (information to be filled in as players discover each quest) means that players know they are working towards something as they play through a zone. The best rewards come from finishing the elite quests and running the dungeon. They have choices on which quests they want to do on the path to the elite quests. By requiring players to finish a series of quests to get the elite dungeon quests, players will feel more of an accomplishment and purpose to running the dungeon. I feel that dungeons right now are rather unattached to the rest of the zone.

Nick Ohrn on Wombat

May 14th, 2007

My teammate on the Wombat game, Nick Ohrn, has posted his first impressions of the project now that we are wrapping up. We actually gave our final presentation to the rest of the class today. Nick has this to say:

This game has been a treat to make, and I’ll post a video of the final product next Friday when we have to have it done. As far as implementation details go, we’ve been using XNA Game Studio, but that’s a whole other post (Preview: I like it a lot!). If you’re interested in playing the game when it’s done, drop me a line and I’ll see what I can do.

Now, my contribution to the project has mostly been in the realm of tool-set editing and map creation. In addition I’ve been somewhat of a lead artist (HA!), which has been somewhat interesting.

He also has a short video of the game in action. Unfortunately, it’s pretty poor quality. We’ll see if we can get something better for you guys soon.

Fun With Tiles

April 6th, 2007

This blog may or may not turn into “fun and exciting experiences Matthew had while writing his game.”

My engine is coming along nicely. It loads and draws a map and can draw units. I was doing some refactoring because the TileEngine class was responsible for loading the Map and I thought the World class should be doing that. So changed some code so it was the World that created the map and then passed it to the TileEngine for rendering. Lo and behold once I got it compiled and ran it I was displayed a beautiful blue screen, which is the background color. No tiles! I was very distraught as there were no exceptions to trace and no null variables I could locate. I had no idea why it was no longer drawing my game.

And then I remembered two little lines of code that I had deleted and forgotten to replace.

myWorld.Map.TileHeight = 48; myWorld.Map.TileWidth = 48;

These numbers specify the number of pixels in every tile of the map. These variables are used everywhere in my rendering engine. It uses it to specify the size of the tiles; it uses it to determine where to draw units. I had forgotten to set these values and thus they were the default C# value: 0.

Behold, my rendering engine was working properly! Only it was drawing all the tiles with 0 height and 0 width. It was drawing and infinitely small map. I added the lines back in and everything worked.

Programming Tip of the Day

April 5th, 2007

And now for the Programming Tip of the Day. The first piece of code is not equal to the second piece of code. Can you spot the difference? It took me about a half hour to realize that this was the reason my units were jumping around and not moving smoothly.

Good

(int)((myUnit.PosX - myCamera.TileX) * Map.TileWidth)

Bad

((int)(myUnit.PosX - myCamera.TileX) * Map.TileWidth)


Graduate School & RIT

February 23rd, 2007

I got accepted to RIT!

Rochester Institute of Technology (RIT) has a brand new graduate program entitled Master’s in Game Design & Development. I applied there and a couple days ago was informed that I was accepted! Right now I haven’t applied to any other schools, such as USC, so I need to figure out if I would even consider those if they accepted me.

Among other things, I’m on quarter break right now which means I have exactly one more quarter to go!

Wii

January 30th, 2007

My roommate and a guy across the hall each bought a Wii on Saturday. I have to say it is a love-hate affair with it. I really admire the way they implemented the controller. Most of the Wii Sports game are spot on, Warioware is very clever. I love it when I play well. But sometimes everything goes wrong. This usually happens when I play someone else. I don’t mind losing, really I don’t. But I get very frustrated when I play poorly. So sometimes I really enjoy the Wii, sometimes I hate it.

World of Warcraft Plugins

January 18th, 2007

1/18/2007

I will be updating this last occasionally as I find new mods. If you people have anything you use and suggest I use, feel free to put it in the comments.

I should have a screen shot of my interface up soon.


Over the past couple weeks, I have begun playing WoW again and quickly realized I needed to find some good interface plugins. It has been over 8 months since I played last and I expected the mod scene to have changed. How right I was.

My friends were using Titan and I remembered this one, it may have been the major plugin I had used, but I wanted to see what else was out there. I found Ace. Ace isn’t a plugin, it is a framework for plugins. It gives plugin authors a base to work with as well as supply a plugin download program that makes downloading and updating plugins easy, important when every single patch can break a plugin or development is moving quickly.

Most of the plugins I had used before I found a replacement for with Ace. There were a few that I did not and had to download seperately. I would like to give you my list as well as a short description of what it is and why I recommend it.

To use the Ace plugins go to http://www.wowace.com and download the AceUpdater executable. You can place this anywhere, I put it somewhere in my interface AddOns folder to make it easy to find.

Essential Ace Mods


Bartender3

Perhaps the single most important add on, this lets you specify icon bars, the ones you put spells on, change their size, columns, scale, location, and numerous other options. I recommend this one for EVERYONE.

ag_UnitFrames

This one changes the display of your current status, health, mana, buffs, as well as the same status for your target and your group or raid group. There are many options for how it displays and it lets you move, scale, and do lots of things to the display. I recommend this one for _EVERYONE.

Fubar

Not really a useful plugin all on its own, it is instead a docking tray for many other “Fubar” plugins. If you want any of those, you need to get Fubar.

Here is an alphabetical listing of my favorite Fubar plugins, bold are what I consider essential.

  • agufFu – lets you access the AG_UnitFrames menu
  • BagFu – tells you how full your bags are
  • ClockFu – displays the time
  • DurabilityFu – displays the lowest percentage durability of your items, and on hover displays all durability.
  • ExperienceFu – displays current experience gained, how much till the next level, how much rested xp you have earned, xp/hr, estimated time till level, etc
  • FriendsFu – displays number of friends online and on hover shows who and where they are
  • GuildFu – the same thing as FriendsFu but for your guild
  • LocationFu – tells you where you are, information about that area, and recommends other areas and instances based on your level
  • MailFu – alerts you to mail when you get it and displays the subject
  • MCPFu – allows you to enable and disable all of your plugins
  • MoneyFu – displays how much money you have
  • PerformanceFu – I like to push WoW as far as it will go on my system and this lets me know my frames per second, ram usage, ping, etc
  • QuestsFu – shows how many quests you are currently on and on hover displays their names
  • SWStats2Fu – lets you access your SW Stats plugin menu (SW Stats itself is not Ace)
  • TopScoreFu – displays the greatest values for normal and crits on your spells and attacks
  • TrainerFu – displays what you can learn from every trainer you have visited and when you level can tell you what you can now learn and how much they all cost (for spells and professiosn)

That’s it for the Fubar plugins. As you can see there are a lot of them, and many more I don’t use.

Cartographer

Replaces your map and does so much more. There are many modules for this and which ones you want are up to you. Some things they do are: remember quest location givers, trainers, treasures, vendors, and much more.

h2 ColaLight

Remembers how much items sell for at the store. Essential for when you are out questing and your bags fill up and you want to know what you should throw away.

EQCompare

Displays information about your currently equipped item when you hover over any armor or weapon. Makes it easy to see if you want to use an item.

MobHealth

Very useful for displaying the current heal of a mob. Also necessary for MobInfo2.

Essential Non-Ace Mods


MobInfo2 & MobInfo2 Browser

Not an Ace mod, you will have to download it seperately. Records and displays information about mobs: life, mana, whether they run, dps, what they drop, what they are immune to. Very useful. The browser just lets you look at all the information you have stored.

GFW Levelator

This displays the level of a quest before you accept it. Not anything earth-shattering, but its how things should be.

Atlas

Displays nifty maps of different things. Displays dungeons better than Cartographer in my opinion.

Useful (nonessential) Ace Mods


BattleChat

Scrolls through battle events, such as when you do damage or when you take damage. Basically just records everything that happens to you during battle and lets you see it.

InFlight

Displays how long it takes to fly from flight path to flight path and displays a progress bar while you fly.

OneBag, OneBank, OneView

OneBag displays your bags in one giant bag, no more worrying about what is in what bag. Lets you see the divisions of bags if you really care.

OneBank does the same for your bank.

OneView remembers what is in your bank and lets you see that anywhere.

Teknicolor

Colors player names based on class in the chat box.

Detox

Shows you what debuffs are on your allies.

ClosetGnome & ClosetGnome_Mount

Allows you to create a set of armor and then put on that set of armor with one click. The mount module lets you specify which sets should be put on when you mount and when you dismount. Carrot on a Stick anyone?

Dice Wars & kdice

December 23rd, 2006

I’ve been holding back as best I could, but it is finally time for me to post! I’m sitting around waiting for my laundry to finish and contemplating taking a shower before I fly home for Christmas break and I am playing kdice. What is kdice you may ask? It is an ingenious little multiplayer game you can play in your browser! But what is it? First, we must discuss Dice Wars.

Dice Wars is a Flash game similar to Risk. There are many territories and you must conquer the entire board. Your armies are little dice. When you attack another territory, all of your dice are rolled and all of their dice are rolled and whoever has the greatest sum wins! It is an addicting little game and you should go play it now. The beauty is in its simplicity and speed of play.

Once you have the hang of that and are ready for more, then you can move onto kdice. kdice is a multiplayer clone of Dice Wars. For more information, check out its Wikipedia page.

I’ve been playing kdice quite a bit and my score has climbed. Yes, it keeps track of points using a system similar to that of Chess. You can view my profile here. Go sign up now!

Capture the Flag AI

November 15th, 2006

This last quarter I was taking an AI (artificial intelligence) class. Our final project was to create an AI player for a simple capture the flag game. At the end of the quarter all the teams would compete in a tournament. Whoever won the tournament got an A on their AI and bragging rights!

My friend Jonathan, the same one who went to Florida with my roommate Eric and I, was my partner and we put in many hours on it. Unfortunately we were unable to polish it up completely. We had no idea how well we would do in this tournament as there are a lot of really smart people in the class who spent a lot of time on it.

We found out the standings today. We got 4th place! Check it out

To read a paper we wrote about our player, you can read the rest of this post.

Read the rest of this entry

Respect for the Classics

October 23rd, 2006

IGN just finished compiling a user’s top 100 games of all time list. As I look through it I see games I’ve never heard of, no surprise having little console experience, and games I do recognize. And the games I do recognize are coming in at abysmally low rankings. Starcraft at #74?! Starcraft is ranked lower than Brothers in Arms: Road to Hill 30? Yet another WW2 game that came out last near, that is no doubt good, but better than Starcraft? Doom3 at #58? Last I read, Doom3 wasn’t being applauded for much other than its graphics. Where are the strategy games on this list? Starcraft and Rome: Total War are the only ones I recognize. Half-Life doesn’t even make an appearance although Half-Life 2 is #5. The top 10 list is made up of mostly games released in the last 2 years! Come on people, let’s respect the classics a little bit more.

I must admit that my enjoyment of classic games isn’t necessarily so much that they are good, as my appreciation of them puts me into a more elite group of gamers who knows secrets that others don’t. But still, Grand Theft Auto San Andreas as the 9th best game of all time?

Halo Evolution

October 8th, 2006

I recently discovered a video made by some of the developers of Halo where they comment on a video of Halo at different stages of development. It starts way back when Halo was going to be an RTS. Its really cool to see how it progressed as well as humorous to hear the developers joking with each other.

View the full article to watch the video.

Read the rest of this entry

Some Nifty Games

October 3rd, 2006

I’ve been working hard at school, but I’ve also found to play some cool little games and I would like to share them with you.

Akai Ryu First up is a Flash game I found a while ago, and while its pretty simple its a lot of fun to play. You are a dragon with a fire resistant back, ice resistant belly, and you can shoot different kinds of projectiles out of your mouth, such as fire, ice, meteor, acid, and others. Your attacks level up the more you use them, and different attacks work better against different enemies. Figuring which attacks to use against which enemies is crucial. Have fun with this game.

Gunroar This is a top down scrolling shooter. Nothing much special there. It looks great and is nicely executed. Try it with two ships and let each player control one ship! Unfortunately you can’t control each ship with its own gamepad, but a keyboard works.

Warning Forever This is also a top down shooter but with an entirely different approach. You can fire in any direction, controlled by a unorthodox aiming method, and you only fight bosses. In fact, you fight the same boss over and over, but every level he levels up or adds a weapon. This means he is HUGE in the later levels and has a lot of firepower to throw at you.

We have the last two game installed on our computer that’s hooked up to our living room TV. We did this last year with Grid Wars to much success. If I find any more games that can be played such I’ll let you all know.

Archery Champ So I just found this right now. It’s awesome. I think there are a lot of possibilies to expand this concept into a full game or a mod.

Summer Update

June 28th, 2006

So I’ve been home for a while now and haven’t posted much here. After my blog broke and I was unable to post for so long, I got in the habit of not posting. So here is a post in my traditional style, half schizophrenic, half update, half philosophy, and half bad math.

Job

I still don’t have a job. After a week of relaxing and goofing off I began looking for remote Ruby on Rails work and despite receiving several responses telling me they were very impressed with my resume, and my well written cover-letter, I only had one company interested in me. Unfortunately the man I spoke to was supposed to get back to me a week ago and has not. I have been doing a little bit of part-time work at Haverly, the company I worked last summer. The application I developed needed a few upgrades, but I want to do something more substatial this summer. Looking for work is depressing. It is much more fun to learn about stuff and work on my own projects!

Subversion

During my time at Rose, I have used CVS and Subversion on various projects. Most prominently SVN was used on the CMS I wrote winter quarter. Now it seems stupid to work on any significant project without some sort of version control and SVN is what everyone is using these days. Dreamhost, my web host, recently installed SVN but I was busy with school and never got around to installing it, thinking it would be difficult to administrate. I finally decided to play with it, bought a book, and have been learning a lot. If things go well, I will be giving some employees at Haverly a demo of SVN and trying to convince them they need to jump on the version control bandwagon. Fun stuff.

ShowCase

After mentioning working on my own project, I can’t forget to mention it. I finally found a Ruby on Rails project that is both interesting, not too large, yet challenging. Well, I don’t know about challenging. Mostly I just want a project I can work on and finish and have to show people. And that is what this project is, a web application for displaying your work. You could say it is a portfolio app. I don’t have anything to show yet, but I’m working on it. Probably the most difficult part of it would be creating a nice layout, but I managed to find a decent theme off OSWD.

Game Development

I can’t remember if I had written on here about a game I wanted to start developing. Well, I started learning some DirectX at the end of winter quarter and did a little at the beginning of spring quarter, but PLC took over my programming life and I stopped. I did buy a book with a couple of tutorial projects and I’m partway through the first one. I haven’t forgotten about this; I really need to get on the ball and start making games. It drives me crazy that I haven’t, but I never end up getting started. Once I finish working on ShowCase I hope I will begin working on this again. I’ll keep you posted.

Guild Wars

Speaking of games, I’ve been playing a few with friends now that I’m back home. Last summer we played Guild Wars and beat it. Guild Wars: Factions came out around the same time this year and we decided to play it again. Unfortunately this means it came out about two weeks before I finished finals and came home, so again, every bought the game before me. That’s ok, I don’t hate you guys for doing that to me TWICE.

Factions is very different from Prophecies, the name that everyone is calling the original. The campaign itself is shorter, by about half I think, and you level much faster. By the time I did the third mission I was level 20, the cap. At first we all thought this was a lot better than prophecies where you don’t usually hit level 20 until you reach the area where you ascend. But as we played I think we began to realize that the plot is pretty stupid. I don’t like it as much as the first one. And without the incentive to level up, we have began losing interest. From what I hear there are a bunch of new PvP options, including a 16v16 Alliance vs Alliance mode. This sounds like a LOT of fun, but you can’t ally with anyone until you’ve beaten the campaign I believe. Also, the campaign is very difficult. The last couple missions, as in the 3rd and 4th, have taken us several attempts to beat. Where has the magic gone? The missions in Factions are much more linear. You can’t get past certain places until you’ve complete your primary quests or beaten the next mission. This means that you can’t jump again and grab the elite skill you want and elite skills seem to be the only reason to complete the campaign I think. Like I said, the plot is boring, the cutscenes are terrible, and there is little reason to care about it.

I still feel that Guild Wars is a great game. I love the variety of skills available to you. Choosing skills from both professions and trying to come up with an effective build is a lot of fun. Doing everything as a party of 8 is great. The interaction between players is good. Factions just doesn’t seem to present well, in my opinion.

Hockey

I’m playing hockey again! Woot! Unfortunately its at an outdoor rink on unfinished cement. The floor is more slippery than… um… (insert imagined slippery object here). I can barely accelerate hard without losing grip and a hockey-stop is out of the question. This is really frustrating because the whole game slows down as people don’t bother to skate a little harder and grab the puck that is behind them. Instead they circle around and let someone else grab it. It is still a lot of fun to play though, even if I was terribly out of shape when I began to play. I’m doing better now after 5 weeks. I scored last game! Playing once a week is not enough though. I won’t say that I had forgotten how much I enjoy the game, but now that I’m playing again I am throughly enjoying myself and wish I could be playing more. There need to be more rinks close by.

Camping

I went hiking and camping with Todd, Lem, and Daniel up at the Punch Bowls last week for two days. It was a lot of fun. It was hot, sunny, there were bugs, and we were all very tired. But we had fun hiking and swiming in the pools. We followed the river all the way up climbing over rocks most of the way, and then climbing UP rocks at the very end. On the way back, we followed the trail the whole way and it took us less than 3 hours instead of the 7 we took going up. Understand that we had a long lunch and took a lot more breaks going up, but it was still impressive. It took us two hours to climb the last stretch going over large rocks and it took us 15 minutes to get back on the trail.

Pandora

Just this last week I began listening to Pandora. My roommate introduced me to it while at school but I never really listened to it. It is a web radio station built on top of the Music Genome Project. Some experts tag songs with certain attributes. When you create a station you pick some songs, or artists, and Pandora tries to pick songs with similar attributes. This is different than other web radio stations that try to pair what other people like to what you have said you like. Pandora shows no preference for more popular bands, it is simply based on what songs sound like. It is really quite excellent and its free to listen to. Supposedly by subscribing you can get rid of advertisements, but I haven’t seen or heard any ads yet. Go check it out.

Conclusion

That’s about all I have to say right now. Todd and Daniel are in South America on a mission trip so its a little lonely here right now. They will be gone for another two and a half weeks. This will give me time to work on my projects though.

P.S. I left my razor in Indiana so I haven’t really shaved since I got back. I think I must look pretty wild, but I keep getting positive comments about my beard. Odd.

Grid Wars

March 26th, 2006

This game is awesome. You must download it now and play it. After installing it on our media PC that is hooked up to our living room TV, we and the 2 guys across the hall played it for much of the afternoon and evening. It is going to be a waste of many an hour.

As far as setup goes, use a 1024×768 playing field with whatever resolution you want. Keyboard (ASWD) for movement and mouse (relative) for aiming is good, but if you have a dual joystick gamepad that is the best. Left stick for moving, right for shooting.

Our current highscore is over 600k when my roomate Eric was in control of driving and I aimed with the mouse. On the tv with a gamepad Eric’s high score is a little over 400k.

Mutation Game

February 7th, 2006

In swarm intelligence class today, two guys gave a presentation on a simulation of HIV. They mentioned that the major result from the simulation was that the problem with HIV is not its robustness, but its ability to mutate faster than the body can adapt.

Is there a way to build a game around this idea? Consider two teams competing for resources or survival. One team has great advantages when it comes to changing their play style in such a way to catch the other team by surprise. This other team is fairly good at adapting and once it has adapted, is superior to the other team. So the mutating team must constantly change their strategy and play style in order to stay one step ahead of the other team.

Because I like to give myself a scenario to work with, picture this:

It is several centuries from now and humans have pushed towards the edges of space. The military, Spatial Corps, might of the current government is monolithic and unstoppable. There are few rebellions, despite the lack of peace. Recently humans have come into contact with their first intelligent humanoid alien. Due to some unfortunate misunderstandings, the Spatial Core opened fire on these aliens and decimated them. The few remaining have grouped and are waging war against the humans using guerilla tactics. These aliens, while they have advanced technology, cannot match the brute force of the Corps. Their advantage is their ability to change forms and tactics on the fly. This has caused problems with the Spatial Core who is currently attempting to eradicate the aliens.

Now that I have set up a mildly interesting scenario, let’s look at some details. The Spatial Core is a serious army and their equipment reflects that. Weapons include close range shotgun/machine guns, medium to long distance automatic rifles, rocket launchers, grenade launchers. The aliens are capable of morphing although this requires some resources and time. Their primary form is humanoid and they have a slow firing, but fairly powerful projectile weapon. They are faster than the Corps soldiers but slightly weaker. Their secondary form looks like a dog and they are quick and agile but fairly weak. They can also morph into a larger, slower, and heavier “tank” soldier with lots of armor and a fairly powerful short range weapon. Despite this beast’s speed, he can still run down a squad of Corps soldiers.

So this is fun, but what does it mean? This has set up a simple rock-paper-scissors scenario. The humanoid form of the alien is good at hit and run tactics. Their dog-form is good against explosive weaponry like rocket launchers and grenades because they are good at dodging, however against shotguns and rifles they do poorly. The large beast is good against machine guns due to his armor, but poor against rockets.

This alone may create an interesting set of counters, but alone it does not make for good game play. I mentioned that the aliens require resources to morph. They must travel the map and find resource nodes, gather resources (by standing there maybe) before they can morph. This gives the Spatial Core a reason to defend the resource locations. Also different alien forms are better for assaulting and defending. It should be clear that the tactics used for each type of alien are completely different.

So the alien team must constantly switch between mutations in order to stay ahead of the Corps. This requires that the entire team synchronizes their changes so that they don’t end up playing different forms at the same time.

I may not have convinced you of anything, but I hope that you get a glimpse of how a game could revolve around mutation and adaptation. I will do some more thinking and will hopefully be struck by brilliance.