Rotates.org

June 2, 2009 - The Krypton Refactor

I’m sure it’s not just me, but I’ve found that sometimes some of the most difficult and profound decisions you make on a project only occur when you’re half way through writing it. It’s monumentally difficult to work out the specific heirachy of classes in advance (especially when you’re trying to write something modular) and sometimes you just have to write the damn thing before you realise where things actually should go!

The current project tree

The current project tree

So as I tapped away this afternoon, I realised I’d reached a critical point where I was starting to introduce messy hacks to send messages down and back up the chain of command undergoing several changes along the way – it’d stopped being efficient and had I gone any further with it, it’d have become a big nasty mess. At this point what’s needed is for some of the core classes (notably the game, board and renderers) to be refactored and reimplemented. Thankfully as it turns out this isn’t a large job (another huge benefit of observing OO best practices) and things will once again be going smoothly very soon.

Also, I have to thank each and every one of the people who’ve commented, emailed and otherwise shown interest in this project. It’s a great boost to the old morale to know it’s not only myself who’s excited about playing it! I’d like to take a few moments to clear up a few questions I’ve been asked:

  • Will there be a beta test? Can I be a tester? An online game is obviously going to require people to help iron out the bugs, and so yes, there will be phases of testing throughout the lifetime of the project (as new features get rolled out for instance – hint hint) and when that time comes, I’ll announce it. The iPhone version will be a different matter, as Apple are (understandably) tight about running code on other people’s devices. As such, when the iPhone version is ready to be beta tested, the only people who will be able to participate are those who have an iPhone development license themselves. Again, I’ll release more information about this at a later date.
  • How different will your remake be from the original? This is something I’m very conscious about – basically, Julian knew what he was doing when he created the original. It’s a formula that works through and through (obviously, as people are still playing it!) and I don’t want to tamper with it in any way. However I also see a lot of scope for expansion of the concept (though I might add not to the level of even Lords of Chaos, which I felt over-complicated the game somewhat) with the likes of new spells, new units and so on. It’s important that any changes I make are optional and modular – in fact ‘modular’ has become my mantra for the whole project. I’m by no means the authority on Chaos and its mechanics, and so I’ll leave such things open to tweaking.
  • Why isometric? It’s just so cool! Don’t worry though, there’ll be a traditional style renderer out of the box too!
  • Can I contribute? At this very precise moment, I’m afraid the answer’s no. My plan is to get the game into a playable and respectable state, and then make it open source. Besides I’d not wish to unleash my ghastly uncommented, undocumented alpha-quality code upon anyone else right now. I’ll make one exception however; if any talented pixel artists wish to update the original unit graphics (and maybe other graphics) then I’d be very interested in hearing from them. As nice and retro as the original sprites are (even the fettled ones I used for the old Flash version by Richard Phipps) I have a funny feeling that it’s only nostalgia that’s making them acceptable to current eyes…
  • What’s taking so long? Several things; my desire to get it absolutely right, my commitments to my real life job, my recent weekends spent in the company of my mates and my camera, my evenings spent watching Richard Dawkins on YouTube and working out a way I can apply all that evolution by natural selection stuff to the AI (I jest not!) and the occasional bout of Killing Floor or Left 4 Dead. Be assured this project is not about to disappear, I (hopefully) won’t suddenly be dragged away by ‘real life issues’ and my hard disks and backups won’t miraculously explode.

And now back to the music…

April 28, 2009 - A new perspective upon new horizons

Well, I have to say I’m utterly blown away by the iPhone. I can quite solidly say it’s the most useful object I’ve ever bought – more useful even than my PC if I’m brutally honest. I’ve not put the thing down since I bought it; whether I’m checking my email, checking out websites in a proper browser on a proper screen, finding a takeaway in Barton-upon-Humber, playing Geo-defense or Wurdle while waiting for food in the takeaway, or even simply controlling iTunes on my PC from the familiar iPod interface via Remote (which has subsequently put Winamp on the back shelf – the first prog to do so since Sonique many moons ago) it’s been a complete and utter revelation.

This has obviously inspired me into developing for the iPhone – which means I need several things:

  1. A Mac – Oh dear. I shudder every time I have to turn to one of the studio Macs at work. Despite my new-found respect for Apple, Macs are still truly dreadful to use, primarily because of:
  2. OS X Leopard – It’s an improvement over the older versions, that much is true – however it’s also still basically an unproductive and annoying departure from what is obviously the ‘first choice’ way that Windows handles things. Apple can’t swallow their pride or dump on their existing userbase by conforming and as a result I can’t see Mac OS ever being their star product.
  3. XCode + SDKs – All 1.8gb of them. Yay!
  4. An iPhone developer account – Yes, Apple don’t allow you to run your own code on your own iPhone without paying them another £59. You can run it on the iPhone simulator that comes with the dev kit, but you obviously want to see and feel it on the real hardware (plus multi-touch with a mouse is out of the window).

As you can see this could become a pricey proposition. I’ve got something in mind for the first three steps – but it looks like there’s no way around the ‘Apple app tax’, I’ll simply have to stump up the cash.

The app that I have especially in mind is Chaos Enhanced (which now has a new name, though that’s for another post and an ‘official launch’) – which although being server-based and written in PHP with JSON I/O, needs client apps. If I can make the iPhone client smooth, slick and nice, then I can translate some of the features into the Flash client – I reckon this is easier and more likely to result in a really polished interface across the board, instead of me having to shoehorn the interface from a 1920×1400 browser window into an iPhone’s paltry 480×320.

On a rather unrelated note, I’ve also been looking at MooTools – partly because of the absolutely excellent Quakenet Webchat I discovered the other day which uses it, and partly because they’ve recently released a new version. Turns out it’s a really impressive looking framework, which takes an altogether more pure approach to extending and un-browser-fuckifying Javascript. I found myself absolutely hooked as I flicked through the docs and demos and I’m really excited about using it in my next Javascript project. Of particular note is its OO system, which I kinda envy and wish other languages I use (see AS3) had a similar system as opposed to the clunky, ugly and confusing Java/C++ way of doing it. I know I’ll attract hate with that statement but really, see how MooTools does it – it’s a breath of fresh air and makes total sense!

Finally, I’ve (attempted) contact with Julian Gollop regarding the ownership aspects of Chaos though I’m unsure as to whether I’ll get a reply – he appears to be a hard man to find. Hopefully I’ll get a reply, as a few things are resting on it at the moment. More news in the coming days on what’s going on with the game formerly known as Chaos Enhanced.

April 8, 2009 - iPhone finally

After several attempts to buy an iPhone off O2’s blatantly broken site I finally have one of these beautiful devices. Oh and I’m updating the blog from it as we speak! 🙂

Winnar!

April 6, 2009 - Racist tea

(8:44.51) <SEPTiMUS> right
(8:45.03) <SEPTiMUS> some white tea, and q3
(8:45.08) <worrywort> rofl
(8:45.10) <worrywort> you racist lew
(8:45.15) <SEPTiMUS> supreme tea
(8:45.15) <SpermSwamp> lol
(8:45.23) <SpermSwamp> pitch tea
(8:45.30) <SEPTiMUS> I'm so racist I put milk in my black tea to make it white
(8:45.35) <SEPTiMUS> that's how fucking utterly racist I am