November 20, 2012 - Alpha details and a matter of originality

The client now connects to the server, downloads a list of games and then can connect to any individual game and begin interacting with the server, sending moves and updating the clients as the game progresses.

From a technical standpoint, the ‘netcode’ is fairly simple; when a client connects to a game, a snapshot of the game with all of the relevant data (position and status of units, players, whose turn it is etc etc) is delivered to the client which then sets the board up accordingly. The client then starts either polling via HTTP or listening via TCP (how this is chosen I have yet to decide) for new ‘actions’.

Not related to post: The unadorned mini-map – and yes, units now cast shadows. The shadows stay on the ground when they move too! Like proper shadows! I am so smart.

Actions represent every possible individual step which influences the game state in some way; a player joining or leaving during pregame, a unit moving, a new turn, a player being defeated or the game ending. Each action has both a timestamp and a consecutive action number. This means that all the client has to do is keep a record of which action number it’s up to, and wait for new actions. When new actions come through, the client processes these new actions in turn until it’s up to date with everyone else.

Because of the added complexity of creating a game which works over the Internet, some slight changes have crept into the gameplay, though these will be mitigated to keep the game as pure as possible. One such change is the way that individual units’ moves are processed.

In original Chaos, when you move a unit, after it has moved, it may then perform an attack (if it moves adjacent to a combat-capable enemy unit) or a ranged attack (if appropriate). These potentially up to three components of each unit’s ‘move’ are all typically linked together. With Archaos, a player may move their unit, and then lose connection, their PC may crash, the boss may come in – whatever – the point is they may be interrupted. In this case, with the traditional system there’d be two choices – either to automatically ‘end’ that unit’s move completely (which seems a tad unfair) or invalidate the unit’s move (not really practical).

The solution therefore is for the client and the server to track the move/attack/ranged attack phases as just that, distinct phases of the move. That way, if a unit moves but doesn’t get to perform its attack or ranged attack, clicking on it later in the same turn would allow you to continue its remaining phases.

Of course, this differs from Chaos and I’m always acutely aware of things which differ from what is both in my mind and the minds of most of its fans a well balanced and perfectly fine game. With that in mind, what I can do to ensure the gameplay remains (mostly) original is to automatically call the attack/ranged attack routine in the client after each unit’s movement phase. If the player then actively cancels one or both of these phases, they are marked as ‘complete’ and the unit’s move ends completely. Action or cancellation will be made mandatory on the client, so that the only time when the option to ‘revisit’ a unit will be available is if the move is cut short in some way. This does mean that players could potentially quit out of the game in order to bypass cancellation, but as there are no benefits I can see to doing so, it means that this feature can do its job without interrupting gameplay.

The game is now quite close to the alpha stage – that is it will be in some way playable very soon. The alpha will almost certainly begin by the end of this week, or the weekend at the latest (unless I run into some catastrophic game-breaking bug) and will feature a comparatively small subset of gameplay to begin with:

  • Users will be creatable
  • Games will be creatable (with the ability to set a width and height of the board – wizards will be spaced around the board as in the original game dependant on number of players)
  • Games can have up to 8 players and can be limited to fewer players if the player wishes
  • Players will be able to move units around the board, attack one another and cast basic creature units
  • Players will be able to defeat other wizards and win the game
  • Players will not be able to cast non-creature spells
  • Wizards will not be able to mount creatures such as horses etc
  • Animations for things such as spell casting, attacking, ranged attacking and wizard deaths will not be implemented at this stage
  • There will be bugs, crashes and weirdness – this is an alpha remember!

I will make further announcements about the alpha during the week on Twitter. I will be looking for volunteers to help me test the game and iron out any issues with what is essentially the core gameplay mechanic. It won’t be a particularly amazing experience at this stage (not compared to the original game or the final product, or even the subsequent beta) but it will be essential to test it on a range of hardware, and in a range of conditions.

As Archaos is already multi-platform ready, I will be able to create iOS and Android builds for those alpha testers who would like to try it on their iPhones and iPads. If this is the case, I’ll provide further instructions on what you need to do to get Archaos running on those devices. I’ve not yet tested Archaos on Android but I will at some point this week before I start alpha.

If you’d like to be part of the alpha phase, and have read all of the above and realise that you’ll be testing a limited and unfinished product, leave a comment below or drop me a line on Twitter.

November 2, 2012 - Julian Gollop has an announcement to make…

Earlier on I got wind of news that very nearly made my heart stop.

Yes, Julian Gollop – creator of the original Chaos, of the original X-Com, and of many other seminal classics, has begun work on his own remake of Chaos using Unity 3D to initially target PC, Mac and iOS. He also stated:

…which bodes well for it sticking to the original winning formula.

Development on the game has only just begun, and Julian is currently looking for good artists. He has estimated that the game will take around a year to finish, so we’ll all have to be patient.

I guess the recent massive success of XCOM: Enemy Unknown has brought Gollop back to the forefront and given him the motivation needed to revisit what has to be in my (and many other people’s) opinion one of the greatest games of all time.

Julian, if you read this, I wish you all the very best with your remake. Chaos has been crying out to be remade for a modern market, and a market that’s now clearly in the right place to readily accept a multi-platform turn-based strategy title such as this.

What however does this mean for Archaos? Surely with this title coming out, it makes Archaos obsolete and possibly in danger of legal action as it will directly compete with Julian’s version on the same platforms?

Sometimes it really is worth meeting your heroes.

March 12, 2011 - Merry Christmas, happy new year and so on

First of all, apologies for not updating in yonks – I could give you the usual programmer excuses about real life, work and so on but you’ve heard them all before, so I’ll dive right in to what I’ve been doing:

Archaos is very, very slowly moving along – we’re talking geologically slow here, but nonetheless there’s still a roadmap and there’s still progress on it. My aim now is to have a release before my 30th birthday (next year) and I’ll be damned if I don’t make it!

I’ve been experimenting with presentation and so on, and came up with a little thing tonight which I thought was quite cute.  I’m really feeling the love for CSS3 and HTML5 now.

WordPress has become my new powerhouse tool at work, and I’ve been churning out sites left, right and centre in this wonderful blog engine turned CMS (as of 3.1 especially so) – check out some of the following:

The last is our most recent project, and is very much not a site you’d expect to be WordPress powered – such is its flexibility!

I don’t update on Twitter much anymore, as it’s become a bit of a joke now with all of the celebrities and ridiculous trends; it pains me to say it but I think Twitter is more about Justin Bieber now than anything sensible. Alas, I spend most of my social networking time now on Facebook.

Finally, I’ve booked a flight to Arizona in September for a two week photography road trip with two of my good friends – should be awesome!

Anyway, hopefully that’s got everyone up to speed on what I’m doing – keep your eyes peeled in the coming months for updates on Archaos and other projects.

August 18, 2010 - Raise dead

Well well well, I guess I haven’t posted here in… ohhh, ages? I owe you all an apology to be perfectly honest, as I’ve neglected to work on Archaos (or indeed any personal projects) in the time since my last update.

Life has panned out for me – work became extremely busy in the last few months, and my ever expanding role has ever expanded – and indeed shifted towards a more theoretical and management-style thang. I’ve been working directly with clients and producing a lot of exciting stuff for a lot of exciting projects which, if I get off my lazy arse and update this blog more often, you will no doubt hear about!

Another significant development is that I’m no longer a lonely geek sat in his room listening to chip music and writing Javascript – I’m a very much not lonely geek sat in his room listening to chip music and writing Javascript. I have indeed found a (dare I say it) lady geek – though to her credit, not even close to the caliber of my pure unadulterated nerdiness – whom I spend as much time with as my work and her sanity allows. I won’t allow myself to become soppy and embarrass her (and myself) but… well, I absolutely love you, and you make me a very, very happy boy. Oh bugger, I don’t think I succeeded there. Never mind!

This has meant of course (yes, you all knew it!) that my personal projects have taken a back burner in all of this. Well, I say a back burner, but I actually mean ‘have been placed in tupperware tubs and frozen’. I must say now that my passion for Archaos in particular has not waned one bit – however after such a hiatus, I’d like to start a lot of it again rather than try and work my way back into the existing code base. A problem with learning as you create is that everything you did a month previous is a bit crap – so stuff I started last year is gonna be pretty goddamn terrible now.

I will return to Archaos. I absolutely promise I will, and I have been reading Gooey Blob and other Chaos related stuff. The end of the year always proves to be a better time to get on with personal projects, and I hope to have something playable in December.

To those of you who still read this, still follow me on my similarly neglected Twitter account, I salute you – and I’ll be around more often!

P.S. Check this out. WOW!