A busy week for us both.

June 24, 2007

Sorry for the gap between posts, we have both been engrossed in our individual projects as well as talking about things we will be doing together. As all of you who do not live under rocks will know Desktop TD version 1.5 was released by Paul and it is finger lickin good. I have not been slacking either as Vector TD version 1.2 was released on Monday and ba-da-da-da-darrr you’re lovin it!

Work on the next game for Candystand is going well, the graphics are going to be provided by the guy who is responsible for the comic strip in the back of EDGE magazine, so it should look very sexy! When it is looking presentable I will do the usual YouTube teaser.

Over the weekend I went to the Goodwood Festival of Speed (thanks Jason for the ticket), an event which has been going on since 1936 in the South of England. The show celebrates all things speedy and is famed for it’s hill climb event. You can check out my Goodwood video on YouTube or the official festival site for more info.

Anyways, I hope the updates to our TD’s did not make your weeks too unproductive, and I will try and update you all again soon.


Every Cloud

June 13, 2007

In Pauls ‘Flash Piracy’ post he talked about the problem all Flash game developers have who wish to control the distribution of their works, the flash Pirate. A term which describes someone who takes a copy of your .swf file and usually re-hosts it on their own site with the intention of increasing traffic and/or deriving an income from ads surrounding the game. Every cloud has a silver lining, and here are a few tricks and snippets of code that you could use to make the Flash Pirates work for you.

Treat the copied game as a way to drive new traffic to your site. Paul mentioned that players of DTD will be sent to his domain when they try and submit a score, he does this using the getURL() with the full path to the submit script. If you do this make sure there is a clear link on your scoreboard to “Play again” but this time on your site. If you do not have a scoreboard, or do not want to rely on people submitting to be taken to your site you can re-direct them. Flash has a property called _url which returns the full path the .swf is loaded from. So if this _url variable does not contain your domain name then it is hosted elsewhere, you can then use getURL() to redirect back to your site. I would not do this when the game loads, I think it is best to let the player have a few games on the other host, then when it is gameOver do the redirect. This way the person who copies your game will see that it works fine on their site, if it redirects off-the-bat they won’t pirate it and you will have lost a stream of traffic from them.

Here is a sample block of code that will check to see if the .swf is on your site, and if it is not it will re-direct to your domain. You could put this in an if() statement to only do it when the player has finished their 2nd or 3rd game:

// We first make the URL upper case as people may be using “yourdomain.com” or “yourDomain.com”
domain = _root._url.toUpperCase();
// Check to see if the variable “domain” contains the string “YOURDOMAIN.COM”
if (domain.indexOf(“YOURDOMAIN.COM”) == -1) {
        // This .swf is NOT on your domain, send them to your domain.
getURL(“http://www.yourdomain.com”);
} else {
        // All is OK, do whatever you would do.
}

If you wanted to take this to the next level, instead of redirecting you could set a variable which you could use throughout your game to remove certain functionality. In the case of a TD game you could remove certain towers, limit the creep waves and say “This is a demo, go to <link to your domain> to play the full version”.

There are a couple of problems with all of the above. 1/ The dedicated and skilled Pirate will decompile your game to remove this code. Fortunately in my experience 99.9% of people who copy a .swf just re-host it as-is with no modifications. You could use a swf encryptor to make their job harder, but as with all software it it only a matter of time before this too is circumvented. 2/ There is a switch in the flash embed code which prevents the getURL() from working, myspace.com adds this when you try and embed a .swf. A workaround would to simply have the game display the URL it is trying to redirect to in a text field that has the “selectable” box ticked and instructions so the user can copy+paste the link “if you are not redirected in 10 seconds”

Of course this is only really an issue for those who are relying on on-site advertising for revenue (adSense / text links). If your game has built in means of raising revenue then you will want to encourage the distribution which you could do be providing a the embed code for a version with no domain checking or posting it on sites like New Grounds. I have encouraged the Piracy of Flash Element TD for these very reasons, and yesterday 50,148 of the games 121,161 loads took place on other peoples servers which accounts for over 40% of the revenue from in-game advertising. Yes if they had all taken place on my site there would be increased revenue from the ads outside the game, but I do not think my traffic would be as high if it was not for 4,917 hosts that currently have a copy running on their sites, redirecting to me when a score is submitted.

So like it or not, Flash Piracy is something that will happen to a game, you can treat it as a problem or a solution, but either way you can make it work for, and not against you.


Flash Piracy

June 12, 2007

One of the problems of delivering copy protected content via Flash is that it is a semi-open platform and has no built-in copy protection mechanism. Flash game files (or SWFs) are just like any other file that can be copied from machine to machine. In fact when you play a flash game your PC has already downloaded the SWF file to your hard drive and is running it from there. Copying the SWF file back onto a different web server and adding it to another website is straight forward. 99% of the websites that have Desktop TD simply took a copy of the SWF file and rehosted it on their own site without asking permission. It’s technically theft but is tolerated in the flash community as a form of advertising for the developer, especially if the developer wants to promote their flash portal website. This process has worked very well for DTD due to the fact that the game redirect players back to my site when the game ends and they then tend to stay there. Most games are a little more polite and do not redirect, so maybe they are missing a trick there!

There are various things that can be done in code to lock the compiled game (or SWF) to your own domain but it is relatively straight forward to use a decompiler to turn your compiled game back into source code and the unscrupulous can simply remove any locking code and recompile. However software that encrypts the SWF file can be effective at stopping decompilers. DTD used such protection from version 1.21 onwards but the lack of protection for the earlier versions has turned out to be a problem as I will discuss below. Another problem is ‘hotlinking’ where a site is linking directly to the SWF file on your own server thereby using your bandwidth instead of theirs. Serving the SWF file dynamically and authorizing it via keys and the like is a good response to hotlinking. The multiplayer version of DTD will be domain locked and will use such a technology to ensure that it remains there!

Unfortunately both Desktop TD and Dave’s Element TD have been victim of a more serious type of flash piracy, reskinning. Reskinning is where the game is decompiled and the graphics and/or sound replaced with different versions. The game is then distributed as someone else’s work. A real slap in the face to the original developer I can tell you. Element TD was stolen by shockarcade.com (compare with the original Element TD). And in the last week Desktop TD has been stolen by onlinegamesquad.com (compare with original Desktop TD). Admittedly they have put some effort into the DTD reskin but it doesn’t have a single feature in it that wasn’t already in the code they pinched from DTD. If anyone knows a good way to deal with this type of piracy please get in touch!

Piracy and hacking prevention are now taking up a significant portion of my development time at the moment and I am learning as I go. It would be easy to blame Flash for these problems but they are really caused by success and human nature. I bet even Valve’s Steam protection gets hacked occasionally!


VectorTD is unleashed!

June 11, 2007

VectorTD, the 3rd in the series of TD games created by myself is now live on candystand.com. It has been almost 2 months in the making, which for me is quite a long time to spend on any one game. But I think this extra time has been well spent and shows in the games look and game-play. The feedback I have had on the screen-shots and videos I posted of the games work in progress have been very positive and so has an early review by jayisgames.com.

The aim of the game is simple, and pretty much the same as all TD’s, prevent the enemy from crossing your map. In all my games the map has been a path that the enemy follow and which you can not construct towers on, instead you build your defences alongside the path. Towers cost money which you get from kills and also it is kept in a bank so there is interest. The location you select for each tower is as important as the type of tower and if you build many or upgrade a few.

Features which I am most proud of and are also new to vectorTD include:

  • Multiple maps (of which there are 8 to pick from, ranging from easy to very hard, there is a leader-board for each map)
  • 11 towers (past games have had 5 and 7)
  • Booster towers which buff the range/damage of other towers.
  • Having the amount of damage towers do effected by the type of target they are hitting.
  • To earn the bonus point you get every 5 waves you must destroy the bonus enemy.
  • Most towers can be told to acquire targets based on their proximity or remaining health.

There are a couple of first for candystand.com as well, this is one of the first game to have multiple score boards (one for each map) and, thanks to overwhelming demand, it is the first time they have released a game on a Monday.

I was asked on the forum do you have any regrets over vector”… “? Something you wish you had added before hand, or wanted to but never got around to it?” The early versions had a few things that I cut to make the game easier to pickup and play. For example each tower had a power requirement, and when you did not have enough power the towers you built would not work. There were power towers which increased your energy reserve. This was dropped as it was always a pain to explain to new players. I did think about a story mode, but with 8 maps to play already this seemed a bit redundant, but look out in future games for story modes. Maybe different music tracks would be good, but that would make the game quite a bit slower to load. Overall I am very happy with the end result.

So what’s next? Well there is no rest for the wicked… I am currently working on another candystand.com game and this time it is not a TD! See I can make other types of games too ;) And after that it is full steam ahead with Paul and our joint projects!

So what are you waiting for? Go play it! and keep an eye on the official vectorTD site and the NC forum for news, hints & tips.


Flash Element is about to hit 40

June 7, 2007

40 million loads that is! I was checkin out my mochibot stats and Flash Element TD is about to hit the big four zero. With 160,000+ loads a day it will not be long now.

40,000,000. That’s like everyone in California building some towers, or the combined population of New York, Washington, Ohio, Colorado, AND Kentucky wondering if they should go for fire or earth upgrades. Or if you are a Brit like me that is 79% of the UK population! Pretty amazing. [data from here]

Interestingly (well for me as I love stats) the majority of traffic is not people playing it on my site. I worked out that only 27.2% of loads take place on my domain, leaving a whopping 72.8% of plays taking place on other peoples sites.

In the past this sort of “Flash Piracy” would have been a big worry to game developers like myself who rely on in-site advertising such as Googles AdSense, but with in-game advertising provided by mochiads it is possible to keep earning revenue even when the game is hosted elsewhere. Without this I would be trying my hardest to prevent people from re-hosting the game, but now I can let it run free which “feels” better to me, the whole point of making a game is to have people playing it right?!

Thanks to all who played and are still playing, Quantast tells me that 44% of players are “regulars” and 2% are “addicted” maybe we need to start a program for DTD and ELE TD addicts.

Hello, my name is Dave and I enjoy killing sheep.


DTD Update

June 7, 2007

Work on version 1.5 continues… broke out my marker pen and the scanner to produce some more leet artwork for the new towers:

New Ink Tower Ink / Blob Tower

Boost Tower Boost Tower

Finally plumbed in the Boost tower so it now err boosts. My request for translations on the HDG forum has gotten a good response – someone even posted Chinese. ApparentlyChinese Creep is ‘Creep’… but it looks more like someone bending down to insert a dvd into a dvd player to me! The problem with asking for translations is that I actually have to put the text into the game. Meh. French and Spanish have been completed after a marathon copy & paste session.

This is all a big experiment (and not a small amount of effort) to see whether an independant game can generate significant extra plays when translated into other major languages. I’m hoping yes, or oui, or ja, or hai.

On a side note the site’s eCPM has doubled since the start of the week. Result.


First things first.

June 6, 2007

Both Paul and I have things in progress we need to complete before we can stat collaborating on projects. Paul is working on some cool updates for DTD and I have to complete VectorTD for Wrigleys, but once we have done these 2 things it’s full steam ahead!

Our goal is to create an awesome casual gaming site with a social networking twist which we will use to host all our future games as well as some we have made already. The first step is selecting a name for this site, which is easy compared to finding a domain name which is not taken by a scraper site or similar!

It has been in the last 4 or 5 years that buying domain names has become a pain in the ass, everything you type in has already gone (.com mostly) The annoying thing is that these domains are been purchased in bulk by companies who’s only intention is to slap on a generic page with ads and leave it running for 2-5 years. Paul told me that these companies buy all expired domains on a trial basis, if they find they have reasonable traffic they buy them for a discounted price, if they do not they let them expire at no cost. So I think the people who sell domain names are to blame, and there should be laws preventing the bulk sale of domain names.

Rant over, so the only way to get a reasonably relevant .com name which is short and does not contain “-” or numbers is to make up a new word. My friend Avi did this with his site plime.com a word made up by combining plum and lime. Sites like digg.com and kongregate.com have miss-spelt words to secure a name on the web. So maybe this is the way we will be forced to go when it comes to naming our site.

Paul came over to my house a few days ago and we were chucking around words like “hive” and “collective”. We need something that means gaming, community, group and casual, but we are still stuck. Any suggestions welcome, please post your list of possible names as a comment :)


I quit!

June 4, 2007

Following the success of Desktop TD and Dave’s promise, nay blood oath, that we can make a living from making games, I have decided to quit my job. I handed in my notice on Monday and they decided to let me go there and then! Fair nuff.

I am currently working on the latest version of DTD but once that is complete it will be full steam ahead with Novel Concepts. We have a lot of ideas, plans & schemes and first up is too find a good domain name to hang them all off…