To the Funcom game design team

Firstly I would like to compliment you on bringing the first and only truly decent Sci-fi or futuristic MMORPG to the scene. Anyone who has ever played Anarchy Online knows exactly the level of detail this game has, even though its an old title now, it is still the most involved and complex MMORPG ever to be released.

Its kind of sad, that when gamers think MMORPG, they’re already thinking about World of Warcraft, or all the other games trying to be WoW (EQ,EQ2,WAR,Age of Conan, Age of Camelot, LOTR, etc). The actual MMORPG genre can encompass ANYTHING. Funcom was the first company to break the mold and bring us a futuristic MMORPG.

Anarchy Online starts off really interesting. You know you’re involved in a war, the sides of the conflict are explained, and you’re presented with a moral dilemma, either fight for freedom, or fight to maintain control and power. Its easy to tell, the game designers put a lot of effort into the initial game experience, but due to the scope of the game, it was impossible for them to keep up the same level of quality on such a grand scale.

Once on RK, the game does remain playable till around level 50-60. After this, you’ve pretty much seen the whole of the planet, and the gameplay turns into the endless grind problem that ALL MMORPGs face. Still in my experience WoW starts off feeling like a grind, right from level 1. At least AO only starts feeling grindy later. I guess this is because in WoW you start off questing, and don’t stop questing till you’re level 70, when you raid and do instances. In AO, you alternate between questing and instances. From subway to quest running to TOTW, back to questing. Another feature of AO which I like is that experience is not shared when you form teams, you get the same experience in a team or out of a team, so you have motivation to team for quests and instances. WoW and the clones despite what you might think actually discourage teaming because players quickly learn they earn 1/4 of the experience. MMOs are supposed to be social games.

After 60, its in your best interests to buy the SL and AI expansions, then you can continue getting the max enjoyment out of the game till around level 200, and this comes quicker than you might think! Especially in the SL region where sometimes killing 4 mobs gives you a ding. After level 200, the game again turns into that endless grind cycle.

What I really enjoyed about AO, is that its not a game for idiots. You have to think a bit harder than in other MMOs. Most items you want to equip won’t just slide on, twinking is hardcore, and the game has built in calc scripts to help you out with planning – yes it involves some maths. The game really eases you into twinking. In WoW you don’t twink, if you’re the right level or class, you can equip that item.

AO has lots of good futuristic game elements, like automatic weapons, personal space ship, player shops, implants. etc. Like I said before for a sci-fi experience no other game comes close.

But towards the end of the game planning you can see the development team heading off in a sidewards direction and starting to copy WoW.

the whole SL region, is not futuristic at all, suddenly you’re in some kind of spirit world, fighting well – evil stuff. In RK, the original game had you fighting mechanical robots, etc. I won’t talk much about the AI expansion, but I will say most players only enjoyed it because of the extra stats and drops. So the whole game just went sideways. SL had this dark, evil kind of feel to it, and although you were still using machine guns and modern equipment, the enemies got all WoW-ish, that WoW fantasy theme all over again.

Anyways. So you developed the foundation for a great sci fi- that could easily have come out with a brilliant sequel based on the original. Instead, you guys for what ever reasoned decided to release AoC, and as the word goes – You’ve released a WoW clone.

You had a great community of players in AO, most of them really into sci fi type games, because like I said, its the only sci-fi mmorpg of its kind on the market, and then you just yank that away from all these players by essentially leaving the game to rot and age.

Sure it’s a good game, it was in its time, but games do age, and need to be revamped, thats why games sequels come out. You’ve been promising a graphics update for so long most players don’t believe it will happen, and no one even talks about it anymore. But you’ve missed the point, graphics update would have been good in 2004, whats now needed is a new sci-fi, some variety to the MMO world again.

I am baffled why you decided to release a WoW clone, copying so many game elements from WoW. Instead of reusing your original sci-fi game elements, and creating a new futuristic sci-fi game instead, I believe it would have been a success, instead now you have AoC which I hear is a “flop” and gamers are not really playing it.

A pitfall of using XML for data storage.

XML is one of the those useful technologies that was designed well, and has a solid foundation for the future. XML encompassing XML, XSD, XSL, XPath etc. XML is a relatively easy technology for a web application developer to get into because most web developers already know CSS and HTML principles, so XSL makes sense. Most web developers also know javascript and DOM, so XPath comes naturally. I must say I am a huge fan of XML and its many implementations.

Every .net developer should know a little bit about XML, because .net applications are configured using XML. .Net has a lot of built in support for working with XML, and serialization is extremely easy and efficient. If you’re a .net developer lately, you’ll find a use for some more advanced XML usage sooner or later.

With all this XML staring at you in the face, one day you’re going to wonder if you even need a database, or will XML file storage suffice, here are some things to watch out for.

  1. XML Storage and Retrieval is great for small operations and small file sizes, so its a great alternative to a database for simple solutions, just ensure at the start of your project, that there won’t be a phase 2 or 3, where suddenly the project grows out of proportion and then WHAM! You’re going to have to sit and figure out how to fix the mess of having large XML files. You might be safer just starting your projects using an express database, if you’re trying to cut down on licensing costs, and you can always scale it later to a full DB product, without rewriting huge sections of your code!
  2. You might think “I will cleverly break my file size down, so that I don’t have this problem”. Yes you can, and you will eventually have to, put in a lot of manual work to get the storage professional enough for Enterprise production usage. If you had gone the DB route, you would not even be thinking at this level.
  3. You’re going to have to write objects to insert/update/delete/select from your XML files. Including Serialization and De serializing from file. – SQL you’re going to write SP’s or SQL queries, and you’re going to need a DAL (Data Access Layer) But you can save yourself a lot of time if you use nHibernate for .net, its free and it works.
  4. You can’t store an unlimited amount of xml files in a directory. Sure technically you can, but you’re in for a few bad surprises.
    1. How will administrators be able to manually browse a directory containing 500k files?
    2. Your C# code surely has to itterate through the whole collection of xml files, are you really intending on having a foreach file in files loop? I wonder just how stable your app is going to be.
  5. Files Lock, yes they do, and working with XML means overcoming all that locking yourself. SQL is much better at handling transaction based access to data. You get all the benefits of decades of research that has gone into our modern RDBMS systems. If you’re going back to a file model, you better hope your app does not scale.
  6. Files Corrupt : The question is “When?” and the answer is “During Serialization when the server (a) suffers from a fatal error (b) total power loss. You might think the odds of this happening are slim, but in my personal experience it happens more often than you might think. You see if you’re using a database, you might essentially loose 1 insert statement but the rest of your database will remain intact, its also highly unlikely you’ll get 1/2 an insert statement, mostly it will fail at once. With XML and your .net serialization techniques, you’re saving an XML file all at once. This means that should anything go wrong, you’re going to corrupt that XML file (Yes the whole schema!) and that my friend is critical data loss. Prepare to (a) Either invest large amounts of time making your app robust enough to recover from corrupted xml schemas and expect some data loss (b) Deal with the full brunt of the problem when things go wrong, and critical data is lost.

You might think “Microsoft use XML, so why can’t I?”. You can, and I suggest you do, just use it for the right reasons, use it to store information that will not scale, like configuration files. Use it for data exchange, possibly logging, if you don’t mind the extra size. Just be very careful you don’t use it as data storage to cut out a database, and end up inducing huge extra costs, when you need to revert back to a conventional database, or write costly workarounds to the pitfalls of XML as a data storage.

    Why Windows Live Sky Drive Sucks

    Windows Live Sky Drive, is another perfect example of an almost useless tool, that could be so much better if only some more additional planning has gone into the product. Don’t hold your breath for Microsoft to actually “enhance this offering”

    1. Sky Drive Limits uploaded file sizes to 50MB
      This seems daft and I am not sure why Microsoft decided to do this. I guess mainly because it allows more clients to connect to the service at once at less cost. But this means you can’t just upload stuff, you gotta come up with all sorts of workarounds for files larger than 50MB
    2. Sky Drive uploads using standard HTTP
      This might be fine if you’re uploading 4-5 files, but since Microsoft actually bother to give you 25GB, hopefully you’re going to upload more… Good luck doing all of this “by hand”, file by file…. This is perhaps the make or break issue and what ultimately means Sky Drive Sucks.
    3. No FTP Access, and no mapping Sky Drive to a drive in Explorer.
      What were the developers thinking, why did they bother calling it SkyDrive, it should have been called, LiveSimpleStore or SkyFileHold, There is nothing about this product that resembles a drive in any way. Please grow brains guys! If you’re offering free online file storage, and 25Gb’s of it, at least make it useable so that people will actually use that free space.

    I really wish Microsoft would  retract SkyDrive from their product range, or enhance it, so that its actually usable.

    A few inventions we’re missing

    We’re living in the days of miracles and wonders and long distance calls (Paul Simon). But I wonder how much of our tax payers money goes into funding Space exploration and other seemingly worthless pursuits. I wonder why we’re not chanelling that energy into every day use common inventions that we could all use. Here is a list of my top 8 inventions I think we’re missing out on.

    1. A global text/speech speech/text translator, built into telephone network providers.
    Why is it still not possible to phone a server via a translator to speak to someone on the other end who only speaks German or Italian for example. Why is there no real time translation middlewear? If this is too higher grade, why not just a really good skype translator, one that actually works! If Google translate is our only hope, the whole business of unifying the planets differant languages has a long way to go.

    2. True tele commuting
    Its the year 2009 and the planets dying from polution, yet we’re all still expected to go to work, everyday, all the time. Until we begin to rethink our strategies, true deurbanisation will never happen. Instead we’re all forced to live in stressful cities where all the work is, and because of this, I guess we’re also forced to demand higher salaries. If we were to work remotely on a full time basis there would be a lot of savings for everyone, and the planet would be greener. We need to rethink management stategies, providing achievable tasks that can be measured. We already have broadband and programs like Skype allows for free conferencing. Why are we not yet breaking away from the traditional 80’s office concepts.

    3. Have express visa processing based on status.
    Not everyone visiting the UK, US, or EU States – wants to move there and take along their 11 wives. Creating a whole army of east facing turks! Yet we’re all treated the same. Make an application – get scrutinized. Why can’t this scrutiny be instant! based on other deciding factors and lets say pre-determined by co-operation of local government, bank and employer. Instead we’re all cattle, and get asked for chest x-rays at the airport!

    4. The automatic clothes ironer
    I know this might sound silly, but since we’ve invented the dishwasher, clothes washer, and car washer, can’t someone please invent the Clothes Ironer… damn it takes long, and we all hate ironing!

    5. A cordless iron
    If you can’t invent the iron, then could someone find a way to get rid of that infernal cord that keeps getting in the way!

    6. A weight loss product that actually works
    There must be 1 million products on the market that claim to help you loose weight, and NOT even 1 of them helps! So surely someone can come up with just 1.

    7. An electic/hydrogen car
    Yeah yeah yeah, its developed, tested and in use in California. Why can’t you buy one? Why is it only available in California?

    8. A system that will educate 3rd world countries
    Lets face it, we’ve been trying to educate 3rd world countries, well since we originally colonised them, and where has it got us? Close to absolutely bloody nowhere! The locals STILL want to have 1000’s of kids, still appear to want to spread the aids virus. Still cannot product enough food and water for general use. Still cannot over throw dictatorship. But every year we sent these locals millions of dollars worth of aid. Why do we do this? Why have they not already grasped the basics?

    Roboform and Google, what’s going on?

    Roboform is a utility that you use for quick and easy form filling, but its best feature is true one click login to any password protected website. If you’ve ever used Roboform, you’ll know why its so popular, because it works! A lot of people who use Roboform simply cannot do without it. I personally have a Roboform pro license, money well spent, until I switched to Chrome. I had a choice to go with Chrome or continue using FF with Roboform support, I decided I would switch to Chrome, simply because Chrome is really quick. But I really do miss the functionality of Roboform.

    Roboform don’t really have much to say about NOT supporting Chrome, except the following short statement.

    Browsers Currently Under Development

    Google Chrome

    We are nearing completion of early development. An alpha release will be ready by Q4 2009.

    There are also some fan sites that have sprung up like : a site completely dedicated to ranting about Roboform NOT supporting Chrome.

    Not sure exactly why Roboform have waited this long to begin development on Chrome support. This company under estimates the value of sharing news with its customers.

    My last point is… Google have released a great browser, but there are a few things I’ve noticed about it that I really don’t like…

    1. The download manager (if you can call it a download manager) – lets just call it – the way Google handles downloads

    2. No XML formatting in the browser, IE and FireFox actually both do this nicely.

    3. The Google password manager is perhaps the worst implementation of a password manager I have ever seen. They should have rather not included it at all, because unless its just me, a lot of the time it just doesn’t work.

    4. And this is where Roboform comes in – lack of good plugin support. But DAP doesn’t work, neither does Freedownload Manager, yes they say it does, but its quirky and unreliable.

    I am kind of in a dilemma at the moment with browsers. FireFox is exactly the browser I like, except Chrome. So right now I’m wondering if I should just compromise on start up speed and try to tweak Firefox, and just uninstall Chrome.

    Good, and free mind map application

    FreeMind is a premier free mind-mapping ( software written in Java. The recent development has hopefully turned it into high productivity tool. We are proud that the operation and navigation of FreeMind is faster than that of MindManager because of one-click “fold / unfold” and “follow link” operations.

    So you want to write a completely new metaphysics? Why don’t you use FreeMind? You have a tool at hand that remarkably resembles the tray slips of Robert Pirsig, described in his sequel to Zen and the Art of Motorcycle Maintenance called Lila. Do you want to refactor your essays in a similar way you would refactor software? Or do you want to keep personal knowledge base, which is easy to manage? Why don’t you try FreeMind? Do you want to prioritize, know where you are, where you’ve been and where you are heading, as Stephen Covey would advise you? Have you tried FreeMind to keep track of all the things that are needed for that?

    Will .exe’s become extinct?

    Most people might laugh if you tell them that the days of the traditional windows executable file are numbered, but I wonder if instead of laughing we should be preparing ourselves for this day. If you didn’t know this today, Google unveiled their new OS, which is basically a Chrome front end on top of a Linux distribution. More info can be found here:

    Google at this point in time have a lot of open ambitious projects on the table, including G-Drive, Google Wave, Android, Google OS, Native Code, Google Voice to name a few. This really is starting to look like  a hostile take over. I’ve said it before but I will say it again, if Google want their slice of the action, they will have to annihilate their competition, completely blow them out of the water, take over and destroy. It seems Google are lining up all their ducks.

    You might be thinking all of this is panic talk, because Google OS is targeted at Net books. If you really think it will end there, please grow an imagination. Net books are the ideal hardware to target because Net books are lacking a Safe, Simple and Fast OS, welcome Google OS. But it won’t stop there because if you didn’t know this Google OS is not really a self standing product, its a Linux port that will target ALL x86 based hardware. Yes that does include the PC!

    Linux has been sitting quietly in the background for way too long. I had another good look at it recently as a desktop replacement OS for Windows, but its kinda lacking in some areas, mainly its just not getting the support it needs from major software vendors like Microsoft, Adobe, Skype, Google to name a few. Linux has also never had a really good marketing campaign. Linux alone is not enough to spark a take over. What Linux has always needed is some major backing, and it looks like Google will be providing this backing. Right now we have 3 main players in the desktop arena. Windows, Linux and Mac OSX. Google enrolling Google OS really does change things considerably, because now vendors targeting Google OS (which will be mainstream) will also inadvertently be targeting Linux platforms, because it seems that really Google OS will just be a Linux port, and not a complete rewrite. Before you say – that leaves Windows and OSX on an equal playing field think again, take a look at what is running under the OSX hood, that’s right its a UNIX based OS. Something of a cousin to Linux and Google OS, while Windows is sitting somewhere on left field.

    The article above states: Developers looking to specifically target the Chrome OS need not apply, as Google says “the web is the platform”—the system will, in other words, run web applications online and offline. But this is not to say that creativity for this platform will be lost. Rather what it means is that Google envisage an era where JavaScript and Native Code will replace the traditional windows executable. Essentially this means that all future OS’s will be built around the web platform (According to Google JS and Native Code). If this is not starting to make a lot of sense, you have to think cost of implementation and reuse. Things just got a whole lot cheaper to implement.

    What does this mean for the average Microsoft Developer? Do not worry, none of this is going to happen next week, Microsoft are not going to go out without a fight. But lets just imagine that Google are successful with their take over, where does this leave the C# or developer? That’s what I like most of all about Googles strategy, it seems Google are really trying their best to cater for all kinds of existing developers, and not asking them to learn all new programming languages. 2 of Googles most ambitious projects are examples of how Google are catering for non Google developers. Native Code and Wave have been designed  to allow for development in all the big languages :  C#, Java, Ruby, C++, etc.

    My final thoughts are, I am a bit disappointed that Google OS will start its life as a very basic OS (really just a browser running web apps). But after thinking about it, I realise that this might be the best thing for computing, to break away from the old model, and move forward. The idea is to have code that runs on multiple platforms, as efficiently as possible without requiring additional layers of interpretation. True write once, deploy more software. True a lot of work still needs to happen, but things are looking up.

    Don’t you get tired of hearing what we can’t or won’t use?

    As a web developer with over 10 years of experience the most perplexing things I come across is how certain companies, development teams, managers or partners undermine certain technologies. You come across this all the time, good technologies or products not being used because someone in the team is prejudice. The justifications for ignoring, sometimes the technically superior solution can be amusing.  Here are a few of my pet annoyances that I’ve encountered most often.

    1. Flash is a dirty word for some – I often get told “We can’t use Flash in the solution “. Its usually not up for discussion especially on larger projects or intranet related projects.  I am not a flash developer, so I don’t push it for personal reasons. but Flash when used correctly can add value to the end user. I am not talking about changing the app to being “a Flash Site”. Using it for certain tasks like multiple file uploading or media viewing is not technically a bad idea, and its cross browser compatible, unlike an Active-X control.The 2 main reasons Managers seem to come up with for not using Flash are: (1) It violates some security policy at the client (2) The client should not have to be bothered to install the flash component to use the application. Both these arguments really hold little weight at all. If you’ve coded that Flash object correctly it will present no more of a security risk than any other component in the system. These managers also seem to think that Flash is somehow banned by IT policies in large corporates. It simply is not! The reality is that most business users are allowed to have flash installed, and most corporates will intentionally block access to certain sites like YouTube or MetaCafe, rather than blocking the underlining video hosting containers to these sites. Yet still time and time again, I see inferior components being used in the solution (media player for example) simply because of unjustified paranoia.
    2. We don’t want a Java Applet or Active-X. While I agree Active-X is getting old and stale, and I don’t have any love for Java Applets. Both these technologies have their purpose and place. The point is not to rule them out entirely because of management phobia or some techies opinion based on half hearted arguments or hear say.
    3. Silverlight. Again I am not a huge personal fan of Silverlight because I believe what ever Silverlight can do Flash can do better. But I’ve heard really stupid reasoning for not using it. The main reason is “The client won’t install this component” or “Its an additional download”. Sure its an additional download, but its less than 5MB. I think its about time we started giving the user some credit, we do after all have quick ADSL connections in most offices.
    4. Limiting the version of the .Net Framework. This is a common mispractice I’ve come across a lot of the time. Managers insisting that they simply cannot roll out a 3.5 Framework based solution because the client is already used to V2 Framework solutions. Common arguments include the following: “We’re not sure on the impact of hosting v2 and 3.5 simultaneously”, “We simply cannot include 3.5 features because the application is written in V2” mostly these arguments hold no weight, they’re based on speculation, and no due diligence has been done.
    5. Open Source. I’ve met a certain stubborness along the way too regarding Open Source components. Some companies are totally against using Open Source components in the overall solution. The reason is typically because of the licensing attached to these components, and the maintenance issues that could arise from using these components. Hence great value adds like Log4Net and nHibernate are not even considered by many, and instead expensive custom solutions are implemented.
    6. Non Microsoft Alternatives: Some companies are so focused on using strickly MS Tecnologies that they seem to ignore any other solutions that are out there. The message is pretty clear really, there are lots of tools and components that will do the job better, perhaps its about time to really survey the market before diving in and doing it by the Microsoft book.
    7. Expensive 3rd party components” : I’ve been in situations where I do not really want to develop a certain component due to time constraints, so I have a look at buying certain black box components, mostly to do with the UI of an application. Now its true a lot of these components are not cheap at first glance, but if you really do the maths and consider the time it takes to build that component then things look a little more viable. Mostly I find that eventually the budget for these purchases do not get approved, and instead the functionality gets scrapped from the solution. Cutting corners at the end user experience.
    8. Skype or Messengers: Its a good idea that companies have strong security policies in place to avoid corporate wide infections, or any intrusion. What I am against is the inconsistency often displayed by the Networking Department. Don’t ban instant messaging but allow cracked software including keygens. This type of inconsistency is commonplace. Skype and Messenger can actually boost your productivity. I remember before Google Days a lot of technology experts would pen together as MSN groups to help each other. It often was quicker to ask another developer than to research the topic.
    9. HTML 4 Transitional : Purists will argue that everything should be done using XHTML Strict. I agree its a good idea to have well structured code, but this can be achieved using either HTML 4 or XHTML. Its even possible to code both at the same time. If you’re more comfortable coding your application using HTML 4, then that is what you should be using. Remember at the end of the day that the end user doesn’t care at all what the site is written in, as long as it works, and well.

    I suggest we all take another look at our motivations for not using certain techs and get down to the business at hand, making usable, functional and good quality business applications.

    7 Quality High Def Nature Wallpapers

    I decided I would do an article on wallpapers for your PC. Having a good wallpaper can be important in your overall computing experience, considering most people spend more than an hour a day on their computer. The following is a list of my 7 favorite nature wall papers, all are provided from if you’re interested in browsing the site for more.