Saturday, 27 August 2011

Focus on Design

With the last update of Xanthus Quest I released a rather scrappy platinum system that allowed you to purchase VIP packs with a new game currency. It quickly became apparent however that players were rather confused by the new system, and I believe that I am entirely to blame for that.
Up until this point I have been focussing too heavily on features over design, with the priority being to get features out fast. I believe that we have reached a turning point with Xanthus Quest. We now have very dedicated players who want and deserve a better quality with new features. I am now very confident with my engineering efforts for Xanthus Quest, and have the game running quite smoothly now. Though the recent quest and inventory system overhaul was quite a fiasco, I blame that largely on my own short sightedness in not realising that it was time to slow down.
The new super tool as I like to call it, which allows -bleak- to create new encounters, quests, monsters etc. without my intervention has been running smoothly for a number of weeks now. This should allow -bleak- to create new content largely unaided by me, thereby freeing me up to take my time with new features and thoroughly test them. This is something that I definitely should have done with the new cache system. It wouldn't have been the end of the world if players had to go a couple of weeks without any updates to the game while -bleak- was able to keep them entertained with new content.
Instead of realising this however, I proceeded to push the new cache system through with entirely too little  testing for such a far reaching change to the fundamental aspects of the game. As a result of this I went into damage minimisation mode and started applying patches and updates as quickly as possible and now have a rather ugly system happening for updating equipment and quests. Every time I deal with this code it will serve as a reminder to slow down, think it through and test, test, test. This can only be a good thing.
I learned my lesson here when it came to the Facebook integration. I worked on this integration rather quietly in the background for a week before I released stage 1. The result is a reasonably solid, better thought out system. However I then rushed the platinum system. Bad. The new platinum system was rushed, lacked planning, and was generally just thrown together, and it showed. Lesson learned. Again.
Having finally let the lesson sink in this time, I have taken the time to really think through the new platinum system. Having introduced a new platinum store that takes a leaf out of the blacksmith and auction house design. The VIP packs have been moved to being items, as scrolls. This has allowed me to allow for other items to be sold for platinum, like energy and stamina potions. I have also been spending more time than usual thinking about the general flow of the players experience as they progress from buying platinum, to purchasing items, to purchasing more platinum. This still needs more work, however it is much better experience for the player and is how I should have released the system in the first place.
First impressions are important, and so is the micro payment system for the long term survival of Xanthus Quest. Such an important system deserves a lot more attention than it was given, the game deserves better and so do the players. I will strive to do better in the future.

Wednesday, 20 July 2011

Alot has happened

It has been a long time since I have posted to this blog, and obviously a lot has happened since then. My previous project, Flow Forum, has long since been abandoned. After getting stuck into web game development shortly after abandoning the project I can't say that I really have any regrets about the decision. The new project, Xanthus Quest, has since been launched (albeit a little prematurely) and is going strong, with great player feedback to date.

Xanthus Quest

Xanthus Quest was originally planned to be a simple game that would be familiar to players of MarcoLand and Crimson Moon, however once I added the ability to explore wilderness and dynamically change page content without having to reload the page via ajax the game took a very different turn. PvPing has taken a backseat to exploring areas and performing quests.
Players have loved these quests and have told us that they want more of them, and so that is what we are doing. This has created problems however as these quests were supposed to be a rarity and not the main feature of the game, as such the games code was not structured very well for these quests and exploring. This has meant that I was constantly hacking together new areas and quests for players, making the code very cluttered, messy and hard to maintain. I realised once the Wastelands handler blew out to more than 5000 lines of code that this was not maintainable, so I have decided that I need to take a step back from adding these features and add in some proper structure to make maintenance and expansion easier moving forward.

Admin Section

With the realisation that we have more people willing to and able to contribute to storyline, images etc. than coders I decided to take this rewrite opportunity to move the bulk of the quest, and encounter information to the database rather than code. This will free me up alot more to work on new features which will be very important if I am to remain the sole programmer for Xanthus Quest and add new features to the game beyond quests and encounters. Work on this new dynamic encounter system has been going for a number of weeks now and we now have some encounters being driven entirely by the database that would have taken me weeks to program with the old system, which is great news.
The next step in the dynamic encounters system is the ability for admin's to create quests and provide status information for every status in the quest. Work on this has been good and should be complete this week. One less thing for me to have to handle in the code, which means one step closer to fixed forums etc.

What is Next

Once the quests system is done, the next step will be NPC dialogue that is quest, quest status and player inventory aware. This will probably require a week to build, after which I am sure that there will be more features for me to add to the dynamic encounter, monster, inventory and quest systems to give Bleak and Hyalix more options for creating new quests for all of you guys to play with.

I will be focussing on Xanthus Quest development with this blog in the future and will check back for any feedback or comments you leave in the comments below.

Thursday, 3 December 2009

Very early release is online

A very early version of the forum is now online and available at There is very little styling and it is still missing many of the planned features. However if you are curious and want to see what progress has been made to date head on over and check it out.

Sunday, 29 November 2009

Preparing for collaboration

I managed to completely screw up the tags system for the forum when I played around with the preview 1.2.8 version of the app engine sdk. I wanted to test how the multiple tag association and searching would work with the "IN" keyword, it looks neat and tidy from a code stand point but is very inefficient with the writes. If I cache heavily enough than we should get away with it however. I have finally figured out what I broke though when I reverted back to a non multiple tag version of the forum, so the forum is usable again.
I have decided to use Google Wave as the main source of communication and collaboration for the project. I will be working on writing up some guides to make it easy for people to jump in and help with the forum development when I am not busy coding the forum. I want to make the forum look a little more like the designs, then I will upload the forum to the app engine servers for people to play with. It will be very far from complete though, so you should only check it out if you are curious to see what has done as it won't give you any indication of what the finaly product will look like. Expect that to happen soon.
I found a very nice site that provides free svn and git hosting that I am using for the flow forum source control. If you have a need for such a thing for your own project you should check out unfuddle, there site is very slick and has performed flawlessly for me so far.

Saturday, 21 November 2009

Play time is fun time

Coding the forum has been full of challenges so far. Coming from a RDMS background, working the googles bigtable datastore has been a fun challenge to tackle. I get the feeling that I will be making a number of big changes to the datastore models when I see the forum under load.
The good news however is that the Play! framework has been as good as I could have hoped for so far. It cuts down on enough syntax for me to not feel bogged down by using Java which I was beginning to think would never happen. Though I have yet to actually test any code yet, I just can't be bothered doing any dummy html until I have all of the backend stuff written up for adding and viewing posts and discussions.
I have a habit of over-estimating my abilities and falling short of any deadlines I set for myself, so it should come as no shock that I don't actually have anything for you guys to view yet. I have talked with a couple of guys who previously showed interest in working on the forum with me in the past, and they both said they are still interested. This is great news as they are both very talented and will speed up development greatly once they are brought on board. Can't wait.
All in all things are still looking bright for the forum.

Tuesday, 17 November 2009

Play Framework

Last week I finally found the java web framework that I have been looking for. It is called the Play! framework. Check out the video at to see why I like it so much. This framework is quite similar to the Ruby on Rails framework that I love so much and will allow me to develop much faster than I could in any other framework I have come across which I find to be very important.
Now that I have this framework I have decided to put the cms development on hold as I no longer need it for the forum as I can achieve everything I need using the play framework. This means that development of the forum itself is starting this week and I will be able to give you all a working prototype pretty quickly.
I am hoping to have completed the forum enough for discussion creation and listing at a minimum by the end of the week and hope to have a teaser uploaded by the end of the week. I plan on releasing new previews once a week (probably Fridays) so that you can see where the forum is headed and provide feedback while I work on the forum.
Let me know what you think about the play framework. I especially look forward to no longer having to do the usual development process of compile, stop server, start server, reload page.

Sunday, 1 November 2009

Why do Java developpers neglect error messages?

It feels like everytime I use Java for this project I am left wondering one thing, what is with the error messages? Today I had a problem with the query I was sending to the datastore and the only error message I received was a null pointer error message at the line the query was being executed. The query itself was written in a previous line of code and I had no way of knowing whether the error message was due to assigning the object to a List, lack of data being returned or any number of potential problems.
AppEngine is currently at version 1.2.6 so I would expect more care given to error messages by now. Even worse though is that I am using the mature JDO framework that Google have modified to work with AppEngine. Surely after all this time they would have decent error messages being returned. These type of things really annoy me, because they waste hours of my time that could be better spent working on my project. By the time that I figure out the cause of the error I am too angry to continue on with the coding.
Surely if you are going to take the time to write a framework for others to use, especially if this is for use on your own servers for your customers to use, you would want to make the development experience as straight forward and annoyance free as possible. I am really starting to understand why Java has such a bad rap.