Philosophical Ranting of an Engineer

Capstone Day 3

March 11th, 2009

Yep, development on my capstone project has started and it is the beginning of day 3! I will try to keep this blog updated with our progression as well as some more in depth articles on what I’ve been working on.

On Monday, I began work on my deferred renderer, trying to get multiple render targets (MRT) working but didn’t have much luck. Yesterday was much smoother and I got MRT working, however it became apparent to me that a standard pipeline with some simple scene graph management was more important right now than a fancy deferred renderer so I switched over and started implementing the scene graph stuff I designed last quarter.

I would like to write up a more official post on the system later as I’m quite proud of it, so for now I’ll just tell you that it is a 3-part system.

  • Scene Graph
  • Spatial Graph
  • Render Graph

Scene graph updates hierarchical transforms and passes that on the spatial graph which manages collisions and frustum culling and passes objects in the scene to the render graph which can do render state sorting as well as batching and instancing and does the final draw call. That’s what I’m working on today.

Tank Frenzy (working title)

February 27th, 2009

It is finally done! After a quarter of work, our design doc for our capstone game is finished. Weighing in at 243 pages, this thing is massive! Go check it out.. Be warned, it’s about 8 megabytes.

In 2005 Guiding Hand Social Club, in the game Eve Online, executed the great virtual heist in the history of gaming. The mercenary corporation was fulfilling an assassination contract on the CEO of Ubiqua Seraph. However, not only did GHSC destroy her ship, destroy her escape pod, and then capture her frozen corpse, they also infiltrated her corporation in total. Over a year in planning, Guiding Hand operatives infiltrated Ubiqua Seraph from top to bottom which allowed them to not only gain trust but also access to the corporation’s hangers. In a perfectly timed climax, Guiding Hand assassinated the target and simultaneously looted all of their target’s hangers stealing over 20 billion ISK (Even Online money) and inflicting damage estimated at 30 billion ISK. The amount stolen was valued at over $16000.

This is of course an operation executed on an unprecedented scale and rocked the Eve Online community as well as spreading to the entire online gaming community as well as traditional media. They key point to this story is that all actions while “illegal” and “wrong” in a role playing light, are all allowed within the game. Other players responded in a variety of ways, some praising Guiding Hand for their accomplishment, someone glad that the assassination target got what she deserved, and others condemning Guiding Hand for going beyond their assassination contract when they completely dismantled and destroyed Ubiqua Seraph. A few people even pleaded with the game developers to step in and condemn such an action but they apparently refused. Eve Online is one of the few games in existence that is open enough to allow for such events.

This brings to light the issue of self governance in games and how much the developer should step in when mistakes happen or contracts are broken. In World of Warcraft, if you accidentally destroy a valuable item you can often ask a GM (game manager) for help and they will recover the item for you. If someone hacks your account and steals all your gear they will attempt to return your character to his previous state. But if a guild member steals all of your guild bank’s items and leaves the guild, Blizzard has been satisfied to say “be more careful who you let access your bank.” When should player’s actions be governed by players and when should it be governed by the developers? Much of it depends on what actions have been built into the game and balanced. If the developers have attempted to make item transactions as secure as possible and there is a sense that trades agreements are sacred, then taking advantage of a loophole could justify punishment. But a game where theft and heists are expected, one should not expect the developers to police this activity.

Should all games allow events like the Guiding Hand heist? Of course not, but stories like this engage our imagination in ways that other games can’t.

Citations: GHSC Heist Press Release PC Gamer USA Article Wiki on GHSC

I found Burke’s article on self governance in games particularly interesting as I’ve spent time thinking about the possibilities of self governing economies in game, but I hadn’t thought about them from a player’s identity point of view. Nor had I considered the identity of a player in an MMO as a citizen of developer-dictator state but it makes so much sense in the context of community forums. The WoW forums are rampant with “why did you nerf my class?” “my class needs to be buffed” “this situation is imbalanced, fix it!” As citizens of a world where they don’t have a vote about how it is governed, the only thing the players can do is voice their opinion. I imagine a game where much of the hot balancing topics were controlled by players, through a voting mechanism perhaps, much of the complaints would disappear. Players would realize that they are no longer governed with an iron fist, but determine their own fate. Whether or not mob-rule makes for good game design is an entirely different question.

I do think there is oppurtunity for in-game, mechanic relevant self-governance and not only in the realm of economics where self governance seems to be widely accepted as a good thing even if it’s not always implemented. Allow players to form governments and manage the resources of their nation to buy NPC guards or fund quests or subsidize certain crafting professions. The biggest problem is who makes those decisions? A purely democratic approach could work technically but it still lacks the vision of a single leader. Probably the easiest would be to piggy back on guilds that are already mainstay in MMOs and let them get voted into power. Or give anyone who wants, a chance to rule their own city/nation and like the saying goes “if you build it, they will come.” Self governing leaders can be problematic if people are unaware of the cultural situation in the community. The moment you raise some of the players up over other players in terms of importance, people beging to feel they are getting the short end of the stick. Or if players are unaware of who their leaders are, how can they make good decisions when picking them? A developer would have to be very careful in implementing something like this or else the self-governing system could be worse than the developer-governing system.


I found the paper “Tradegies of the ludic commons – understanding cooperation in multiplayer games” to be particularly interesting both from a game theory point of view (an interest of mine) as well as from a cooperative design point of view (a significant interest of mine).

Much of the article deals with trust, when and why do we trust people we are competing against. Obviously the kind of trust we have for our teammate is a different kind of trust we have in our competitor but it can be just as important. In the Warcraft 3 custom map playing community there is a widespread dislike of people who disconnect partway through the game. Unlike the standard game type, there is no penalty for leaving halfway through the game and many maps work best when there are two teams of five each. If one person leaves 10 minutes into an hour long game, the rest of the game has been ruined for the other nine people. This means that people are often very picky about who they allow in their game. If you download the map slowly you are targetted as one with a slow connection and a high probability of disconnecting and booted! It is worth the extra few minutes wait up front to find ten “reliable” players.

In the same way that we must trust our opponents to ensure a good match, we also want to trust our teammates especially in strictly cooperative setting. In World of Warcraft players are careful to ensure that their teammates for a dungeon run are of the appropriate level, appropriate class, and appropriate spec. There is little room for lenience when it might mean an unsuccesful run. However more leniency is given when that player is a friend or a guildmember. This seems to go back to the whole Monkeysphere as well as Smith’s discussion of clans. By only playing with clan members, in a cooperative or competitive setting, the player is more likely guaranteed a positive play experience as opposed to playing with random people where the experience is also random.

Of particular note with this article is the discussion of Ebay’s reputation system and how few or no games have ever implemented something like this. Obviously a rating system in a game like Starcraft would different from a game like Counter Strike which would differ from a game like World of Warcraft, but the idea that players are rated based on their past performances is interesting, especially when that player is an opponent. Would people positively rate a challenging opponent after a difficult, but fun match? Or is a reputation system for opponents only useful for marking deviant play? This is something I will be exploring in my final project and will be writing on later.


Apparently Google has released their Google Social Graph API. I’m not entirely sure how it differs from previous social API’s but the concept and the timeliness of if are what is interesting. I”m still a little fuzzy about the implementation details, apparently you embed some code on your own domain so that other sites can find information about you. This means that Facebook and Twitter and Amazon all need to implement Google’s API right? Sounds good for fast action web 2.0 companies but sluggish old-fashioned sites (looking at you Facebook and Myspace) might never implement this.

Much of the API feels like OpenID in that you own links, not Google. The author recognizes the power of API’s, allowing people to do things the creator didn’t expect. Would it be possible to make a decentralized social networking site? I could see something like this taking off amongst leading bloggers as an alternative to current solutions.

After looking further it looks like the primary purpose of this API is to let Google index it. Simply by putting information on your site specifying who your friends are, Google can index this.

It appears there is some dissenting noise on this and the lack of privacy that it provides. The author seems to think that the API gives users enough control over their privacy, but I’d have to dig into how it actually works before I formed my own opinion. It’s very interesting at the very least. But as it requires someone to throw up their XFN or FOAF text on their site and who but technologically adept bloggers will know how or bother with this?

“The people who exist outside that core group of a few dozen people are not people to us. They’re sort of one-dimensional bit characters.” And yet it’s the good will towards people outside of our Monkeysphere that’s the lubrication that makes communities work. Of course I may drive your kids to school when you are sick because you’ll drive mine when I’m sick, but what about giving that old lady a seat on the bus? She won’t ever return that favor. Perhaps it’s the religious regions mentioned in the article, perhaps it’s a general good will, whatever it is, community falls apart without it. It’s basic game theory with the biggest payoff requiring all of us to work together and no one cheating. Unfortunately this means cheating pays big. For some reason we end up helping each other out just a little bit and things work much smoother.

But what about online where anonymity rules and people seem inherently more hostile? A big problem with MMORPGs in the past has been ganking (killing other players, usually through some sort of sneak attack giving you an unfair advantage). World of Warcraft sort of solved this problem by forcing players onto one of two teams. You can’t gank players on your team, but you can gank players on the other team. This means that half the population (the other team) is outside of your Monkeysphere. Of course 99.99% of the people on your team are also outside of your Monkeysphere. But something strange happens. All of a sudden it’s not every man for himself where we make small groups or tribes that band together for survival. No, it’s us versus them! You may not know anything about PantyMcPants over there, but he’s on your team which means that when the other team comes to kill you, they are also coming to kill him! So through unspoken agreement, you protect each other because it improves your chances of survival. But that doesn’t really fall under the Monkeysphere anywhere does it? No, it’s game theory again. (game theory <=> social interaction?) You’ll do unselfish things for people inside your Monkeysphere and you’ll do selfish things for people outside of your Monkeysphere.

Say I have to kill some uber boss for a quest, right as I’m about to kill him someone on my team runs up so I invite him into my group so he can kill the uber boss too. That seems rather unselfish, after all I gain nothing from it, but the costs are low too. This falls under the community lubrication category. But the very next moment I might be farming Motes of Fire (gathering a rare material) with two other members of my team and I’m doing my best to collect these motes faster than the other two guys because even though they are on my team, they’re outside my Monkeysphere. All of a sudden two guys from the other team show up to farm motes. More competition! But these guys are on the other team which means I can kill them! So my two “buddies” and I team up to force out the rest of the competition. The moment the threat is gone I’m back to killing Fire Elementals before my two teammates can kill them.

So it seems like we behave the same way online as we do offline. Friends still belong in the Monkeysphere and the enemy is still the faceless ganking “shitcamel” lowlife. And everyone else is just looking after themselves. Only sometimes that means helping you, especially if it’s easy and it greases the community gears.

Near the beginning of a game night, a nervous guild member logs in and types ”/gu looking for healer for Shadow Labs run so I can get my Kara frag.” There is silence for a bit, and finally the sole guild priest online says “I will grant you your wish. Some day, and that day may never come, I will call upon you to run my alt through Gnomeregan.”

Guild are like the Corleone family – WowInsider


Clay Shirky’s “A Group Is Its Own Worst Enemies.” This is the first paper we’ve read that specifically addresses designing for communities and it excites me.

Throughout my use of different social tools on the internet it is clear that succesful communities police themselves to avoid being their own worst enemy. Every forum I’ve ever seen that gets used on a regular basis has an Off Topic section because people are going to post off topic and if you don’t have a special section for it, then it goes into the topic section. Shirky addresses this towards the end of the paper where it addresses a meeting where everyone had too much fun talking to get anything done. If a forum has a purpose it has to control the fun talk.

The one forum I’ve spent more time on than any others is the forum on Anandtech is a large hardware review site and its forum is one of the largest English message boards. It is sorted into several software and hardware discussions including a Highly Technical section. This is one of the least used, yet most highly policed sections. Post in there asking how something simple works and you will get jumped. The users know what this mini-group is for and they squash innapropriate behavior. Contrasting this is the For Sale/Trade sub forum. This is also policed, but exclusively by moderators. In this setting community policing is not enough, governmental intervention is required. All this from the same “community!”

I found the analysis of healthy group size on IRC fascinating. I use IRC frequently and while I would only call myself a “member” in two or three channels I idle in about fifteen. Some of these are too small to maintain conversation while others are too large and it becomes difficult to maintain a conversation with anyone.

Shirky asks why social software and blogs didn’t catch on before. What I’m wondering is why they replaced IRC and chatrooms but not forums. Of course social networking sites like MySpace and Facebook are much more appropriate for building and maintaining personal relationships but where is the discussion? By focusing on who I am and who you are and what our relationship is, these sites seem to prevent us from having discussions on topics we are interested in. If one is interested in motorcycle and wants to find an online community, he looks at forums not MySpace. IRC use seems to be restricted to more “geeky” interests.

Perhaps this is why, while I have a Facebook account, I don’t log nearly as many hours on it as some of my friends. I know who my friends are in real life and I don’t need to document it on a website, I’m more interested in conversing with others in certain fields. And since I do this to pass the time or to distract myself while doing something else, I tend to use IRC more than forums.

The last topic that really piqued my interest was Shirky’s insistance of handles in building an online community. There are online communities that purposefully prevent users from identifying themselves through a handle. 4Chan is the one I’m most familiar with. Every user posts as Anonymous and while it is possible to identify yourself from post to post using a built in hash function, the community frowns on this behavior in the same way that some Usenet groups frown on anonymous postings.


Not a lot of thought provoking content in this post, mostly summarizing things I already know like Constance Steinkuehler thinks MMOGs are the new third place and she uses “The Great Good Place” as an argument for that. But the author is a librarian and argues that libraries are becoming less and less of a third place. What? Since when were libraries a third place? After reading part of “The Great Good Place” and seeing Oldenburg’s defining traits I’m not sure I see libraries matching those. Where is the cameraderie in a library? Where are the familiar faces? Continuing with this line of thought “The only thing wrong with the third place concept is that it’s being utterly co-opted by corporate America.” How is Starbucks at all like a third place described by Oldenburg? Oldenburg describes a place where people know you and you are all members of a community, but none of that exists at Starbucks. People come to Starbucks (and coffee shops in general) to be around other people and drink their coffee and read their book and won’t ever talk to anyone else. Yes, this points to people needing proximity to others in a public place, but none of the community that is so vital to Oldenburg exists.

Of course libraries today are not what they used to be. Perhaps there were more book clubs in libraries I don’t know. The libraries I go to seem very detached from the “community” around them, but that could just be me.


Tonnies book introduces the idea of community vs. society. That they are not equivalent. I would like to redescribe them in my own words. Both offer a feeling of familiarity, the difference is whether this familiarity is personal. You are familiar with those in your community and you know their name, or you share enough in common that you consider yourself a group or a community. In a society, you share a familiarity with others in the society, but they don’t necessarily know your name and there is nothing betweeen any two individduals that justifies further intimacy.

While one might bowl frequently and be part of the community at this bowling alley, when on a trip if he were to visit another bowling alley, he would be familiar with the culture of the society, he would feel no community with the people at this bowling alley.

“The Great Good Place” doesn’t really go into details of community vs. society, it does emphasize the importance of community through a third plane, that which is not work or home. People need to have a place, or a community, they can be a part of. This I agree with and I can see this in my own life. But either because the author doesn’t see the importance, or it’s simply not the topic, he doesn’t discuss the importance of relationships outside of the third place. One thing that is very important about the relationships at this third place is you don’t have great intimacy. Two people might meet every day at this third place and not know the other’s age or the names of their wives.

People are spending more time in their home and to combat loneliness spend more time on their phones and on the internet. But what of the person who only has relationships in this third place? What of the person who has no one he can invite over to dinner? Perhaps not as widespread a problem, but the lack of personal relationships a third place cannot offer could be just as destructive.

Citations: “Community and Civil Society” – Tönnies “The Great Good Place” – Ray Oldenburg “Bowling Alone” – Robert D. Putnam

A Response to Google Profiles

December 20th, 2007

A few days ago Google announced they are going to be integrating their Google Profile across (all?) their web applications. This is the profile you use to login into Gmail, orkut, Google Talk and so on. Before now some of these were linked, your GTalk account and your Gmail account for example but now this will be connected to your Blogger account as well as to some applications that didn’t have profiles previously, Google Maps for example.

My first reaction is, “do I really want my information and each of my “Google identities” merging? In the same way that I don’t want my shopping habits and my social calendar to mix (see Facebook Beacon), I’m not sure I want people who read my blog to know my Gtalk account or know how to find my Shared Stuff. And if I already have accounts on these previously independent applications will they be automatically combined or can I opt-in?

On the other hand, many of Google’s application already seem to work together, partially because several of their applications are already linked: Gmail, Gtalk, etc.

The biggest conclusion to all of this is that I might be able to log in to my Orkut account of which I’ve surely forgotten my password.


I find the idea that it’s not privacy, or lack of, that is causing the problem here but instead a collision of “fronts” fascinating and wholeheartedly agree. This goes back to “Representation of Self” and is obviously not new to digital identity. We exist within different communities or contexts and act so that others will only see the current appropriate self and thus view our identity within the current context. How is one supposed to act when they are thrown into several of their communities at the same time?

While I have not thought about this much on my own, Cory Doctorow’s (I’ve seen Doctorow speak, he is very persuasive and entertaining) point that Facebook is becoming too large makes me realize one of my own dissatisfaction with social networking sites. On Facebook I try to limit it to people I am close to in real space and so it bugs me when someone I’ve met once, or not at all, wants to be friends. In my mind I view Facebook as the domain of my real space identity and that clashes with my online identity, which exists in places like forums and IRC.


Response to Hiding From Justice

December 11th, 2007

One of the important topics discussed in the papers I read this week, particularly the one on Usenets “Identity and Deception in the Virtual Community” by Judith S. Donath deals with online identity and deception. Your identity among your peers online is a tricky thing, partly formed from your digital identifier, in Usenet’s case your email, and your reputation based on your previous actions.

World of Warcraft benefits from a similar system. While each player may have multiple characters that are un-linked, each character can be considered a unique identity. One’s actions as that character could have long lasting reputation ramifications. Be careful who you cross or you could find yourself without any friends.

Until now. Recently Blizzard implemented a new feature that allows a player to change their character’s name. Some players rejoiced, for they were unhappy with their name and wanted to change it, while others were less pleased. A reputation is a morality check. When people are anonymous they do things they wouldn’t otherwise do, see Usenet article, but when their reputation is at stake they modify their behavior.

Unfortunately it didn’t take long before people began abusing the ability to change their name. This article on WowInsider titled “Hiding from justice” mentions a guild that had a member ninja (steal) a few items from the guild bank and then disappear completely. Most likely this character had changed his name. Blizzard’s official response on this was to be more careful about who you let access your bank. They chose to give players more control over their identity and through doing so, the ability to erase their reputation.

So what is your identity on World of Warcraft? If you have a good reputation, other people might treat you better, but if you have a bad reputation you can simply change your name.


“Identity Production in a Networked Culture: Why Youth Heart MySpace” – Danah Boyd American Association for the Advancement of Science – February 19, 2006

Boyd begins her article by explaining what MySpace and justifying it’s importance academically and culturally. After she introduces her audience she moves on to what MySpace actually is, beyond a ridiculously popular website graphically designed by a retarded monkey. She calls it a teen hang out space. MySpace revolves around profiles, other than tweaking your own profile and commenting on other’s profiles there is little to actually do. But what do teens do together outside of MySpace? They “hang out.” I haven’t done much research in this area, but I’m sure Boyd isn’t the first to look at public, private, and controlled spaces and the lack of private spaces for teenagers, but I found this concept fascinating and can definately see how it relates to MySpace.

One of the major draws to interacting in a community online as a teenager is that ages are blurred. A teen can belong to a community of adults as an equal, unless of course he demonstrates his immaturity. But you are not immediately judged based on your age as you are in the physical space. But it’s not the freedom to be an “adult” in an adult community that draws teens to MySpace; it is the freedom to be adults in a teen owned community. Who owns and governs one’s community on MySpace? The users! There are no adults overseeing the interactions, much to the chagrin of many adults, and so teens can learn how to present themselves and interact with each other; jockey for social positioning.

As much as I dislike MySpace, as a web developer I despise it’s design, and as an ex-teenager I despise it’s social culture, but am I really no different? Instead of finding ungoverned community on MySpace I find it on IRC and forums.

citation: boyd, danah. 2006. “Identity Production in a Networked Culture: Why Youth Heart MySpace.” American Association for the Advancement of Science, St. Louis, MO. February 19.

Canada is a strange place.

The first trouble my friend Josh and I had was traversing the border crossing. The road split several times with no signs indicating which way to go. Fortunately we passed this test with flying colors. We later theorized that this was all part of an elaborate ruse by the Canadians to keep idiots out of their country. This theory has been supported through several further experiences.

This land has trolley. Trolleys are trains that drive on the road. Or you could call them buses that run on rails. They are big and scary and obey street lights. Cue foreshadowing.

Shortly after we arrived at the hotel. We both agreed this was a sketchy part of town. The hotel employee could not believe my friend’s name was “Josh? As in J.O.S.H.? As in Joshua?” He was astounded. Apparently no one in Canada is named Josh. This employee informed us that parking was two blocks away in an underground garage. Thus begins our adventure. We immediately drove down the wrong road and found a hospital parking garage. We drove some more and did not find any underground garage. We circled around again and drove into an area filled with trolleys. We turned down the alley and were greeted with traffic signs unintended for motor vehicles. It was not until the “TTL Personnel Only” sign that we realized we were not where we should be. Unable to turn around due to the incoming trolleys, we continued on. Employees gave us strange looks, we were unfazed. We would escape this trolley land.

We did and then circled the area a couple more times before returning to the hotel for a map. Armed with directions to the parking garage we made it to a nearby apartment complex with an underground garage. We drove down into the garage and parked the car. As we began walking out a man sitting in a van a couple parking spots down from us beckoned us over. He asked us if we were staying at the hotel. He then told us that we should take any valuables out of the car because a vehicle had been broken into the night before. He then elaborated saying cars had been broken into several nights in a row and he was sitting down there to catch people. Josh and I quickly decided we didn’t want to park in that garage and took the man’s advice that parking on the main street was safer.

Due to all this excitement, Josh and I plan on finding a different hotel to stay in tomorrow and Friday night.

Pictures of the hotel room will be coming shortly, but for now a checklist of features:

  • missing light bulb
  • old computer
  • no walking space
  • very loose bathroom doorknob
  • air conditioning unit covered in plastic
  • electrical cord duct taped to the floor
  • and free wireless internet (which we are using to find a different hotel)
  • broken deadbolt (edit)