Extending Faction Reputation Systems into the Virtual Ecology

November 13th, 2009

Most RPGs utilize the concept of faction reputation in some way or another. It makes sense, and it’s a valid element to include in its own right. Extending this concept into how creatures and spawn spots relate to their surroundings can introduce a good amount of dynamism in the virtual ecology of an MMO.

You need 2 main mechanics:
1. Every time a spawn spot has some sort of an impact on another spawn spot, you need to record the results of that interaction; or, possibly just have that interaction proportionally change the faction relationship between those two spawn spots’ respective factions (whether those “factions” are actual NPC factions or simply species).
2. You need to ensure that all members of a faction behave toward other factions according to their faction ratings. This includes spawn spots as well as instanced creatures. This part can get rather complex because you want to allow for dynamic, ad-hoc ally groups, both by instanced creatures as well as by spawn spots.

Just imagine a game world in which a player witnesses instanced members of a faction with which he has a higher rating actually join his side in a fight against members of an NPC faction which both he and they have low faction ratings. And then, a patrol of another group of creatures comes along and joins the opposing NPC faction because they have a higher faction rating with them than with both you and the first faction. And over time, the player is actually able to change all that. The thing is, that then you have a world in which all those NPC factions constantly, autonomously change their relative ratings amongst each other. Add in an independent “lust for wealth and resources” as well as a system of “survival is what ultimately counts”, and you just may have a fully-functional virtual ecology.

Using Behavior-based Classifier Algorithms to Combat Exploitive Hackers

November 12th, 2009

So, the phenomenally resourceful hacker/gold farmer community is quite the challenge. You’ve tried everything- chat filters, IP filters, email filters, captchas, mass banning of accounts… they always come back and within weeks it’s as if you had never done anything.

Ultimately, you have to go back to basics. What’s the real issue with hackers and exploitive gold farmers? It’s their behavior. They “break” the game, both immersion-wise as well as the economy. So, all you really care about is limiting that bad behavior. Really, you don’t care if they are in the game, even profiting from their activities… as long as their behavior is not beyond that somewhat fuzzy line of “appropriate and reasonable”. So, therein lies the answer. You have to target the behavior. After all, that’s what your GMs are doing when they patrol the servers.

The problem I’ve seen with most attempts at combating exploitive behaviors is that they end up figuratively building a wall. Walls only work when your enemies only walk on the ground and don’t dig under it, don’t utilize airplanes, don’t build ladders, and generally refrain from trying to solve the problem of the wall analytically. Dude, exploitive gold farmers and hackers have within their ranks some of the more intelligent and capable people in the world. In fact, I consider them a worthy adversary and deserving of honest-to-goodness respect.

The only possible “solution” will be in cleverly and aggressively building ever more general solutions to automatically classifying players based purely on their behavior. And this is something we can do. But it takes a lot of determination because it requires a lot of pieces, both technologically as well as inter-personally.

1. You need good hardware. Just go with the most bang for the buck. Focus on memory and lots of pretty fast, physically independent drives.
2. You need clever algorithms. Microsoft has a great start in this area, and it comes free with SQL Server- it’s called SQL Server Analysis Services. The 2008 versions are indeed better than previous ones.
3. You need some good TSQL skillz. This is fundamental. You can try to jump over this, but in the end you can’t get away from it.
4. You need some good organization of database tables as well as some good naming conventions (this is more important than it may initially seem, but you will be doing a lot of data shuffling, and tables and columns that have stupid-obvious names just feel good).
5. You need a good way to centralize large amounts of data. While you can directly query Production servers for the necessary data, extracting it all to a central server allows for a lot more possiblities, and you and your co-developers will learn all kinds of good stuff about your existing systems.
6. You need to have good friends working on the game itself. You will find all kinds of good things that need logging in order to allow for classifying player behavior.
7. You and your co-developers will have to figure out how best to streamline the process of identifying in-game events that need logging and then actually getting that logging set up. It’s never as easy as it first seems. If you can get this down, I guarantee it’s only a matter of time until the world is your oyster.
8. You will need to figure out how to best deliver polished reporting products. Again, Microsoft has done good stuff here, and it comes free with SQL Server. SQL Server Reporting Services will be your friend.

The pretty cool part about working on behavior-based classification systems is that you will really get to know your game well. That, and this stuff is pretty cool indeed.

More Memory Fixes Everything

November 11th, 2009

If at first your server sucks… just throw more memory at it… specifically, get the most bang for the buck and fill up all your RAM slots with the stuff (currently, it’s 4GB sticks).

Seriously.

Insufficient RAM has been the single biggest impediment to my data warehouse development efforts. That, and disk contention (yes, I know the two are related). More RAM means SQL Server has a chance at not even touching a hard disk unless it really really has to. Combine that with the built-in compression of SQL Server 2008, and things can get really fast really quick. Imagine actually reaching that promised land of always being CPU-bound rather than disk IO bound.

As reference points, I had been stuck with a 32-bit server running 3 instances of SQL Server, each of which had 2 GB of statically-allocated RAM, leaving the OS, SSRS, and SSAS with 2GB to fight over. And fight they did, believe you me. Nothing sucks more than the OS paging out all your fundamental SSRS files… right when everyone wants to access them. That’s also about when you hit “process” on some grand new mining model scheme you’ve been working towards for a while. Things don’t go well for the next bit of time.

Another thing- try to have lots and lots of physically independent hard disk [arrays]. The secret is to embrace the inner parallellisation fiend. Lots of RAM and 8 cores allows for that. I’ve cobbled together a new server that has 16GB of RAM and 4 physically independent drive arrays. I cannot emphasize enough how much better that is. We’re talking an order of magnitude, especially when SQL Server gets everything all cached in memory. Soon, I will be getting a total of 32GB for this server, a fibre channel card so I can get some SAN juice, and maybe later some larger local drives (which would be very nice). Incidentally, if you have to use a SAN, make absolutely sure you know what’s physically indepdendent (not logically - that’s not good enough). If you have to share a tray of drives with too many other virtual machines or something, your performance is toast, and you can give up on ever doing the really cool classifier stuff in Analysis Services [so you can nuke all those pesky exploitive gold farmers].

Accounting Challenges Presented by Virtual Currencies

February 4th, 2009

Say someone gets ahold of your credit card information. Then that person goes and opens up a Click and Buy account and funds that account with your credit card. In addition, he funds it with other people’s credit cards as well. Then he goes and spends that cash at 14 different online retailers. Then, 3 weeks later, after you notice a those fraudulent charges, you initiate chargebacks for each one. At around the same time a few other people whose credit cards were used to fund that Click and Buy account also initiate chargebacks. However, not every charge the fraudster made gets noticed and charged back. Some of the cash remains uncontested.

How does Click and Buy decide which stores to subsequently pass those chargebacks on to? Never mind that Click and Buy would likely see the pattern and simply reverse all charges from the obviously fraudulent account.

As it turns out, our friend the First In First Out accounting method comes to the fore. You have to do some scripting on top of very solid transaction logging tables, but it traces everything back as best as one possibly can. It’s still entails an assumption that cash is spent in the order in which it was deposited, so one can point it out it’s not perfect.

As a side note, if you’re developing a system like the above, do yourself a favor and maintain lookup tables for every column in every table… well, of course, only for those columns that don’t have, like, potentially unique values for each row. You can then simply point SQL Server Analysis Services (SSAS) right at those tables, and voila, you can make your reporting life easy as pie.. theoretically of course ;)

A Quote

February 3rd, 2009

Damion Schubert tossed out a great quote in the MUD-DEV list that to me encapsulates something that only an MMO can really deliver:

“Nothing your NPC
is going to say is going to be as interesting as the fact that your raid leader is cybering your guildmaster’s girlfriend, and everyone knows but him. Creating an interesting context to make the space sticky is great, but at the end of the day, an MMO’s real content is other people. If it’s NOT — well, then your MMO probably shoulda been a single player game. Woulda saved a lot of money.”

That’s why I want to figure out how to design mechanics that allow for emergent behavior systems rather than ones that define behavior. The kind of storytelling that will work in MMOs is not going to be like in the movies, or in books, or in choose your own adventures, or in tv shows, or in single-player games. Storytelling in MMOs will be like herding cats. At best. And on occasion, if not on all occassions, you’re going to find it better to change the story as it unfolds… keep changing things as players respond to the story… take that to the limit and you have what amounts to you actually being drawn into the in-game world and behaving as what amounts to an in-game faction or entity. Heck, let’s just embrace that and have several each GMs controlling some given faction of creatures or NPCs in the game. Better yet, let them be able to control members of their faction in a way that approaches a Real Time Strategy game, albeit at a slower pace. That could result in some good stuff.

What I’ve Been Doing

February 3rd, 2009

I’m in Data Warehousing here at K2. For the last 6 months I’ve had to get up to speed with TSQL on SQL Server, figure out SQL Server Integration Services, SQL Server Analysis Services, SQL Server Reporting Services, figure out good Source Control practices, figure out the detailed inner workings of the databases of 6 MMOs, 2 casual flash-based games, and 3 billing and Customer Relationship Management Databases, figure out how to work with something over 1.5 billion rows of connection log data, figure out how to use web services and XML messaging, figure out how best to set up daily data extractions and snapshots, use these great things called “Table-Valued User Defined Functions” (think “parameterized views”), learn how and why one should write well-formated TSQL code (it’s a piece of art to see clean, well-formated TSQL), figure out how to do accounting and reporting for virtual currencies, figure out how to manage employees in an overseas development office, figure out how best to balance doing full extractions of data vs. just pointin Analysis Services directly at the source data (go for the latter whenever possible, by the way), figure out Data Mining structures (great fun when your data is set up right), learn just how much better life is when you get pretty hard-core about mainting strict referential integrity in your databases, get really good at reverse-engineering systems based solely on the data they spit out, learn some Multi Dimensional eXpression language basics, write some VbScript to identify exploitive in-game behavior on an in-production MMO, figure out how one can go about doing Social Network Analysis on large data sets, learn a ton about top-down hierarchies vs. Agile-like production teams, figure out some mid-level DBA work, learn how critical it is to have your business decision-makers have a good understanding and great respect of and for what it takes to develop great applications and databses (even if it’s just a qualitative understanding), and I’ve effectively not written a word on what I’m truly passionate for: MMO design.

Yeah, I’ve learned a ton. I feel like I have the database development and reporting chops to be able to seriously contribute on an MMO development team, but I feel like I’ve divested myself of what really drove me to get into this industry. So, without further ado, I’m going to quite simply start writing more.

Well, maybe I’ll start tomorrow…

Intelligent Spawn Area Entities

April 25th, 2008

You and a bunch of friends have just finished a month-long project of deciding on a city location, collecting all the resources and cash to build your city hall, planing the city layout and zoning, and then recruiting more people to build their homes in your young town. The central park has just been completed by the two aspiring terrain architects and everyone has agreed on the interior designer for the city hall. And then the orcs came. More specifically, an orc military outpost popped up nearly overnight just outside your city’s limits, and now you find orcs spawning ever closer to your city hall building.

You know that if you don’t get this thing nipped in the bud those orcs are going to destroy the fruition of all the work and time poured into your city. So you call on all your city’s residents to come out and kill orcs every time they spawn. You call on them to destoy the orc structures at every opportunity. You know that if you can sustain high enough destruction the orcs will give up and go away. However, if you don’t they will continue to spawn faster and faster and closer and closer to your city hall, every day causing ever higher maintenance costs for everyone in the town- especially those unfortunate enough to have their houses build on that side of the city.

Three days of what seems like concentrated destruction later, you realize the orcs do not seem to be getting discouraged. In fact, they haven’t even moved! So, the mayor calls an emergency city council. The topic is how much can the city afford to sink into hiring out for orc killing. After the number-crunchers do some calculating, it becomes apparent you can pay 13,500 credits per mission of 20 orc kills for 900 missions before the city treasury get too low to pay all the maintenance. Other cities have had success with hiring out 900 missions to get rid of a nasty orc infestation, and you have seen other cities offering 12,000 credits per 20-orc-kill missions, so you are confident word will spread and the missions will be completed. Hopefully, it will be enough additional sustained destruction to drive them off. If not, this could be bad news for your burgeoning city.

The mayor sets up the missions in the city’s new missions terminal and everyone stars spreading the word that money can be made killing orcs in your town. A strange thing happens though. Nobody shows up. Well, a sporadic smattering of would-be bounty hunters drop by, but they don’t do more than one mission. Some don’t even finish it. At the same time, you begin to notice the orcs are becoming harder and harder to kill, each one seeming to hit for more damage than before. With concern creasing your brow you start a large patrol around the orce encampment, which you note has sprouted spiked walls sometime in the last two days. As you race past, you notice with worry a smudge pop into view over the next ridge, a thick trail of smoke rising into the air above it. As the distance closes, your worry turns to alarm as you realize that smokey blob is a veritable orc boom town, complete with seige engine construction tents and an advanced barracks. The orcs at your town’s edge are being supplied and upgraded from this until-now unknown and un-addressed regional threat. The last time one of these was discovered, more than 2 player cities ended up razed to the ground, and it took the concerted effort of three major cities a full month to drive them off. Prior to that, those three player cities had been engaged in bitter war over resources. The campaign to rid their region of the orcs nearly broke them all, and once they succeeded they were the closest of allies; they discovered there were bigger, more dangerous things in the world than the feud with their neighbors.

Your thoughts are cut cruelly short when your air bike is blown out from under you and you see your health bar virtually disappear. And then you’re dead.

In shock, you see an orc stand up from behind a rock, outfitted in gear like you have never seen on orcs before. I his hands he carries an enormous, shimmering rocket launcher. Your worst fears have been realized. The orcs have learned something new. They have somehow discovered or been given some super-weapon. You look to the left to see what else is around, and just before your screen blips to the respawn building back in town you see three more. “And they can mass produce them…”

How do you make intelligent NPC factions that can develop, spread, migrate, and even play politics? It’s possible.

Deal with all creatures at the spawn spot level. The spawn spot is the true, persistent entity in an MMO. It’s not the creature. It’s not the dev-created-and-planted buildings or villages. It’s the spawn spot. It’s the spawn spots that really interact. It’s the spawn spots you are truly influencing when you, as a player, kill creatures.

Each spawn spot has a set of attributes that define it. They define the creatures it will spawn, they define how big it is, they define the threshold under which it can possibly die, they define what terrain types on which it will best perform, and they define the rate at which they spawn creature instances in the live game world. These attributes change based on its environment. When a player kills a creature it spawned, it is recorded and included in the periodic calculations that do the actual attribute adjustments. When a spawn spot comes in contact with another spawn spot, the two spawn spots engage in what amounts to an arena battle, virtually of course and without actually animating the whole thing- you can just use the combat scripts you use whenver two opposing creature instances meet and fight in front of a player in the live game world. The outcome of that combat round results in the attributes of both spawn spots being altered. If multiple spawn spots’ areas all overlap, then you do “combat” matches amongst them all, with each round altering their attributes.

Whenever two spawn spots of the same faction interact, their loot tables interact. The loot tables contribute to the overall spawn spot attributes, so what’s in a spawn spot’s loot table really matters. An epic item can do a lot to make an otherwise squishy NPC become a formidible foe. Two mutually-isolated pockets of spawn spots of the same species can over time develop very different loot tables which result in very different levels of difficulty. If the two meet and interact, there will be a significant sharing of loot table items from the more advanced one to the less advanced one. In effect, the less advanced one “learns” from the more advanced one. By manually injecting a few epic items into just one spawn spot of orcs in the far northern reaches, over time the orc faction very well could expand their reach, both through creating new child spawn spots as they thrive due to the additional strength they have through their stronger loot tables (and thus attributes), as well as through the process of “teaching” their unlearned brethren spawn spots the glories of their epic loot table.

A spawn spot’s attributes will also determine how much it attempts research and development on its own loot table. In addition, not all spawn spots will be as amenable to “learning” as others may be, that is, the “coefficient of loot transfer” makes it less likely that the roll to choose which of two loot table items is better will fall in favor of the truly better one. A spawn spot’s attributes will define how much it will attempt to build upgrade structures. Granted, these structures will have to be dev-defined, but the actual chances of building them will be up to the available resources in its current location, the viability of the terrain type, and the “coefficient of construction”. Buildings can simply be an additional item to the spawn spot’s loot table for as long as they exist, that is, for as long as players don’t kill them at a significantly greater rate than they are defined to spawn. If players specifically target the seige engine building in their raids, wherever it may spawn in the spawn area, and over time destroying its instances at a rate that matches or exceeds that building’s spawn rate, then eventually the building will “die” and its benefit will be removed from the spawn spot’s loot table benefits. Also, there will cease to be seige engine instances that spawn from that spawn spot.

It’s doable. It really is. Just break down the complexities into discreet components that can each be calculated and added into one long addition problem ;)

PvP Implications

April 23rd, 2008

I’m finding it difficult to comment on issues. I’m more into directly tackling the problem. Well, maybe it’s just at times that’s what I’m into. So, I’m going to do something I have found to be rather productive: writing what amounts to a stream-of-consciousness analysis of some game mechanic or system. Today’s rambling will be on some of the implications of Player vs. Player combat systems.

It seems that often more risk = more reward. Things gain significance as more is put at risk. The flip side is that some thing or activity will not be particularly important if there is or was nothing put at significant risk. I’m thinking of accomplishments, though dedication to a goal is significant. So, it’s not just risking something… in addition there is the significance of dedicating one’s time and energy to a goal. But I’m getting off track. I’m supposed to be digging into a PvP-related mechanic and its implications. I thought I needed build up some justification that to have a truly valuable gaming experience you had to have everything put at a very real risk. Ah, but it doesn’t have to be “either, or”. A valuable game experience can come from either dedication to a goal or from truly putting something on the line in the hopes of accomplishing some goal, or a combination of the two. I’d say most MMO design has been squarely focused on the latter, and I think as a result the potential for truly valuable game experiences is gimped from the get-go; gimped by half, or nearly so.

Anyways, we want as much user-generated content as possible. That implies player cities. These cities must be as open-ended as possible. That means there is little that is directly dev-defined. Start with a fully-developed player city. What does it look like? Well, there are houses. Lots and lots of houses. But loads of houses all packed in close to each other does not define a city. There has to be some official thing al the players do to trigger a cluster of houses to become recognized as a “city” or “village”. They have to have built a city hall. That city hall structure, once built, essentially creates a sort of “spawn area” with a defined territory, that is, the city limits or an area of influence. This city hall requires a mayor, who is elected somehow by the owners of all the houses within the town hall’s area of influence. This mayor, then, can set what objects are protected within the area of influence of the town hall, whether they be specific players, specific clans, structure types, creature types, etc. When an entity is on the “protected list” of the town hall, whenever it is inside the area of influence of the city hall it is flagged as “not attackable”. So, player cities then become safe zones.

If a player is not on the “protected list” of a city hall, he is fully attackable by anyone while he is within the city limits, just as he would be if he were outside any city limits; he cannot attack anyone on the “protected list” while inside the city limits. However, if someone on the “protected list” attacks him, that player is immediately flagged temporarily as attackable, even though he is within city limits. Any entity at any time may be put on or off the “protected list” by the mayor or designated player with those permissions.

What about when a non-attackable player attacks someone outside city limits and immediately runs into the safety of the city limits? Well, when a player engaged in combat with another player or creature enters into a city’s limits, he is given a cool off timer that keeps him attackable until it expires. It has a default time, but a city can set how long that timer lasts by donating resources.

The area of a city’s limits changes based upon population, chosen city upgrades, surrounding cities’ limits and their relative strengths, as well as what buildings have been constructed. Envision the system in Rise of Nations where your nation’s borders adjust based on the relative strength of adjacent nations. If a mayor builds a turrent tower near the edge of the existing border, the city’s limits will bulge out around that tower. If a player builds his house near the edge of the limits, the city limits will bulge out around that house, though not as much as for the turret. A mayor could choose to engage the “expansion” city upgrade that boosts the city’s limits, but for a cost in resources and currency which must be paid for out of the city treasury, which in turn is fed by the mayor’s selected tax rate. To allow for some very meaningful commodoties market influence, city maintenance must consist of not only cash but specific kinds of resources, all of which must either be donated or purchased on the player-generated market with city funds.

Interestingly, a player not on the “protected list” could build a house inside city limits, though both he and his house will be continuously marked attackable. This allows for players to build harvesting equipment inside an enemy city’s limits as part of a challenge to their influence. After all, it’s one thing to lay claim to something, it’s another to be able to defend it. This defense, however, will be stacked in favor of the occupants of the city, since they can choose when and how to rid their land of the intrusive structures. A pre-existing structure will remain attackable unless marked otherwise by the mayor or his designate.

Turrets and other defense structures will automatically attack anything marked attackable so long as they are fully maintained (paid for) and stocked with ammunition. They, however, will not be attackable by those being fired upon, as they are city structures (unless they are marked attackable for some reason). All city structures are technically destroyable, but only when the city’s defenses have been unlocked by an invading faction. A city’s defenses can be unlocked by essentially paying for it, and even then there is limited window of opportunity within which all structures are attackable. To unlock a city’s defenses, an invading faction member must first get into the city hall and pay the necessary fees to unlock the defenses (the fees are “laundered” through a city-unlocking item crafting system). The exact “price” will be calculated based upon existing city defenses, population, donated cash and resources to the defense fund, etc. Then, the defending city’s mayor has 24 hours to choose the window of opportunity within which his city will be attackable; the time windows will be discreet 2-3 hour chunks within the following 2 days. Some likely balance issues can be worked out by adjusting the required “fees” to unlock city defenses or by requiring additional missions or quests to be completed (think of the Task Forces in City of Heroes, something very challenging for the elite members of the attacking faction).

When a city is attackable, all buildings are, well, destroyable. The attackers can win the city by either destroying the city hall or capturing it. Upon capture, the highest-ranking member of the attacking faction can choose to raze all buildings in the city or assign ownership of each one to any member of his faction, even himself. Upon destroying the city hall, the city is stricken from server records and all the buildings simply return to being a cluster of buildings.

Upon destruction, a structure can be salvaged and looted. Salvage and loot amounts will be some random percentage of the total materials and items present before destruction. If the owner of a house in an attackable city doesn’t want to lose his stuff, he has to either pack it all up and move or defend it ferociously. Alliances with other factions, and the ability recruit mercenaries would really really matter when your stuff is at stake. When a city is in an attackable window of time, it’s a free-for-all, just as if the battle were taking place in the middle of the nowhere. Anyone can join in the skirmish. To help make it more obvious who is on what side, members or allies of a player’s faction are flagged friendly. Those not members or allies are flagged as enemy. The faction system must allow for quick allying and un-allying.

An interesting hook in this system is that it can fit right in with a dynamic creature population management system. A city is really just a spawn area. It additionally adds a terrain definition to its territory as being a “city”, so the various creatures that have an affinity for “city” terrain will eventually be found there. The competing city limits system is an extension of spawn area interaction system - it simply treats each city as just another spawn area. NPC factions can then calculate what kinds of activities it needs to engage in in order to optimize its own situation, and creating missions and quests are included as an available activity.

Another interesting hook is that player cities will become the start points for new players. When a new player chooses where to begin his adventure, she can choose one of several qualifying player cities, each of which has built a “newbie building” which puts them on the list. The benefits of attracting newbies would include larger population, meaning stronger defenses, larger economy, larger land area, more security, etc. Significant kingdoms are quite possible.

The placement of cities would also matter to a significant degree. Mostly static resource deposits would result in high strategic value to certain land areas. Cities placed in mountain passes would actually mean something if they could really restrict passage. Cities placed in close proximity could benefit from mutual protection or even engage in high-stakes economic competition. And none of this would require a single developer to define. It would just simply… happen.

The implied faction system fits right in with the way the creature management system handles relationships between any two creature species (or “factions”). You can apply and be accepted as an ally with any NPC faction, given you have sufficiently high faction rating with that faction. You can ally up with another player faction, given they choose to accept you. Your faction rating with other factions will be influenced by those with whom you officially form alliances. Only allies will receive any spoils of war through the game mechanics, though of course players can give stuff to helpers who were not officially allied. I’ll do another rambling on a faction system some other time. It’s cool stuff :)

The above is a snapshot, however fuzzy, of what MMOs will be. And oh how freakin’ cool they will be!

Small Steps

April 15th, 2008

The next big step forward we are all seeking seems to lie in two areas:
virtual ecologies and fully in-game, player-driven item schematic/recipe development. Interestingly, or maybe as expected, neither of these areas are direct content design; they allow for content design by unnamed others. When we can figure out how to make every entity in the game world effectively optimize its situation based on its environmental experiences, players will not only have a whole host of tools to fashion their own motivation to play the game, but it will allow for even more powerful tools for designers to create immersive content. When we can figure out the necessary game mechanics to allow players to create the specific item schematics used to create items (and keep the whole roiling mess an internally stable system) we will have taken this next big step.

I find it difficult to put words to the thoughts swirling in my head. The complicated nature of MMO design, specifically the above two mechanics, seems to be too compilcated to simply sit down and write out a complete, all-inclusive synopsis on how to do it. So, following my own copious advice to simply do what is over-obvious when stuck in a problem, I had to just write it. I know for sure the above is true, so starting there is, well, a starting point.

Jury Duty

March 12th, 2008

Well, I have jury duty possibly all this week and into next. It’s interesting and all thus far, but my overriding feeling is one of exasperation that we have to waste this much time and hassle into remediation of problems that didn’t need to be created in the first place. I can guarantee you the next time I’m about to commit something that could be construed as a felony I’ll think twice, if only for the poor jurors and the hassle my trial imposes on them ;)