Posted by: Xalthorn | December 27, 2010

My first game released

Finally, a project I started actually ended up with a product.

Although I still want to create a browser based game, I let myself get distracted with the iPhone/iPod OS and recreated my puzzle game ‘Gemocide’ on there.

For those that want to have a look, it’s at with a website and forums for it at

So far, sales have been pretty non-existent although it’s only been out a few days.  I did send a promo code to as many review sites as I could find (that were still alive) and hopefully I’ll start to see some reviews soon.

As with all new programming languages, there is a huge learning curve and it always makes sense to start off with something simple until you get to grips with things, which is why I started with the puzzle game.

Me being me though, I don’t like keeping things too simple and a few features crept in whilst I was developing.  Normally I’d be quite well behaved and avoid feature-creep, but in this case one of them made a huge difference.  I *think* it’s the first puzzle game that lets you create your own levels, export them as a picture, and when you’ve sent the picture to your friends, they can import the level into their game and see if they can match your score.

Even if it isn’t new, I’m proud of that one.  If nothing else, it means I can release new levels for players to expand their game without having  to submit a new version of the binary to Apple.

The next thing to do is try something a little more… pazazzy (couldn’t find an appropriate word, but that will do).  I’m going to toddle over to Danc’s Lost Garden ( to re-read the licence for his free art and see if I really can use it in a commercial game.  If so, I will have a head-start on the graphics side of things and I have a few ideas how I can make a game based around those graphics.


Posted by: Xalthorn | December 7, 2010

The header dragons

The dragons in the header of my blog are from one of my favourite deviantArt pieces and a while ago, I made the image available on a tee shirt at cafepress.

I was pleasantly surprised to see that other people liked it and actually bought some of the tee shirts.  When I got a small payment from cafepress for the sales I figured what the heck, I might as well upgrade to a premium account and offer the print on all sorts of products.  You never know, I might sell enough to cover the cost of the premium account.

So I upgraded.

Since then a couple of people have bought the original tee shirt but no-one seems to be finding the full selection category.  I’m clearly doing something wrong but I’ll be darned if I can work out what.

If anyone is more familiar with cafepress and can see what the heck I’ve done wrong, I’d love some pointers.  My shop is at:

Posted by: Xalthorn | March 23, 2009

Doesn’t time fly…


Doesn’t time fly when you’re engrossed in things.

For all sorts of reasons, both personal and professional, I’ve been sidetracked from this project.  Thank heavens it’s a solo project and no-one was relying on me to hit deadlines.  Although, on the flip side, that would have made me pay more attention.  Six of one and half a dozen of the other I guess.

Anyway, I still have every intention of getting this thing running and now I’ve moved to a host which seems to give me a better deal, I’m not so worried about throwing lots of files and bandwidth around.

My intention now is to try and progress the project each week, and start to set myself measurable and achievable milestones.  All good intentions…

We’ll see how I manage I suppose.

Posted by: Xalthorn | June 2, 2008

The amorphous project

One of the worst problem facing anyone working on a project is that of the amorphous project (amorphous basically means without a definite form, or lacking coherent organisation, it constantly changes).

Read More…

Posted by: Xalthorn | April 11, 2008

Web page height can be a bigger problem than width

I’m in the process of making a working version of the Mondestia website to include the prototype code for the Dungeon game.  Whilst I’m at it, I’m coding in the environment systems and so on.

I always intended the web page to be viewable at a screen resolution of 800×600 without the need for a horizontal scrollbar and to achieve this, I’m designing a fixed width web page of 750 pixels.  This allows me to have the main content with a little bit of side padding on an 800×600.

Usually with web page design, you don’t really have to worry too much about the page height.  You ensure that the main attention content is at the top of the page and then leave the rest to the vertical scrollbar.

Certainly with the majority of the website, where it is presenting information, we’re all accustomed to vertical scrolling and this isn’t an issue.

However, with the game environments where you will be using the page repeatedly to play the game, you really don’t want to be scrolling down each time to access parts of the interface.  It would get really tedious really quickly.

As I had used a 400×400 map viewport in my tests, I’m not really keen to shrink that any more.  However, because it’s so big, it meant I had to do some fiddling with the interface and general page layout to get it to fit in without any scrolling.

I’ve done it, but I’ve had to sacrifice some of the header height which makes the website look a little cramped.  I haven’t lost any content in the header, but I have lost valuable ‘white space’.

I considered having a different page layout for when you were in a game environment, effectively giving the game more ‘control’ of the screen estate, but opted against that as it would ruin one of the driving features of the website which is to allow the user to navigate through the site and games as they want, using a consistent interface and layout to switch between sections as they need.

Posted by: Xalthorn | February 18, 2008

Dungeon Escape Revisited

Having spent quite some time working with the practicalities and implementation of a game engine that will be suitable for both Dungeon Escape and Mondestia RPG, I came to the realisation that again, I’m not seeing the wood for the trees.

Although the Mondestia RPG will be the larger, more detailed project, Dungeon Escape is meant to be simple. Really simple.

Read More…

Posted by: Xalthorn | February 6, 2008

Scrolling Map Display Tests

Sometimes, playing with a concept and coding things to prove it will work can take a heck of a long time and prove to be a major distraction, bringing progress on the main project to a grinding halt.

I’ve hit one of those.

Read More…

Posted by: Xalthorn | January 30, 2008

Separating Content, Structure, and Presentation

One thing that I am going to do with the Mondestia site is to ensure that (as far as is practical) the content of the site is separated from the structure and presentation.

A session searching the internet for such topics will yield a huge amount of documents talking about this, most of which cover the topic in a really vague manner which only serves to reinforce that the approach is the right way to do things, but don’t give any details about how to actually do it.

Very frustrating.

To add to the frustration, there seems to be a difference of opinion as to what the terms Content, Structure, and Presentation refer to. So I figured I’d take these words and come up with my own definitions and way to approach the problem.


Content is actual information that will be displayed in some way. The content is also identified as to what sort or type of content it is, whether that be a heading, an image, a body of text, and so on.

Without a definition of what sort of content it is, the information is meaningless. You simply cannot expect a system to ‘guess’ what type of content is being looked at.

This is why the content definitions need to be worked out right at the start of the project. Without any expectations of what sort of content will be presented, the code that structures and presents the content will be doomed before it starts.


Structure is rightfully moved away from the content and is where the interface is starting to be, well, structured.

It is this part which determines how and in what order the content is output. To achieve this, a template system will be used which has templates of pre-formatted HTML with specific locations for the content to be inserted.

It is important though, not to confuse structure and layout.  This part of the process takes the content and wraps it up in appropriate DIVs that the stylesheet will then stylise and position in the presentation stage.


Once the web page has been built with the content and the templates, the actual look and feel of it needs to be added onto it. This will be done with stylesheets.

As far as is practical, the stylesheets should have complete control of where and how the parts of the page are to be displayed.  I appreciate that the templates go some way to control this as they do the initial ‘wrapping up’ of the content, but the stylesheet should have the final word.


It really does take a little thinking to move to this system of web design.  We’re so used to simply churning out the HTML, it’s hard to stop putting this in the content.

One of the difficulties is when you’re not quite sure what you will want to output or even, how you will want to change it in the future.

A classic example is image galleries.  You may decide initially that you want to display a grid of 12 thumbnails in three rows of four images.  So, you write your PHP to pull the images out of the database 12 at a time, with a page selector to let the user move through the library.  You follow this with a template that has spaces for 12 image variables, and finally the stylesheet makes it all pretty.

If we decided that we wanted to output fewer images, we’d have to go back to the PHP code and change that, then change the template, and finally change the stylesheet.  So much for a dynamic website.

What we should have done was have a variable in a database table that determined how many images should be displayed which would allow the PHP code to adapt itself to suit.  The next issue is the template which is still expecting 12 image variables, which the PHP script is meant to be providing.

The link between the PHP script and the templates it uses is strong.  The PHP scripts need to know what the templates are called and what they are expecting to receive.  This is why the content types and groups need to be defined well in advance, as well as understanding what may change in the future.

Posted by: Xalthorn | January 25, 2008

Mondestia Design Overview


This is the first post in the Mondestia Design category where I’m going to document the design and implementation progress of the Mondestia website.

I’m expecting that there will be many occasions where I make a bad decision and have to reverse or back track and rethink it. However, rather than hide these mistakes I’ll just keep going and bring the project back on course. This way, people will be able to see my mistakes and hopefully learn from them.

It also means that if someone reads the posts and can see I’m heading for a huge problem, they might feel inclined to warn me before I go too far.

Feature Summary

Without going into too much detail at the moment, the following list shows the main features that I will be incorporating into the Mondestia site.

Environment Shell

The aim is to have a single website that is made up of a number of environments. These environments are self contained games but they all utilise the same central record for the player.

This means that a single login is needed to the site, which gives potential access to any of the environments within it. This removes the need to register a new account for each game. It also allows for achievements gained in each game to be recorded in a central location, allowing the possibility of one environment recognising achievements in others.


Although there is a single login to the site, a user potentially has access to all environments within it. The privilege system gives a detailed level of access to environments or even parts of environments.

The privilege system also allows for guests to browse through the site.  Although they will not be able to play any games until they register (where would we save the scores and achievements?) , they are able to look at the help files, game guides, screenshots, and so on without being forced to register first.  This should not only remove the annoyance from potential players but also help to ensure that registered players actually intend to play.

Low Bandwidth

There are many little tricks and approaches that will be used to keep the bandwidth to a minimum.  This should result in cheaper hosting and also, much faster responses for the player.

Database driven content

There is little point in creating such a dynamic site if I’m then going to create static pages of content and uploading them.  Therefore, as much content as is practical will be driven from a database.

Environment States

Because the user is encouraged to use the shell to switch between environments as they see fit, their current position or state in each environment will be preserved as they use it.

This state will also be preserved if they close the browser down, meaning that they can play as much or as little as they like, close the browser (even in mid combat) and then when they return to the site, their position in that environment will be exactly as they left it.

There are special cases made for multiplayer environments where the other players cannot be expected to wait days for you to log on and have your turn, but the general approach stands.

Posted by: Xalthorn | January 10, 2008

Web Design for Games

Having scoured the web for quite some time looking for ideas on how to lay out a web based game, I find that there isn’t much out there unless you look at existing games.

There are plenty of tutorials and attractive templates for informational websites, but whilst these are nice, they’re not always appropriate for a website that by its very nature needs to be hugely interactive and dynamic.

I’m no designer and although I know I like a website when I see it, creating something that both looks nice and is functional is hard.

I’m also finding that I’m falling into the trap of designing a website and then shoe-horning the content into the resulting design. This is both a big mistake and a huge time waster as you have to constantly refine or re-design your website to accomodate your project.  But it’s an easy trap to fall into if you start browsing template sites.

After realising I have wasted so much time on this, and to hopefully help people from falling into the same trap, I’m going to start documenting and designing the website in this blog, creating a tutorial or series of guidance notes along the way. With any luck I’ll achieve two goals.

  1. Get my project complete and live
  2. Help others to do the same

At least that is the cunning plan…

With any luck, I’ll end up with a fully documented case study which will show the whole process warts and all.  I’m expecting, like with any project, that there will be changes and decisions made later on that will impact upon earlier decisions.  Rather than hide my ineptitude and lack of forward thinking by completing the project and then publishing edited notes, I’ll simply keep documenting how I overcome these obstacles.

Older Posts »