Passively Multiplayer Online Gaming

I’m always looking for new and innovative ways to completely waste my time online, so when I met Justin Hall at SxSW this year and heard about some of the cool things he was doing with games and user-surfing patterns, I knew his PMOG would probably be for me as someone who has been addicted to various MMORPGs and is a bit of a statistics collector.

He and his team’s specific PMOG can be found over at Bud.com, and you can find me as Phae.

The general premise is that it’s a world and game that you’re interacting with and in all of the time that you’re surfing about on the web. In it’s simplest terms, this is currently done by installing a plug-in onto Firefox and letting it collect the URLs you visit. The type of interaction you do with the web and the type of sites you visit determine your alignment and class.

That might seem a bit invasive to some, but that’s another kettle of fish – this is just for fun uses, not subterfuge and you can flick the plug-in off if you’d rather spend a bit of time without it logging you.

Now, surfing the web rewards you with XP – much like the traditional RPG – journeying means you’re experiencing. The only difference is you don’t actively have to do much – there’s no beasties to battle along the way (yet?) or keys to find or any other such fantasy. You’re just rewarded for being an active internet user.

That’s the passive part.

The really interesting bit about this to me is the not-so-passive layer they’re adding. You can start to interact and do more of the game part. This is done via the traditional Quest formula. Quests in a PMOG universe mean visiting a group of pre-determined links on a theme and getting some extra XP for doing so. Along the way you might find some fun new sites or, heaven forbid, learn something new. The Quests are created by other users, so there’s a variety of themes.

Then there’s other things like Portals – which allow a player to send another player to a new URL (like a hint, or trick, to get them to visit something new) by attaching a portal to a specific site. Another fun item is Mines – which can be planted on a URL, so that when a player visits the URL they step on the mine and forfeit some of their Datapoints (the currency of PMOG, gained passively over time). Other special items are in the works.

Now, the really fun part for me and the bit that’s really piqued my interest is the Items. Items in this universe will be embedded into websites via HTML using standardised class names and values.

What’s that?

Yep – microformatting to give richer mark-up and machine readable, extractable, data which in this case will be magic items that can be collected (and probably in the future sold, swapped, used or combined).

OK, I admit, it’s a bit of microformat’s principle no-no in that most likely these items will be hidden away and forgotten about in various websites that want to be richer parts of the PMOG universe, and also not human readable in the first instance, but what a fun use of microformats!

One thing that is missing from the PMOG universe at the moment is NPCs – but they could be set up just as easily as items using hCard, and then they can guide players off to new Quests and Items. Or something like that, anyway. Lots of potential.

I’m quite keen on following what they’re going to do with this on the grander scale. Sometimes it’s nice to feel like you’re part of a big game and have everything you’re doing have another level of use (all be it just a fun, and intensely nerdy, one) and with real-life and internet social network lines blurring more every day, why not start blurring that one between gaming aswell?

South by South West

I kept saying to myself that I will eventually get around to writing something about this, but being out of the office for 8 days and the best part of offline for 10 means I’ve just had too much getting in my way.

In short: South by South West was great!

First things first; our panel.

Well, it went well. I think. People have been nice and positive about it. Two main concerns generally were a) that it wasn’t exactly what we were billed to do and b) some people didn’t know what microformats were. Well, regarding point b – it wasn’t billed as an introduction to. We only had so much time, and we felt that those likely to want to attend this particular session would already have a foundation, or at least an interest enough to have read about them a little, in microformats enough to know what was going on. I’m sorry if you didn’t get it – I’m more than happy to give you an intro to if you drop me an email (fberriman AT gmail).

A photograph from PTG of the microformats panelAs for the first point. You’re right. We did do more of a history/what’s cool now, as opposed to looking deeply into the future. To be honest, it’s hard to know what’ll happen exactly. I think we did a good job in showing that take up has been brilliant and a lot of big names are getting involved with supporting and implementing microformats, and that there’s real ways you can start using microformats in your day-to-day internet experience.

How did I cope, I hear you ask? I was nervous as anything (particular thanks to Patrick who put up with me being the best part of mute that morning).

About 10 minutes before going on, we learnt that rather than being in a small room which I had somewhat managed to psych myself up for – we’d be in the biggest room (18ABCD). This means I was not at all prepared for the green lighting and the spotlights and the 700-odd people!

Tantek, Glenn and Mike were brilliant though. I’ve heard back from a few people who were genuinely really impressed with the backnetwork and Operator. Jeremy Keith joined us about half way in after a completely unplanned, but perfect, question which allowed him to show of his cool little bluetooth trick.

I did learn that I don’t like prepared speeches though. About 2 lines in, I realised I’d for some reason abandoned what I had planned to say and was making it up on the spot. I did not enjoy that. I did however really like the Q&A section. Having to think on the spot about what people wanted to know about seemed to have the effect of removing a bit of my stage fright. I suppose I prefer conversational tones.

Am I glad I did it overall? Yep. Would I do it again? No. Actually, yeah, I might… if I could do some more smaller things in the mean time and get some practice in, I’d consider it.

Other than that, SxSW was fun. It was a good chance to put some faces to names I knew online and meet a few new ones. Panel wise, I made a bit of an effort to avoid subjects in my field since I didn’t expect to learn that much and headed for more unusual topics. I went to quite a few of the game track (screenburn) sessions, and really enjoyed them. It was especially interesting to learn that they are having a lot of similar issues surrounding maintaining identities/networks in different parts of the web as we are. Also quite fun to know that OpenID is a topic for them.

I have more to write I think, but this is already a long post and late! “Hi” if I met you though, it was a pleasure.

SXSWi Microformats Panel Confirmed

The Growth and Evolution of Microformats panel at SXSWi has been added to the rather handy panel planner on the SXSWi site (shame it’s not marked up as hCalendar though – [edit] the panel picker has now been microformated!). It gives a little bit more of an overview about what it’ll be about:

In its first year, microformats.org ushered in the rapid adoption of key formats for publishing and sharing tags, licenses, contacts, relationships, events and reviews on the Web. See what new microformats are being developed for resumes, classified listings, music, and media, as well as how tens of millions of established microformats on web sites of individuals, companies, and organizations are driving innovations in desktop applications and advancing personal data portability

You’ll also note that the rest of the panel is announced too. We’ve got Tantek of course – *the* microformat advocate, and moderating the session. Michael Kaply from IBM is the man behind the Operator toolbar for Firefox, which in my mind is the most complete and fully functional addition for Firefox for detection and use of microformats. Glenn Jones is the only one of the bunch I’ve had the pleasure to have met before – he was 1 third of our microformats triple bill at the first BarCampLondon (along with Drew Mclellan and myself). He’s an implementor and created the backnetwork which is stuffed to the gills with microformats. He also presents on the topic, and did so recently with Destroying Walled Gardens at BarCampLondon2.

Then there’s me, of course. Makes me consider my place in the group though.

I mentioned this to a few people and they simply said that I was the human side of things. Possibly more down to earth and using microformats in day to day development. Not too many ideas of grandure and using them practically, and advocating and explaining them in simple terms to those who want to learn about them.

I’m also the most community involved panelist. That might not seem important, but when you realise that microformats wouldn’t exist without the community it’s a lot more. Every spec and decision made about microformats is done by an organic community of people, like myself, who are enthusiasts. It’s this organic growth thats let microformats spring up out of nowhere and gather speed and support so quickly.

I think it’s a good mix though, and I’m looking forward to the panel even if I am a touch nervous.

JAWS Screen Reader Session, Microformats and Us.

Last Monday I had the opportunity to visit the Test Partners, after an invite by Steve Green, to attend an afternoon of screen reader demonstration. I’m exceptionally glad I went, and it’s a shame I’ve been too busy to mention it sooner.

A picture of the JAWS shark logoFirstly, the session concentrated on a specific sub-group of internet users – the blind. Steve made a point of saying that with any project you need to decide who your target audience is as measures to help one group of users may be mutually exclusive to helping another. As such, he stated clearly that within this session (and my feedback below) that the techniques and problems raised are relating to those specifically who are visually impaired and using screen readers.

However, in my opinion, a site that is easy and understandable to navigate for screen reader users probably does go a long way to making this whole web experience easier for a range of people with varying difficulties and user needs.

We ran through JAWS operation. JAWS in particular because it has the market share of screen reader users.

From testing on live sites, it became clear pretty quickly that headers and lists were really, if not the most, important. Properly used headers (semantically correct) give an easy way to navigate to prominent areas of the page and also give instant context.

The logic behind putting navigation buttons into lists also became ever so clear when you hear JAWS inform you that there is a list of 6 links coming up. Not only does that sound like a navigation, you can easily be ready for how far into said list you’re probably going to have to look to get to the section you want (somewhere in a dozen or a hundred links?).

The reason these two things are particularly important is because of the way a blind user creates his or her visual model of how the site works. They can’t just glance at what’s coming or where something is. They must make a top-down mental image of what’s available on the page by running through the entire document (unless they already know the site and can rely on it being the same as the previous visit).

This method of mental navigation shows why consistency and predictability are really vital. I’m not saying that every site should be laid out in an identical way, but subsections of a site should follow a template defined by the initial landing page and navigation should be pretty standardised.

Thinking about this does remind me of a reason why I like microformats and think they may have some potential as accessibility aids and therefore why I’d like to see them utilised within something like JAWS.

Microformats are a way of standardising more specific elements within a page, and I’m sure it would be useful to some if they could have JAWS announce to them that the page they have just landed on has 4 headings, 12 links, a contact and 3 calendar events.

The reason I mention microformats in particular is because it’s something I’ve been giving some thought to for a while in direct association with accessibility and think I’d like to elaborate on in the future. Feedback in this area is especially welcome.

For me though, the most surprising thing was being told that by default, most SR users don’t read title, acronym and abbreviation attributes! A majority of users find it annoying to be given the extra (and often superfluous) information. The lesson learnt here is to make sure that everything that is important to the understanding of a document should be in the actual page copy, rather than hidden away in tag attributes.

There were many other bits and pieces of interest – from reminding us all that display:none is adhered to by JAWS to writing good copy can go a long, long way, and then that access keys (uh oh) aren’t particularly utilised or useful because most sites don’t offer them so they cannot be relied upon.

The thing is – JAWS is a bit smarter than I’ve given it credit for. Saying that though, from the feedback from John, a vast majority of users aren’t advanced users and probably aren’t toggling features on and off to get the most out of a site.

So, there’s two things there – users probably need more training, or at least opportunities to learn how to use websites on their own in some way, but equally as publishers to the web we should be making the best effort to present information – and that’s ultimately what we’re all doing after all – as clearly and as simply as possible.

Web standardistas will already be doing this I’m sure and rolling their eyes at being told yet again, but it’s important not to forget why you’re doing it. It’s not just about being correct for correct’s sake; it’s about giving everyone a fair chance.

vEvent Reminder

p>Just a quicky reminder.

This Saturday (30th) is Drew and I’s Microformat vEvent social in London. You can find all the details and who else is stopping by at the upcoming.org event page.

As I said before – it’s just a low-key social for those in the Microformats loop. So no specific plans or pressure – stop by for a drink is all we ask.

I’ve chatted about it to a couple people, and some have said they’d like a more formal event in the future. So… if the scene looks like it’d be good for it I may well try to organise something (and already have a couple of speaker volunteers). Watch this space, eh?

Also – yes, it’s true. I’m off to SXSW in March, over in Austin, Texas! Can you say excited?

Adding XFN

I recently readded XFN tags back into my links (read: blogroll), which are another Microformat open standard. As with most microformats it’s very simple, and some blogs will do it for you by default. What it basically means is you add rel=”relationship” to the link of the person to give the link some additional meaning.

For example, if I wanted to link to my friend Lana, I can write:

<a href=”http://lanadenise.wordpress.com” rel=”met friend”>Lana’s blog</a>

This indicates that Lana is a friend who I have met. If you leave out the “met” it can be a friend you haven’t yet met (i.e. online). There’s a handful of predefined relationships that should be used but there’s just enough. You can indicate family members, co-workers and vague connections.

Why would you bother, I hear you ask? Well, it gives some extra meaning to my markup for one. You know how I love semantics. But after badgering my Dad onto WordPress so I’d have a legitimate reason to use a family XFN tag, we discussed some of the awesome things about it (which had also been mentioned on #microformats). For example, my Dad has a website because he’s interested in finding, and being found by, distant relatives. Imagine a few years down the line when everyone has a blog (don’t they already?) and use XFN tags on the links to their other family members with blogs. You could easily pull up a diagram based on these interconnected links and see who is related to who. An instant family tree!

Alternatively, you could look up people who work together, or instantly pull up a group’s social network based on reciprocated links. Also, it means I can tie other websites that I use to this page, providing they all show the rel=”me” which will ultimately end here. (See Identity consolidation with the XFN rel=”me” value.)

So, I added that, and after spotting that I had accidentally misspelt his surname and telling me that I should blog this, Tantek suggested I also hCard the links. Not a bad idea! So now you can grab my friends names, websites and what they mean to me all in one go.

Apart from my inability to spell some names correctly, XFN is a very simple to add but fully loaded tag for links, so I had no issues with implementing them.

I think it’s something that will be relied upon more and more in the future for a range of uses and services, so it’s really worth adding now and getting a grip on. Mixing XFN with VoteLinks (which I have yet to use anywhere) and no-follow seem like an interesting prospect and perhaps could be useful for better determining page ranking or just aiding web searches. I’m no innovator, but I’m sure someone will come up with a good way to utilise these features together.

The question is, what should I format next? hResume?

Microformats London social

Drew Mclellan (developer of the awesome hKit) and I have discussed a Microformats Social here in the UK for a while but never got anywhere with it, but now we’ve named a date and want to see levels of interest.

We’ve gone for a Saturday – 30th September. So, it’s a little breather after the upcoming events. If you think you can make it, please register your interest either on the wiki page, or the upcoming.org events page. Drop a comment to say if you’d like to do something in particular on one of those pages or on here. This is mostly designed to be a social, but it’ll be an opportunity to discuss any projects you’ve got on the go, get more involved, or clarify any problems you might be having.

We were thinking a trip to a microbrewery would be appropriate – so if you know of one in London which is easily accessible (i.e. near a tube) and wouldn’t mind a hoard of microformateers visiting, let us know about that too.

If you’re at BarCampLondon or d.Construct then you can always talk to us about it there too (or we may draft you into coming along!).

Implementing hAtom: The entries code

This article is rather old now, but has been linked to a few times recently. Just wanted to say that I don’t actually use the example below anymore, as I have since upgraded WordPress and used the sandbox theme as the basis for my own, which comes with it’s own microformat goodness. The example below is still valid though and should be useful to you if you want to understand how it works or still want to do it yourself.

As promised, here is my PHP hAtom WordPress loop. Feel free to do as you like with it.

To start: The first thing with implementing something like this is it’s a really good excuse to do a code review. I had a look at the way I was using my headings and abbrs etc. and moved them about a bit. It becomes clear pretty soon that if you’re not using your HTML tags in a semantic way, it’s harder to think about adding additional levels of meaning (the microformat classes).

When I first added hAtom I didn’t also add it for my comments. This meant I could use hFeed around the entries. You can’t nest hFeed though, and since this loop will sit around the comments loop on a permalink entry, it had to be sacrificed and instead the page is taken as hFeed (which is the fallback) and the hFeed wraps around the comments loop (which I can also post if you’re interested). If you don’t hAtom your comments, put hFeed back in around the main entries, as this is a field that *should* exist if possible.

Entries loop with hAtom:


<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>

<div class="post hentry" id="post-<?php
the_ID(); ?>">

<h2 class="entry-title"><a href="<?php
the_permalink() ?>" rel="bookmark"
title="<?php the_title(); ?>"><?php the_title();
?></a></h2>

<h3>by <span class="author
vcard"><span class="fn"><?php the_author()
?></span></span>

on <abbr class="published" title="<?php
the_time(’Y-m-d’) ?>"><?php the_time(’F jS Y’)
?></abbr> </h3>

<?php the_bunny_tags(); ?>

<div class="entry-content">

<?php the_content(’Read the rest of this entry »’); ?>

</div>

</div> <!– end hentry –>

<p class="righted">Posted in <?php the_category(’, ‘) ?>
<strong>|</strong>

<?php teb_word_count(); ?> | <?php
edit_post_link(’Edit’,'’,'<strong>|</strong>’); ?>
<?php comments_popup_link(’No Comments »’, ‘1 Comment »’,
‘%Comments »’); ?></p>

<?php comments_template(); ?>

<?php endwhile; ?>

<p><?php next_posts_link(’« Previous Entries’) ?>
<?php previous_posts_link(’Next Entries »’) ?></p>

<?php else : ?>

<h2>Not Found</h2>

<p>Sorry, but you are looking for something that isn’t here.</p>

<?php endif; ?>

I’ve added some linebreaks and such to make it a bit more practical for a fixed width blog, so don’t take too much heed of the actual layout.

The bold parts are the hAtom sections (although the bunny tags also produce the “rel=tag”). The parts in italics are plugin calls. Note also how you incorporate hCard as the author. The publish date uses the datetime design pattern on the abbreviation. I chose not to include a timestamp as I don’t publish more than once a day (as a rule, anyway).

Do not fret those of you who aren’t into working up your own code, or perhaps are using wordpress.com – The Sandbox theme (available to .com users also) now has hAtom!

As you can see, it’s pretty simple. It’s just a case of going through and basically labeling the correct parts with the correct classes (making sure you have instances of all the *must have* classes). If you follow the link above to the hAtom wiki page on the microformat site, you’ll find some tools for testing your implementation.

hAtom implementation

It’s late, and I have had a long journey today down to Cornwall to visit my family for the week (so if you email me this week please use my gmail not my work address), but I thought I’d stop by and mention that a couple nights ago I finally got around to implementing hAtom on this blog.

Implementation was a doddle. Checking it was accurate was not so much. The available Firefox extensions that check for hAtom are not all that… working. If you show certain elements in a slightly different order it seems microformat-find, for example, can totally miss it. This is fair enough though for a couple reasons. A. hAtom is very, very new. Version 0.1 still. and B. Writing parsers isn’t exactly straight forward, and I have every sympathy for that. Consequently, I spent a long time wondering why it “wasn’t working”, when infact it was fine… I just didn’t have access to tools to show me that (but the boys helped me out – cheers Chris, Drew and Luke for checking my stuff over).

Also, I found that some of the documentation for hAtom seemed a little odd. I will probably bring this up with the group later, but I’ll throw it on here first. The main thing I found odd is that “updated” is a required field, and if not found you should use “published“. This seems odd to me since surely you can’t update something unless it was published in the first place? Perhaps I am misunderstanding the usage of the term updated (Drew suggests it’s a mapping to the Atom spec)? Anyway, looks like that part of the spec could use a little ironing, and I think that’ll be happening. I’ll keep you posted on that one.

Anyway, I was going to post my final wordpress loop code snippet, but I’m not sure how useful that is for everyone. If you want to see it, and where I’ve added the extra information, say so, and I’ll run through it on here. Having lots of implementations means that people can get writing extractors and having some varied testing beds to try them out on will help, so I encourage people to take a look at it.