iOS SDK: Lazy Image Downloading.

January 27th, 2012 No comments

I’ve had a couple people ask me for the code behind the image loading that’s referenced in my updates for fast scrolling post and I’m making good on a promise to post the code for everyone else to use. It’s shown below:

ImageDownloader.h

//
//  ImageDownloader.h
//  Lobaco
//
//  Created by David Klemke on 14/10/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import
@class Post;

@protocol ImageDownloadDelegate;

@interface ImageDownloader : NSObject {
	Post *post;
	NSIndexPath *indexPathInTableView;
	id  delegate;

	NSMutableData *activeDownload;
	NSURLConnection *imageConnection;
	bool downloadPostImage;
}

@property (nonatomic, retain) Post *post;
@property (nonatomic, retain) NSIndexPath *indexPathInTableView;
@property (nonatomic, assign) id  delegate;
@property bool downloadPostImage;
@property (nonatomic, retain) NSMutableData *activeDownload;
@property (nonatomic, retain) NSURLConnection *imageConnection;

- (void)startDownload;
- (void)cancelDownload;

@end

@protocol ImageDownloadDelegate

-(void)imageDidLoad: (NSIndexPath *)indexPath;

@end

ImageDownloader.m

//
//  ImageDownloader.m
//  Lobaco
//
//  Created by David Klemke on 14/10/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import "ImageDownloader.h"
#import "Post.h"

#define kImageHeight 75

@implementation ImageDownloader

@synthesize post;
@synthesize indexPathInTableView;
@synthesize delegate;
@synthesize activeDownload;
@synthesize imageConnection;
@synthesize downloadPostImage;

#pragma mark

- (void)dealloc
{
	[post release];
	[indexPathInTableView release];
	[activeDownload release];
	[imageConnection cancel];
	[imageConnection release];
	[super dealloc];
}

- (void)startDownload
{
	self.activeDownload = [NSMutableData data];
	//NSLog(@"%@",[post.data objectForKey:@"ProfileImage"]);
	NSURL *url;
	if (downloadPostImage)
	{
		url = [[NSURL alloc] initWithString:[post.data objectForKey:@"PostImage"]];
	}
	else
	{
		url = [[NSURL alloc] initWithString:[post.data objectForKey:@"ProfileImage"]];
	}

	NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:url] delegate:self];
	self.imageConnection = connection;
	[url release];
	[connection release];
}

- (void)cancelDownload
{
	[self.imageConnection cancel];
	self.imageConnection = nil;
	self.activeDownload = nil;
}

#pragma mark -
#pragma mark Download support (NSURLConnectionDelegate)

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [self.activeDownload appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    // Clear the activeDownload property to allow later attempts
    self.activeDownload = nil;

    // Release the connection now that it's finished
    self.imageConnection = nil;
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // Set Image and clear temporary data/image
    UIImage *image = [[UIImage alloc] initWithData:self.activeDownload];

    if (image.size.width != kImageHeight && image.size.height != kImageHeight)
    {
        CGSize itemSize = CGSizeMake(kImageHeight, kImageHeight);
        UIGraphicsBeginImageContext(itemSize);
        CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
        [image drawInRect:imageRect];
		if ([self downloadPostImage])
		{
			self.post.postImage = UIGraphicsGetImageFromCurrentImageContext();
		}
		else
		{
			self.post.profileImage = UIGraphicsGetImageFromCurrentImageContext();
		}
        UIGraphicsEndImageContext();
    }
    else
    {
		if ([self downloadPostImage])
		{
			self.post.postImage = image;
		}
		else
		{
			self.post.profileImage = image;
		}
    }

    self.activeDownload = nil;
    [image release];

    // Release the connection now that it's finished
    self.imageConnection = nil;

    // call our delegate and tell it that our icon is ready for display
    [delegate imageDidLoad:self.indexPathInTableView];
}

@end

There’s definitely room for improvement in there (you can remove some of the application specific logic) but it works well and I never had an issue with it. Let me know if you run into any problems though!

7th of February: R18+ D-Day.

January 27th, 2012 No comments

3 years and 15 posts have all been leading up to this: In a little under 2 weeks the House of Representatives in Australia will sit down to vote on the bill to introduce a R18+ rating for games into Australia:

The first parliamentary session in the new year is set for the 7th February – giving the poor fellas a nice long break – where the bill to introduce the new age rating will be voted on by the lower house. If it passes there, it will go on to the senate, which has the ability to pass it into law.

Current minister for human services and ex federal minister for home affairs, Brendan O’Connor, is the man behind the bill and he’s been pushing it forward for quite some time according to Games Industry (requires free account sign up). Thanks to his vocal public support, it is believed the bill will pass easily in its first parliament debate, though the outcome of the senate hearing is still up in the air.

I can’t tell you how happy this makes me. Whilst I’m grateful for the Australian government giving me a near endless stream of blog fodder over the years I’ll be far more happy to see this changed than have to write another article telling you why Australia needs it. At the moment everything is looking pretty good for the R18+ rating to make it through the lower house without too many troubles. What’s still something of mystery is how the bill will go in the Senate as whilst there are some supporters like Senator Kate Lundy and Senator Stephen Conroy I couldn’t dredge up anyone else who’s gone on record supporting it.

Theoretically there’s not much to oppose in the bill, especially with the final draft of the guidelines being fairly in line with what we have currently and just including the provision for content that’s already acceptable in other mediums. How this is viewed by the senators though remains to be seen but should it get through we could see many of the previously banned titles making their way onto our shelves before the end of the year. Whilst I’m sure none of them will enjoy the retail success that they would have if they weren’t blocked in the first place it’s better than getting nothing from Australia at all.

It’s been a long time coming but we’re finally on the cusp of seeing real change that was heavily influenced by the grass roots efforts of the gaming community in Australia. I’m so glad I count myself amongst the teaming masses of people who put their support behind getting a R18+ rating into reality and this shows that given enough time and effort we really can effect change in Australia. The fight’s not over yet, but it’s a hell of a lot closer to being won than it is to being lost.

When the Common Factor is You.

January 25th, 2012 No comments

I feel that a lot of problems in our society stem from externalizing blame rather than taking it on internally. I’m not about to get on my high horse here and start pointing fingers at other people, I’ve spent more time than I’d like to admit blaming others for problems I created, but I do see a worrying trend of people looking for something to blame rather than taking a long hard look at themselves. I think I know the reason why, at least for myself.

Internalizing blame is a mentally exhausting activity, especially when you have an easy reason to blame others. Indeed I spent far too much of my University project year blaming others for my failings, not recognizing that I should have just manned the fuck up and fixed my shit. It took me a good couple years to come to terms with the fact that in all the interactions where failure was identified it was just as easy to ascribe the fault with myself as it was with anyone else. Actually doing so at the time was an impossibility, thanks to my over-inflated ego that was still recovering from its teenage know-it-all years.

YouTube Preview Image

That video hits the nail on the head. Many people ascribe the blame for failed relationships to the person on the other side. It’s easy to understand why as well, that person has hurt you in some way and now that they’re not part of your life putting the fault on them makes it easier to deal with. Taking a step back and looking at yourself however, whilst immensely difficult, can be quite revealing. This isn’t to say that the other side is always blameless, but a relationship is always a 2 way street.

Since realizing this my life has become inexorably more complicated, seeing me getting stuck in analytical cycles constantly, but I do feel a lot more comfortable in accepting and dealing out blame where its appropriate. Sure I’m not immune to externalizing blame entirely but I do feel I’m getting better, enough so that a repeat of the University incident should hopefully never happen again.

Our RepRap Longboat Prusa and The State of DIY 3D Printing.

January 24th, 2012 2 comments

My followers on Twitter will be aware that for the past few weeks I’ve been working with a couple other guys on building a 3D printer, namely a RepRap Longboat Prusa. I’ve been interested in them for a long time, mostly because they tickle my sci-fi nerd side just right, but apart from endlessly fantasizing about them I hadn’t really pursued them further. One of my long time gamer friends asked me late last year if I’d be interested in going halves for a kit. After I mentioned the idea to another friend he jumped on board as well and the 3 of us waited eagerly for the kit to arrive.

In total we’ve spent about 48 man hours total over 3 days putting it together, getting the wiring done and then troubleshooting the software and interfaces. It’s been an eye opening experience, one that challenged my electronics knowledge like it hasn’t been in quite a few years, and the result is what you see below:

YouTube Preview Image

We decided not to attempt to print anything since at this point it was getting close to midnight and we didn’t want to keep the Make Hack Void space open any longer than we already had. But from seeing it do the dry run it appeared to be functioning correctly (it’s printing a small cup in the video) albeit a little stiff at some points. We think that’s due to 2 things, the first being that the large gear on the extruder platform is warped slightly and sometimes hits the mounting hardware near it. Secondly we were running the steppers at a low voltage to begin with so with a little more juice in them we’ll probably see them become more responsive. We’ve still yet to print anything with it but the next time we get together you can guarantee that will be pretty much all we’ll do after we’ve spent so long on getting it running.

What this project opened up my eyes to was that although there’s a torrent of information available there’s no simple guide to go from beginning to end. Primarily this is because the entire movement is completely open source and the multitude of iterations available means there’s near endless numbers of variations for you to choose from. Granted this is probably what a lot of the community revels in but it would be nice if there was some clear direction in going from kit to print, rather than the somewhat organized wiki that has all the information but not all in a clear and concise manner.

The software for driving the machines is no better. We started off using the recommended host software which is a Java app that for the most part seems to run well. At the moment though it appears to be bugged and is completely unable to interface with RepRap printers, something we only discovered after a couple hours of testing. RepSnapper on the other hand worked brilliantly the first time around and was the software used to initiate the dry run in the video above. You’ll be hard pressed to find any mention of that particular software in the documentation wiki however which is really frustrating, especially when the recommended software doesn’t work as advertised.

I guess what I’m getting at here is that whilst there’s a great community surrounding the whole RepRap movement there’s still a ways for it to go. Building your own RepRap from scratch, even from a kit, is not for the technically challenged and will require you to have above entry level knowledge of software, electronics and Google-fu. I won’t deny that overcoming all the challenges was part of the fun but there were many road blocks that could have been avoided with better documentation with overarching direction.

All that being said however it’s still incredible that we were able to do this when not too long along the idea of 3D printing was little more than a pipe dream. Hopefully as time goes on the RepRap wiki will mature and the process will be a little more pain free for other users ,something I’m going to contribute to with our build video (coming soon!).

Bastion: The Calamity Was a Hell of a Thing.

January 23rd, 2012 No comments

The number of quality, well polished games that independent developers have been releasing recently has been great for the games market. Gone are the days where the idea of making a game was constrained only to the big developer houses or specific platforms and today we have a thriving independent ecosystem to support these talented developers. One such game to come out of the indie scene is Bastion a game that’s received much praise and developed something of a cult following. I’m not sure why I avoided it at the time but after getting frustrated with the end-game situation in Star Wars: The Old Republic and on the recommendation from friends I gave Bastion the once over.

Bastion puts you in control of a character known solely as The Kid. You awaken in your bed to find the whole world around you has fallen to pieces and every move you make is narrated by a gravely, disembodied voice. You then make your way to the Bastion, a safe place that everyone in Caelondia (The Kid’s home ) agreed to head in times of danger. There he meets a stranger, later revealed to be named Rucks, who’s voice is the one that narrates your every move. Ruk then informs you of the terrible event that occured, The Calamity, and how they need to go about restoring the Bastion after it was damaged during the event. So begins your long journey as you seek out the items required to restore the Bastion and uncover the truth about the Calamity.

Visually Bastion is quite pleasing on the eyes with its heavily stylization, bright colour palette and cel shaded 3D models that blend seamlessly. This style is reminiscent of other isometric RPGs like Diablo which use visuals like this in order to make sure you don’t get bored. This works quite well as whilst I was initially frustrated with Bastion (more on that later) my second session saw me play it all the way to the end and not once did I feel that the environments I was playing through were repetitive. It just drives home the idea that cutting edge graphics aren’t a requirement for good story telling, especially if you do them right like Bastion has done.


Bastion incorporates many aspects of traditional RPGs whilst doing away with others in order to simplify the gaming experience. There are levels for your character, which you gain in the traditional way of killing enemies and allow to add additional buffs to your character, but there’s really no loot system to speak of. Instead you have an arsenal of melee weapons, ranged weapons and special abilities that are all interchangeable. The weapons are also upgradeable allowing you to make them far more powerful than they originally are. This means that it’s likely that no 2 play throughs will be the same and lends a decent amount of replayability past the initial encounter.

I believe this simplified system is what lead me to get frustrated with Bastion in the early stages of the game. Initially you’re limited to a rather small arsenal, only a few weapons for each slot. You do pick one up every second level or so but progression at the start feels a little slow as most of the weapons and upgrades don’t feel like they’re making any difference. Later on, when your choices are much greater, that initial feeling starts to slip away in favour of you becoming somewhat unstoppable, at least my character did. I didn’t make it anywhere near max level (I think I got to level 6) but my combination (all fully upgraded) of Cael Hammer, Scrap Musket and Hand Grenade meant I could dispatch waves of enemies with little trouble.

It becomes apparent very early on in the game that whilst the Calamity might have destroyed much of the world there are still some people left alive. After you find them they’ll join you in the bastion and they’ll give you some insight into the various mementos that you find scattered throughout the world. They also bring with them challenges that you can complete for extra experience and cash to spend on upgrades whilst fleshing out the background story of one of the characters. The challenges are gauntlet style affairs and are a nice aside from the dungeon crawling that makes up the majority of Bastion.

One of Bastion’s most notable features though is the near constant narration. It serves two purposes, the first being to give a running commentary what’s currently going on. This gives you a great sense of the character’s motivations, feelings and gives the story solid direction in what would otherwise be a rather dull dungeon crawler. Secondly having a constant voice over allows Bastion to develop an extremely rich lore without having to result to giant walls of text that are common in RPGs. Whilst I can understand the reason why this is rare (voice acting is a time consuming and costly activity) Bastion’s use of it is quite unique. Plus Logan Cunningham’s dulcet tones aren’t hard on the ears either.

Where Bastion does fall down however is in the final throws of the story. Right up until the last 30 mins of the game your entire experience has been completely guided, your decisions ultimately made for you with a little freedom in what order things are built or upgraded. This is a fine way to tell a story, in fact this is how the vast majority of games play out. However right at the end you’re presented with two very distinct options to choose from on two different occasions. For a game that’s been choice agnostic up until this point adding in a choice at this part seems to only be for the sake of adding in some replayability. As a mechanic, I find that particularly cheap.

Warning, spoilers below:

Worse the first of the choices, whether or not to save Zulf, doesn’t seem to have any meaningful impact on the rest of the game. Granted the choice comes so late in the game that there’s not much it could really affect but that just makes its inclusion even worse. I’ll admit that the scene itself felt quite powerful, the notion of a selfless hero willing to put aside all the hurt someone has caused in order to save them, but the fact that your decision only mattered for then and there makes the choice arbitrary. The same goes for the ending as it basically boils down to the same problem that Deus Ex: Human Revolution suffered from. Instead of choices you make doing the game leading to an ultimate conclusion, you’re instead presented with a blunt “Hey choose your own ending!” screen. Though unlike Deus Ex you can’t just reload and see the other ending, meaning the intent of that mechanic is simply to encourage a second play through. Whilst it didn’t ruin Bastion for me it did sour the idea of going for a second playthrough as there doesn’t really seem to be a point to it.

Spoilers over.

Bastion is yet another shining example of games being used as a great story telling medium. The characters are well developed, the story thoroughly engrossing and the game play is rock solid, carrying all these elements along beautifully. Whilst I might disagree with some of the arbitrary moments that the game presents you with that doesn’t discount the rest of the game. Bastion then represents another magnificent independent release that shows just how far indepedent games developers have come, and how far they’ll be able to go.

Rating: 8.5/10

Bastion is available on PC and Xbox360 right now for $14.99 and 1200 Microsoft Points respectively. Game was played entirely on the PC on the regular difficulty with around 6 hours played time and 29% of the achievements unlocked. 

Gamification Doesn’t Always Make Sense.

January 20th, 2012 2 comments

When I first started hearing about achievement systems I honestly thought they were a total waste of time. I usually play games just for the sake of playing them, not because I want to have some kind of meta-performance tracker that I can show off to my friends. I did start to warm to them when the encouraged novel or interesting kinds of game play like many of the achievements in Team Fortress 2 did. It wasn’t long after achievements caught on that the whole gamification movement took hold and all new start ups started adding game features to their products.

Now I wasn’t immune to this either. When I was working on Lobaco I thought it would be a great idea to add in some achievements in order to encourage people to participate in local discussions. Indeed I was going to take it a couple steps further and have things like local leader boards and titles based on your overall score in a particular area. All of these things were done in the name of increasing user engagement as many studies and successful start ups have shown that game like elements keep people coming back. Of course everyone then saw it as the panacea to their ills and game elements started appearing in places that they really shouldn’t.

I came across one such example this morning in my usual troll for blog fodder. Microsoft, for some strange reason, decided to code up an achievement system for Visual Studio, their flagship development environment. It looks to be an extension to Visual Studio itself and currently only works if you’re coding with Visual Basic or C# (arguably the most common languages though). There’s dozens of achievements already in there and even a leaderboard of the top 15 people who’ve gained the most achievements. Taken at face value I can see this being a good thing by encouraging good programming habits through achievements.

Microsoft’s implementation is anything but that.

Many of the achievements are either pointless, inane or actively encourage bad coding habits. 50 projects in a solution? A class that has every kind of scope in it? I can foresee situations where these things might happen (but they still shouldn’t) and it begs the question as to why these were added in. The flip side of this is people creating one shot projects in order to get these achievements (which everyone on the leaderboard has done) which makes the achievements even more meaningless. Indeed the whole idea just seems like a poorly thought out attempt at getting into the gamification scene, one that will be rightly ignored by most proper developers.

Just like in Lobaco where adding in game elements didn’t make complete sense (at least not at the great expense of other features, which it did) there are many times where the gamification of something just plain won’t work. If the core of your idea is based around a game idea then it probably makes sense to include achievements. If it does not then realistically you shouldn’t be adding them in until you’ve done everything else possible to deliver a good product/service to your end users. Attempting to keep people interested with cheap tricks like gamification won’t work if the underlying product has no redeeming value, nor if the core use of the product isn’t a game mechanic itself. The sooner people realise this the better as the spread of crappy, tacked on game mechanics is really not doing anyone any favours.

SOPA Protests: Dunning-Kruger in Full Effect.

January 19th, 2012 No comments

It’s not often that I encounter an idea that fundamentally shifts my thinking or view of the world but I came across one not too long ago: the Dunning-Kruger effect. The essence of the idea is that people below a certain level of understanding in something tend to over-estimate how well they understand it and those who are well versed in something tend to underestimate how well they understand it. In short, dumb people are too dumb to know that they’re dumb. That one idea fundamentally changed the way I viewed the world and not for the negative. More I understood where to draw the line on certain issues and gained a whole swath of insight into the reasons why people do certain things that make no sense to me.

Since late yesterday many websites have been going dark to protest the SOPA/PIPA bills that have managed to resurrect themselves since my post on it a couple days ago. I personally haven’t done anything  because I know the vast majority of my readers are already informed on the matter and I’m not one to engage in me-too like behaviour just for the sake of it (just like LifeHacker who’ve copped some flak over it). However whilst the protests are proving to be a rather effective means of getting attention of this issue (it got air play here in Australia) I get the feeling that a lot of them, especially Wikipedia’s one, are running up against the Dunning-Kruger effect.

What proof do I have of this? The existence of Twitter accounts like this one showcasing those who don’t understand why Wikipedia is down. Forgetting for the moment that the Wikipedia blackout page explains exactly why this is happening and that it’s still available via their mobile site or Google cache it seems that the second something changes for these people they’re are simply unable to understand what has happened. It’s a known phenomena for us IT people: change the way something is done and most users won’t be able to figure out how to work around it. They are simply lacking the required level of knowledge to understand that they don’t have enough knowledge to approach the problem rationally, and react to it with vulgarities and mindless commentary.

For these people then the protests that Wikipedia et. al. are going through are thus meaningless for them as should they lack the required level of knowledge to understand why an online resource has gone away it’s unlikely they’d grasp the fundamental reasons of why SOPA is a bad thing. To them Wikipedia going away would simply be a loss of a valuable tool without reason (hence the reactions) or they’d wrongly attribute the blame somewhere else. They don’t understand that there is something they can do to prevent such things happening in the future, both for working around the blackout and for preventing such things happening again.

Does this mean that these shouldn’t have engaged in these protests? Far from it. I’d argue, based on completely anecdotal evidence, that the vast majority of people will be able to see the reasons why Wikipedia is gone and will probably just wait it out and not do much more. However there are those rational thinkers who were not privy to the evils of SOPA and PIPA prior to these sites going dark and they will  more than likely join the cause afterwards. We’re already well past critical mass here so any more supporters simply adds additional momentum and hopefully that will be enough to kill these ridiculous bills before they go any further.

The Business Benefits of the National Broadband Network.

January 18th, 2012 No comments

There’s little doubt in my mind that the National Broadband Network will be a major benefit to Australia, way past the investment we’re making in it. It’s one of those rare pieces of legislation that will almost certainly outlive the government that started it and the Labor government should be commended for that. Indeed something like the National Broadband Network is almost a necessity if Australia wants to keep pace with the rest of the world in a technological sense as otherwise we’d be stuck on aging copper infrastructure that really doesn’t have any legs left in it. Still whilst anyone in the IT or related sectors would agree that the NBN will be good for business it’s not entirely clear what those benefits will be.

News.com.au ran a story this morning that pointed to research showing only 30% of Australian businesses had a “medium to high” understanding of the benefits available to them through the NBN. Making a few assumptions here I’m guessing the survey didn’t ask actual questions to gauge their true understanding so it’s likely that that number is actually a lot lower than the survey lets on. I’ll admit that for a non-technical person, who was likely the one answering the survey, the benefits of ubiquitous high speed Internet for your business are not entirely clear especially when the Internet they have now is probably doing them well enough.

The businesses geared to make the most of the NBN are ones with multiple offices spread throughout Australia. Right now getting a good inter-office connection, whether a full WAN or just some trickery using VPN tunnels and a regular ADSL, is either an expensive or complicated affair. The NBN will provide high speed interconnects at prices that many businesses will be able to afford. This means you’ll be able to get almost 100MB connections between offices giving you LAN like speeds between disparate offices. It might not sound like much but even small government agencies currently struggle with this (I’ve worked for more than one) and the boost in productivity from better connections between regional offices is very noticeable. This would also extend to remote workers as well, since it’s highly likely that they’ll have NBN access as well.

Having a large connection also enables businesses to move services out of expensive hosted data centres and onto their own premises. Right now it’s nigh on impossible to host client facing services internally unless you want to shell out a lot of money for the business type Internet plans. The NBN will bring data centre level speeds to almost every home and place of business in Australia enabling current businesses the opportunity to migrate inwards, saving on rental and administration costs. Sure the facilities they have might not be as good as what they can get elsewhere but the cost savings of not using a co-located service (believe me, they’re not cheap) would be more than worth it.

There’s also a host of services that are currently infeasible to operate, due to their high bandwidth use, that would become feasible thanks to the NBN. Such services won’t be available immediately but as the NBN reaches a threshold of active users then we can expect either local innovators to create them or for current Internet giants to localize their services for Australia. Predominately I see this taking the form of cloud based services which are accessible from Australia but have yet to have local nodes due to the lack of supporting infrastructure. This would also help cloud providers crack into that ever elusive Australian government sector which has remained resistant due to the restrictions placed on where their data can be stored.

The NBN will also bring about many other ancillary benefits due to the higher speed and ubiquitous access that business will be able to take advantage of. Indeed the flow on effects of a fully fibre communications network will have benefits that will flow on for decades for both businesses and consumers alike. Realistically this list is just the tip of the iceberg as over time there will be numerous services that become available in order to take advantage of our new capabilities. I personally can’t wait to get onto it, enough so that moving to one of the fibre enabled locations is tempting, albeit not tempting enough to make me move to Tasmania.

SOPA, PIPA and the Insanity of the US Copyright System.

January 17th, 2012 No comments

For over 100 years rights holders have resisted any changes to their business models brought about by changes in technology. From a business perspective its hard to blame them, I mean who wouldn’t do everything in their power to ensure you could keep making money, but history has shown that no matter how hard they fight it they will eventually lose out. Realistically the world has moved on and instead of attempting to keep the status quo rights holders should be looking for ways to exploit these new technologies to their advantage, not ignore them or try to legislate them away. Indeed if other industries followed suit you’d have laws preventing you from developing automated transport to save the buggy whip industry.

The copyright system that the USA employs is a great example of where legislation can go too far at the request of an industry failing to embrace change. At its inception the copyrights were much like patents: time limited exclusivity deals that enabled a creator to profit from their endeavours for a set period of time after which they would enter the public domain. This meant that as time went on there would be an ever growing collection of public knowledge that would benefit everyone and not just those who held the patent. However unlike the patent system copyrights in the USA have seen massive reform in the past, enough so that works that would have come into the public domain will probably never do so.

Thankfully, whilst the copyright system might be the product of an arms race between innovators and rights holders, that hasn’t stop innovation in the areas where the two meet. Most of this can be traced back to provisions made in the Digital Millennium Copyright Act (DMCA) that granted safe harbour to any site that relied on user generated content. In essence it put the burden of work on the rights holders themselves, requiring them to notify a site about infringing works. The site was then fully protected from legal action should they comply with the request, even if they restore the offending material after receiving a counter claim from the alleged offender. Many sites rely on this safe harbour in order to continue running on the web because the reverse, them policing copyright themselves, is both technically challenging and resource intensive.

However just like all the technologies and provisions that have been made for the rights holder industry previously those safe harbour provisions, which enabled many of the world’s top websites to flourish, are seen as a threat to their business models. Rights holders associations have said that the DMCA as it stands right now is too lenient and have lobbied for changes that would better support their business. This has come in the form of 2 recent bills that have dropped in both houses: the PROTECT IP Act (PIPA) in the senate and the Stop Online Piracy Act (SOPA) in the house of reps. Both of these bills have attracted heavy criticism from the technology and investment sectors and it’s easy to see why.

At their core the bills are essentially the same. Both of them look to strengthen the powers that rights holders have in pursuing copyright infringers whilst at the same time weakening the safe harbour provisions that were created under the DMCA. Additionally many of the mechanisms described in the bill are at odds with the way that the Internet is designed to work, breaking many of the ideals that were set out in order to ensure ubiquitous access. There’s also many civil liberty issues at stake here and whilst bill supporters have assured everyone that they don’t impact on them in any way the wording of the bill is vague enough to support both interpretations.

The main issue I and many others take with these bills is the shifting of the burden of proof (and thus responsibility) away from the rights holders and onto the web site owners. The changes SOPA advocates mean that web site administrators will be responsible for identifying copyrighted material and then removing it from their website, lest they fall prey to having their domain seized. Whilst this more than likely won’t be the downfall of the sites that made their fame inside the safe harbours of the DMCA it would have a chilling effect on start-ups looking to innovate in an area that would have anything to do with a rights holder group. Indeed it would be the sites that have limited resources that would be hit the hardest as patrolling for copyright infringement isn’t a fully automated process yet and the burden could be enough to drive them under.

It’s also evident that SOPA was put together rather haphazardly when some of the most known copyrights infringement sites, like The Pirate Bay, are actually immune to it. Indeed many sites that rights holders complain about aren’t covered by SOPA (just by the current laws which, from what I can tell, means they’re not going anywhere) and thus the bill will have little impact on their activities.

You might be wondering why I, an Australian who’s only ever been to the USA once, would care about something like SOPA. Disregarding for the moment the principle argument and the fact that I don’t want to see the USA technology sector die (I could justify my point easily with either) the unfortunate reality is that Australia has a rather liberal free trade agreement with the USA. What this means is that not only do we trade with them free of tariffs and duties but we’re also obliged to comply with their laws which affect trade. SOPA is one such bill and should it pass it’s highly likely that we’d be compelled to either implement a similar law ourselves or simply enforce theirs. Don’t think that would happen? A leaked letter from the American ambassador to Spain warned them that not passing a SOPA like bill would see them put on a trade blacklist effectively ending trade between the two countries.  This is just another reason as to why everyone, not just Americans, should oppose SOPA in its current form.

The worst part of all of this is the potential for my site, the one I’ve been blogging on for over 3 years, to come under fire. I link to a whole bunch of different places and simply doing so could open me up to domain seizure, even if it wasn’t me putting the link there. I already have limited time to spend on here and the additional task of playing copyright police would surely have an impact on how often I could post and comment. I don’t want to stop writing and I don’t want people to stop commenting but SOPA has the very real potential to make both those activities untenable.

So what can be done about SOPA and its potential chilling effects on our Internet ecosystem? For starters if you’re an American citizen write your representative and tell them to oppose SOPA. If you’re not then the best you can do is help to raise awareness of this issue, as whilst it’s a big issue in the tech circles, even some of the most versed political pundits were unaware of SOPA’s existence until recently. Past that we just have to hope we’ve made enough of an impression on the USA congress critters so that the bill doesn’t pass, at least in its current form. The hard work of many people has made this a very public issue, but only continued pressure will make it so it won’t damage the Internet and the industries it now supports.

EDIT: It appears that the strong opposition has caused the American congress to shelve SOPA indefinitely. Count that as a win for sanity.

Star Wars The Old Republic: An Engrossing, Well Polished MMORPG.

January 16th, 2012 No comments

I’ve played my fair share of Star Wars games over the years. I can remember playing one on my trusty Nintendo Entertainment System which was just your basic platformer but was still enough to keep me captivated way back then (I was 6 at the time). More recently I indulged in the Jedi Knight Academy series of games which, to their credit, were actually quite fun and had a half decent story about them. I did not however get into Star Wars Galaxies, having heard how atrocious it was. Star Wars: The Old Republic however caught my attention from the get go mostly because BioWare was going to be the one developing it. I’ve always enjoyed their RPGs so it follows that their MMORPGs should be no different. Thus I pre-ordered my collector’s edition from Amazon months ago and I’ve been playing it ever since.

SW:TOR puts you 300 years after the events that occurred in the single player game Knights of the Old Republic which is still some 3,500 years prior to the events that take place in the original Star Wars movies. The Sith have returned in full force, retaking their old home of Korriban and re-establishing their Sith order. You then get to decide which faction to play for, The Republic or The Empire, and your choice will drastically change the story that unfolds before you. For reference I was a Jedi Knight base class and choose the Guardian specialization, putting me as a tank/dps. Your choice of advanced class doesn’t appear to influence the story however, just the archetype role you’ll fill.

Character customization is definitely a step above what I’m normally used to seeing in a MMORPG but is still somewhat lower than what you usually find in traditional RPGs. Most of the choices are from pre-set options so whilst it’s unlikely that you’ll find 2 characters that are completely identical there’s a very good chance you’ll notice someone running around with your face at one point, leading to some rather awkward moments. Still there’s enough variation in both your base character model as well as armour types to ensure that you won’t feel like you’re playing in a clone army.

On first impression the graphics of SW:TOR are nothing to write home about, especially when compared to the stunning visuals of some recent RPGs. Still much like World of Warcraft the stylization that has been used throughout the game means that it doesn’t detract from the experience. Of course, as with any MMORPG, graphics usually have to be stepped down in order to cope with the potential for huge numbers of players to be on screen at any one time. Indeed I’ve experienced some slowdown in the more populated areas (<30 people) but for the most part the graphics are the right balance of pretty and performance.

All that being said however some of the environments that are set up within SW:TOR did trigger my sense of awe. The screenshot above was just the first such example of where I stopped in my tracks and just took in the world for a while. It really did make me feel like I was part of something much greater than myself, something where the scale was far beyond just what was being presented to me at the time. However it would all be just simple eye candy if it weren’t for the story that underpins your entire reason for existing in this vast universe.

Now for most traditional MMORPGs the idea of an over-arching story line usually only goes as far as one particular level bracket. I can remember this quite clearly from my time with World of Warcraft where each area would have its own unique story but the connections between them were either tenuous or non-existent. SW:TOR on the other hand has a series of class quests that are in essence the driver for you to go from one planet to another. They’re far from a simple advancement device though as there are many times when you’ll be whisked away from the known planets on your map to other locations, sometimes for hours at a time.

Indeed SW:TOR could very easily be played as a single player RPG for those who’d like another fix of Star Wars goodness but were turned off by the MMORPG title. Sure there’s no escaping the fact that there’s countless “Kill X enemies” or “Gather Y of Z item” kinds of mission in there but should you not be too concerned with levelling as fast as you can they can be, for the most part, skipped entirely. A good chunk of the missions have some kind of unique mechanic or are broken up by enough cut scenes to make them feel a lot less grindy than their counterparts in other MMORPGs. Indeed there were times when I was playing simply because the story was driving me to, not the urge to get to max level and start gearing my character. I can honestly say I’ve never had that in a MMORPG before.

Levelling is actually quite enjoyable and doesn’t feel like a barrier to the real meat of SW:TOR. Unlike most MMORPGs where getting max level takes months of herculean effort you can easily reach max level in around 3 to 4 days played if you put your mind to it. My trip to max level was decidedly more leisurely but even I was able to knock out a max level character in under a month of play. This again reinforces the idea that SW:TOR would in fact make a great single player game that you could play through and be done with afterwards. That is, of course, how they’ll hook you in but I’ll be damned if it isn’t true.

The space missions also serve as a nice break from the usual tedium of questing. They’re something of a point and click adventure with the camera running along a set path with you being free to move around inside it. Initially they’re a walk in the park, especially for experienced gamers, but as you progress there will be ones that will challenge you. Like most things though you’ll eventually overcome the challenge and you’ll have to wait until you pass a certain level before you get another challenging one, but they’re still refreshing if you’ve been questing endlessly for a couple hours.

Your space ship also functions as a melting pot for you and your companions as well as being your transport between questing areas. I think this is probably why the questing in SW:TOR felt so fluid as each planet has a specific level bracket and could be travelled to with very little hassle. It also meant there weren’t any strange transition areas like there are in other MMORPGs when the designers tried to meld say a vast desert with a dense jungle (think Desolace to Feralas in WoW). It’s also quite nice to have the external camp to interact with your companions as their story lines (and potential romances) are quite interesting in themselves.

The experience however is not exactly trouble free. Shown above are two common glitches that I would routinely encounter, the one on the left moreseo than the right. There are quite a few graphical glitches that crop up from time to time but thankfully none of them too severe and are usually temporary. The second one shown above is a more extreme (but hilarious) example of the camera angles for cut scenes going all whacky and sometimes glitching out you or your NPCs armour. Mostly it would be my cape being stuck in my torso, but there’s also been people missing, voice overs not playing and characters not moving their mouths when talking.

There’s also some issues with lag, but not the ones you’d think. Even though BioWare didn’t release SW:TOR in Australia because of lag concerns I routinely get sub 200ms pings to the server, better even than I got in World of Warcraft (before I started using a tunnel, though). However there were still a few occasions when the server and my client would get out of sync, sending my character into a flurry of stepping forward only to be slingshot back. This would continue for up to 30 seconds at a time making for some rather frustrating moments.

PVP is something of a mixed bag at the moment thanks to the end game version of it still being a work in progress. You can participate in PVP from level 10 and currently everyone is thrown into the same bracket together. Everyone’s stats are boosted up to the highest level participant however so you can be somewhat competitive even when you’re just starting out. There are 3 different scenarios (capture and hold, timed race to the end and, in essence, football) so there’s not a whole lot of variety and it does start to feel repetitive after an hour or so. Still you’ll receive credits, experience and tokens towards PVP gear for participating so it’s well worth doing them, even if PVP doesn’t interest you at all.

The end game PVP appears to be an attempt to copy the ideas that Warhammer: Age of Reckoning brought to the table with Realm vs Realm PVP. There’s one world called Illum that’s basically up for grabs for either side should they want to have it. You can capture it by holding objectives although it’s not entirely clear what you get for doing so. This would be great except that currently open world PVP doesn’t award valor (PVP rank points) and there doesn’t appear to be any kind of bonus for holding Illum. Thus the end game PVP is reduced to people sitting at the objectives long enough to complete their dailies and then leaving, usually not even attempting to engage each other. I won’t complain about the free loot but it does feel somewhat pointless as there’s no reason to be there than for the dailies.

Compared to other recent MMORPG launches Star Wars: The Old Republic really stands out as one where the developers did their homework and worked hard to deliver an experience that was on par with those that were currently on offer. Sure its not as complete or as polished as others are now but for a first release it’s actually quite phenomenal, easily beating the initial release experience I’ve had with nearly all other MMORPGs. There’s still a lot of things where they could improve but overall the current game is more than enough to cement their position as a solid contender and I can see myself continuing to play it for a good couple months after this review.

The question many people ask is though, will this take the crown as MMORPG king away from World of Warcraft? I don’t think it will, but not because of any fault with the game itself. All the other WoW killers out there were fundamentally flawed at launch, usually lacking content or sufficient polish. World of Warcraft is the opiate for the MMORPG masses and the only ones capable of taking it down are Blizzard themselves and indeed it looks like they will with Diablo III and the mysterious Project Titan. SW:TOR however is a strong contender to be second place to them, and not just the distant second that many have been before it.

Star Wars: The Old Republic managed to re-ignite that same sense of passion, wonder and fulfilment that I first felt all those years ago when I made my first tenuous steps into the world of MMORPGs. It really is a wonderful feeling going through a new world for the first time, especially one that’s as rich as SW:TOR. I can’t see myself getting as addicted as I did back in my MMORPG heydays but that’s probably just me getting older more than it is the game being any less addictive. For Star Wars fans, MMORPGers and RPG fans alike SW:TOR is definitely worth checking out, even if you ignore that whole online part.

Rating: 8.75/10

Star Wars: The Old Republic is available right on exclusively on PC for $62 which includes 1 month of game time. Game was played entirely on PC with around 5 days (120 hours) of total play time and reaching the level cap, 50.