MiniMail – Action Oriented Programming

This is down right impressive, as I’d love to see more small utility programs appear at almost the speed of thought. I’m talking about MiniMail, a product concept conceived by Derek Powazek back in May and now just launched in June!

 

Now all I need to do is make enough money to afford an Apple MacBook and I can get back into the wonderful world of Macs, leaving these dreadful droning PCs behind. 🙂 

Creating A Universal Management System

Chris has a new post on his blog relating to cleverness. What stood out for me though was his mention of developing things that are reusable.

…you’ll quickly realize the benefit of creating small and simple isolated solutions that can be reused as components over and over again, playing along with Tantek’s Building Blocks model.

As soon as I read this, I was reminded of a post I did a couple of years back on my Gaming Scene blog (no longer active) relating to creating a universal management system within a MMO game. The funny thing is that I was commenting to David Seah about this a a few weeks or so ago, saying that I should strip core elements out of the dream MMO game concept I have and see if I can utilize in a social collaboration environment instead.

Anyway, I’m pretty swamped with work right now, so I can’t elaborate more on what I mean by this but at the very least I’ll repost my original post on the universal management system concept I originally had and hopefully others will see what I mean when I think core elements of it could be utilized in a social app. For example, instead of thinking of a adventuring party of players, guilds, and so forth, start thinking about it from the viewpoint of a group of programmers, departments, and so forth. Be forewarned though. This is a long article. If you’re not into designing systems, you might find this really boring.  🙂

 

Creating A Universal Managment System
Originally posted June 21, 2005

There are a lot of discussions going on right now with people expressing their interest in seeing more player controlled worlds in future MMO games. However, a lot of people are also saying that it would be impossible to implement such worlds as griefers would reign supreme within them, possibly taking advantage of their attained game status or rank to cause problems to others. I disagree with this thought process because the reason this is happening in MMO games today is because they weren’t designed from the start to be fully player controlled. If they were, the designers would have thought about these issues and designed the gameplay dynamics in such a way so that it couldn’t happen. Of course they aren’t building these types of worlds and thus they don’t think about these issues. Yes, at some level players are given some control but usually it is a very narrow scope of that world. Therefore, if they don’t have complete control of the world, the designers only have to focus on the issues that the players do have control of.

Game Rank vs Community Rank

One of the main reasons why people say player controlled worlds won’t work is because players will probably grief it with their attained rank or status in the game. I disagree primarily because player controlled worlds should most definitely not be controlled by players with the highest game rank. Most games today give players this rank or status based upon how well they do in the game. Therefore, someone who is awesome on the battlefield might attain a higher rank which gives him more priviledges or access to resources within that community or faction. The only problem with this approach, as everyone knows in the real world, is that just because you are good at something, it doesn’t mean you’ll be a good leader or teacher of it. Therefore, in a game of this nature, someone could attain a high rank which allows him to control other characters or gives him more priviledges but he may be useless as a leader or utilizing those priviledges properly. Therefore, the best way to get around this problem is for the community itself to have the power to bestow leadership to players. And of course since they have this ability they can easily take this power away as well, especially if the player decides to grief people. However, even if the player did want to grief people, the game should be designed in such a way that the leader only has the power to delegate tasks for that community. He does not have the power to perform those actions by himself, unless of course the game gives him a button on his desk that says “World Armaggedon Button”. Therefore the higher the scope of the leader, the more people are usually involved in performing and delegating that task. For example, if a City leader told his City Watch commander to go out and kill every woman and child on the streets, the commander might actually give the order to those commanders under him. But at some point in the chain of command, usually sooner than later, people are going to say what the frick gives and refuse those orders. 

The Need for Artistic Unity

So now that we have a ruleset for how a community should be managed (by the people for the people), what system can we devise to manage it all without it becoming a huge pile of chaos? Well, before I go into how this might be accomplished I first want to quote something from Chris Crawford’s book on The Art of Computer Game Design (PDF, 377K), specifically from his section on Design Precepts For Computer Games where he talks about Precept #4: Keep It Clean.

Many game designers fail to keep the overall structure of their game close to heart as they develop the details of the game structure. As they encounter design problems, they resort to quick patches that are grafted onto the main game structure without due regard to the impact such grafts have on the overall cleanliness of the design. A game must have artistic unity if it is to have emotional impact on its audience. Artistic unity can only be achieved by sticking close to the theme and eschewing distracting details.

And then he goes into a bit more detail in describing what he means by this artistic “unity”.

I can generalize these observations by saying that the narrower the range of application of a rule, the dirtier it is. My precept against dirt thus requires the designer to formulate a set of rules that cover the entire game situation without recourse to special case rules. In the perfect game design, each rule is applied universally. We can never achieve the perfect design, but we can and should strive to give each rule the widest possible application. The player must consider the implications of each rule while making every decision in the game.

Of specific note, he said, “In the perfect game design, each rule is applied universally.” Therefore, whatever system is created to allow the players to control this world, it needs to be both obviously simple to use and, more importantly, universal in its scope. Therefore, the system that someone might manage a guild with, should be the exact same system that someone rules an entire kingdom with.

Simple In Design

Now before I go into how this system should universally scope, it’s important to explain why this system should be very easy to use. The obvious reason is that it makes it easier for people playing the game to use it. More importantly though, it makes it even easier for people to understand how to manage something at a larger scale, especially when they’ve already used the exact same system at a smaller scale. For example, a player who is the leader of a party has experience in managing that party. If that party, however, is a part of a guild and if the guild members elect the party
leader to become the new guild leader, then he or she will not have that much difficulty in understanding how to manage the guild because the same system is used to do both, with the only difference being the scope of the management. Therefore, once you’ve managed one community size, it shouldn’t be that much more difficult to managing a community a step up in size. Why this is extremely important is that it allows for the easy advancement and selection of community leaders which is necessary when a community decides to elect a new leader or cast out an existing one (due to griefing or maybe just bad leadership skills).

Universal In Scope

Of course even if the system is simple to use, it still has to be powerful enough to handle any management task that is required of it. Thus it needs to be universal in its scope. Thus not only will I use this management system to manage my character, it will be the same system I use to manage a kingdom. How the hell can this work? By creating defined elements that are universal to every layer from a single character all the way up to an entire kingdom or nation. Therefore, no matter which level we are looking at, these elements will always be there. I haven’t thought about all of the possible elements just yet but here are just a few off the top of my head with their accompanying explanations of how they are universally consistent at each level. Oh and just imagine that these elements are tabs upon this Universal Management System with a drop down box or hierarchal tree to one side indicating the level at which you are managing (i.e. character, party, guild, and so on up to kingdom or empire even).

Appearance – This is the appearance of the person or community you are managing. For a character it would be how they actually look to others. If it was a community, it would display their flag, crest, and/or emblem. So not only could a character use this area to show what his character looked like, he could also use it to create his own clan or guild emblem.

Resources – This is the resources available to the person or community you are managing. For a character it would display the items that they have (i.e. money, equipment, etc) and probably where they are located on his body. For a community, it would display the items or resources available to them and where they are located wtihin that community. So for a guild, this might be their accumulated wealth, weapons, foodstuffs, and land holdings. For a nation, it might include the available food, ores, funds and so forth necessary for maintaining the realm.

Development – This is where the development of the person or community occurs. For a character, it would show his abilities and skills including feedback showing how close to completing a new ability or skill level he is. For a community, it would show the layout of a community including feedback on anything currently being built within it. Therefore, for a City Quarter, it might show a map of that section of the city as well as building development currently in progress within it. If that building development was say the construction of a temple being undertaken by an order of priests (which is handled just like a guild would be) then not only would the leader of the priesthood be receiving development updates as guild leader but the leader of the City Quarter would as well, since the building falls under both their jurisdictions.

Tasks – This is the tasks that are assigned to you and tasks that you have assigned to others be it personally or within your community. Think of it like the tasks in Outlook. For a character, it would be where they put their own list of things to do or if they’ve given a quest to someone to accomplish something. For a city, it might be where the city leader displays his plan of action for the city, as well his assigned tasks for those leaders of the various City Quarters underneath him. Note that tasks would normally just be assigned and delegated to those immediately below you on the “chain of command”, so that they can in turn assign more detailed tasks to those under them. The reason for this is that if you were a ruler of an empire and you assigned tasks for each individual under you within your entire empire you would probably go insane trying to manage it all. Why deal with the headache? Delegate.

TradeI’m not too sure if I would enclose trade within this management system or give it its own separate system, however, let’s see how this goes. This is where a character or a community leader performs trading transactions by buying or selling items (or resources, as noted above). From a character level, it would show what the character can purchase or sell to the shop owner in front of him and the status of that transaction. From a community level, it shows what the community can purchase or sell to the communities surrounding it (at that level) and the status of any transactions. Therefore, a king of kingdom may view the resources of a neighboring country and may decide to buy a large supply of foodstuffs offered by a fertile nation using money from his coffers. Or a mine owner (operating somewhat like a guild owner) may select from the neighboring communites around him looking for iron ore and decide to sell his supplies of gathered ore to the one most willing to pay the highest price. Again in most of these transactions, especially the larger the community gets, the more delegation and time will be required to purchase or sell the goods. Therefore, a king may decide to buy so much foodstuffs but he won’t actually be able to obtain them until those he has delegated the task go forth and purchase the gold in the neighboring country. Of course, if you had a sci-fi game like EVE Online, you could probably make the transaction immediately but you would still probably delegate someone else to go pick up the shipment.

LeadershipDoh, of course the obvious I forget to add except at the last minute! This is where it displays the leader of your community. For a player, it just shows you, because you are the master of your own domain! For a party it would show your party leader plus those other members who can potentially be elected as a party member. For a city it would show the City Leader but it would also should the potential candidates to be elected as a City Leader which would be drawn from the City Quarter leaders (or even possibly from the largest guild leaders in town, depending upon how the overall community wants to maintain itself). This is also the area where you give a vote of non-confidence (to cast someone out as leader) or vote for the election of a new leader.

Anyways, that’s all the time I have for now but I’ll probably elaborate on this in the future. In closing, as I said above, I think the most important aspect for this system to work is that positions of leadership are bestowed by the community and not by game rank. In doing so, griefers will have much less of a chance to be placed within a position of power or, at the very least, maintain that position of power. Instead you will more than likely get players who actually want to help out the communities that they will be leading (because they’ll know they will get the boot if they don’t). 🙂

Squarespace Wish List

I keep getting these ideas of things I’d like to see added to Squarespace. Therefore instead of forgetting about them, I’m going to start accumulating them here in this post over time whenever I think of a new idea.

Journal Archive – Category Filter: Somewhat like the Entry Limit filter, I’d like to see a Category Filter that allows you to select a single already defined category (or even multiple categories if possible) of posts to display. For example, for me to create a list of my favorite posts on my sidebar right now, I have to manually do this using a Text/HTML widget. It would be much easier for the list to dynamically update whenever I tag another favorite post instead.

Create/Modify Link – Title: In terms of usability it is often recommended to add title tags to links to let the user know where the link will actually go. Right now I have to use the Edit HTML Source button everytime I want to add in a title tag which I use quite frequently.

Alternative Entry Title Link: This is so huge and adds so much flexibility to the journal system, I don’t know why many current blogging apps have dropped it (as some of the original blogging software like Radio Userland had it). Basically it would be an option in the configuration area of a module to enable an additional Entry Title URL field. Thus if I wanted to create a favorite bookmarks journal that emulated something basically like del.icio.us, I could easily do so. Even more so, the RSS feed would work appropriately as well. Therefore, when someone clicked on the RSS Entry Feed Title, it would take them to the bookmark URL of the site I’m talking about instead of to my entry on my site (which means they’d then have to click the URL again). Why not just use the Links module in Squarespace? Because it doesn’t work in a stream-like journal fashion in that the Links module doesn’t give you an RSS feed or the ability to comment. Instead it works in a very structured hierarchy fashion which is only really effective for a small list of your favorite sites or resources.

Picture Journal: I mean there has to be some reason why millions of people use Flickr daily which is why I’d like to see the Picture Gallery module have the option to work more like a journal stream (or maybe create a different module for it). Right now for me to emulate this, I have to use a Journal module and manually upload my pictures one at a time (and even upload two picture sizes if I want a small thumbnail in the entry excerpt area). Instead it would be awesome just to upload bunch of photos and all of them be created as separate entries (either published or unpublished with the category of your choice). Why not just use the Picture Gallery? Again because the Picture Gallery module doesn’t allow you to have an RSS feed and it doesn’t allow people (i.e. friends and family) to comment on each photo.

Amazon Item Journal: Pretty much the same thing as the Picture Journal recommendation above but for Amazon items. Therefore you get the nice integrated interface that Amazon Item module has now but instead it works in a journal stream format, so people could stay on top of your book reviews via RSS feeds, as well as comment on them as well.

NOTE: You’ll note that with the last few recommendations, you almost reach a point where the question is do you create these as separate modules or do you give the default journal module the ability to add different types of content. I’m not 100% sure on this either but with some testing it probably could be determined which is the better approach. For example, Vox takes an approach where your entire site is like one big journal and the content types (i.e. blog entry, book, music, picture, etc) are like special category streams defined within it.

Connecting In Vangroovy

I had a great time last night meeting up with a bunch of interesting people like Tara, Chris, Larry, Kris, and Phillip. Tara and Chris were in town, up from San Fran, doing Ma.gnolia work, so it seemed like the perfect opportunity for a casual gathering, as I hadn’t met either of them yet in person. Definitely a great couple, as they both seemed really grounded and down to earth.

While the conversation jumped around to different topics, I think the ones relating to relationships (both online and off, personal and business) interested me the most as I liked hearing people’s different viewpoints on the subject. I just hope I didn’t seem like I was hogging the conversation too much though, as that’s a really bad habit of mine that I’m trying to work on, since I often get too verbose when talking about something I’m passionate about.