Thursday, October 26, 2006

Joyless Soul - meet Mr Big Fuck-off GUI

I wasn't in Madrid that long, was I?

I think I'm going to have to bite the bullet (or chew any other type of ammunition, though that may lead to the swallowing of poison darts) and write my own GUI system.

I've done one before. It didn't work very well, the code was a hideous mess and on some computers it slowed to a crawl. But none of that bothers me this time. First, things are object oriented now - this is good for GUI systems. Secondly, I've picked up a few tricks which I'm interested in trying out along the way.

And thirdly, fuck it. Every time I try a third party solution, it causes me as much hassle as it would be to write my own. There's nothing essentially wrong with these off the shelf GUI engines. For what they're designed to do, they do very well indeed - and they've been excellent to learn from. It's just that what I want to do, and the way I'd like to do it, is not really compatible. I wanted to build a system that would surround a GUI, providing me all the gadgets I need but without the headache inducing method of creating each and every screen through mind-numbing statements littered throughout the code. It needs to be skinnable - incredibly so. It's not enough to change colours, I want a modder to be able to redesign every screen in the game.

The last GUI I've been using was pretty good and I had a working system, but the fourth problem reared its head. Lack of transparency. Things were happening using this GUI that I didn't understand, and they were eating my frame rate - before I'd even so much as started processing any of the game stuff. At this point, that's the last thing I need. I need control, and I'm going to get it.

And the fifth thing? Well, that's the whole reason I started coding in the first place when I was about 10 years old. It's fun. It's fun to achieve things, it's fun to hack things, it's fun to just throw stuff at your computer and learn from the results. Back then I got a buzz from properly generating a random number and recreating Grandstand's Saturday afternoon vidiprinter. Over the last few months I've lost that buzz, and it's making me lose a lot more.

I'm going to have fun again. There will be a game at the end of all this. But if it was just a game I wanted, I'd be playing Football Manager.

No comments: