You Only Post Twice

Published January 09, 2007
Advertisement
Given it's 2007, I might as well go with James Bond themed journal entry titles from now on this year. It's not as the entry titles have been that interesting for the last posts anyway, so I might as well spice them up with a few bad puns.

Apart from watching too much of the Futurama DVDs I got for Christmas, I've been spending a fair bit of my time planning things for 2007. I've only recently started putting some of those plans into action.
Quest for the Plastic Rectangle
As can be seen in this recent thread, I'm planning to buy myself a laptop. For some time I've planned to get myself an Apple laptop. This is for a number of reasons; I'd like to try out Mac OS, work on cross platform game development (Linux and I haven't seen eye to eye on this matter), and if I ever try to go the commercial indie route it's foolish not to support the Macs (or so I've read; I've come to believe the lion share of indie sales comes from Mac users).

I'm presently leaning towards the MacBook rather than the MacBook Pro. While the MacBook Pro looks pretty sweet, it's rather pricey, and the MacBook seems to have almost the same base power for standard applications. The main drawback of the MacBook non-pro is that it has an integrated Intel graphics chip - however I don't think it's worth spending an extra thousand bucks for 3D acceleration in a laptop, particularly if it means a shorter battery life. However I still have to head over to the Apple store to look at the laptops in person to see if there's any other good reason to prefer the Pro over the Standard, such as usability.

However given it's the MacWorld conference this week, it certainly seems prudent to wait it out a few more days to see if anything will be released soon. It's only a few more hours until Steve Jobs big keynote speech, so I'll see in the morning (my local time) if there's anything new on the horizon. Although I don't want to have to wait too long; I've got work I'd like to be doing on that laptop this year!

Not quite Enginitis - but close
I've also started work on what I think will become an ongoing project fo 2007 - the development of my own 2D game library.

This has been a goal of mine throughout the last year or so, but it's always been integrated as part of my proper game projects. However I suspect it's dragging down my work on Ice Slider when I keep spending time rewriting parts of the game system that I'm not happy with. I've decided it's probably better to separate out the library development as a separate project and not have to worry about making a pig's ear of the architecture within the game itself. This way I'll strive for proper software architecture within my library system, and don't care so much if practical development screws things up a little when I implemenet a game.

So far I haven't got much further than the main plan, the directory structure and the name: "Diagonal" - so chosen because it's both mildly interesting, fits into the geometric meme similar to my game dev nickname but above all: it's easy to retrofit an acronym to those particular letters (for example: Diagonal Is Almost Generic Or Nearly A Library). Now all I have to do is decide whether it's the "Diagonal Library", "Diagonal System" or "Diagonal Suite" (names are important! [wink])

My present plan is to take the existing system from Ice Slider as the starting basis, clean it up a little and add proper documentation using doxygen (something I'd like to learn to use). The software engineer within me is reasonably pleased with the system I've got working in Ice Slider, but there's several areas that irritate me. I'd really like to experiment more with an event-driven system, as I think it's extremely powerful when used right. My goal is, after a few iterations, to have my own reusable set of useful game widgets that I can quickly use to build the sort of 2D games that I'd like to make with a minimum of fuss.

Once I've got the groundwork for this done, I'll freeze development of the core system within Ice Slider and finish off with what I've got. The idea in the future is to take a snapshot of the Diagonal library with the functionality presently implemented, fork it off to form the basis of a new game, and see how well it works and what needs improvement. Rinse and repeat until the system is robust and feature complete. That's pretty much my plan for the entire year.
0 likes 2 comments

Comments

Aardvajk
Sounds like a good idea.

I have a 2D D3D sprite wrapper library and a DirectSound library that I wrote when writing Orc. I'm now using the same ones for the new game.

I've done this lots before but have always abandoned old projects and modified the library so the old projects won't compile, or copied the library into a local version and modified it.

This time, I've got the libraries centralised and am forcing myself to stick within the constraints of backwards compatibility, so that any new features I add to the D3D or DirectSound library for the new game do not prevent the Orc code from compiling and working with the Orc code as-is.

I'm finding this is really forcing me to stay quite structured and sensible with changes to the libraries and it seems to be making me develop a much more solid library base.
January 09, 2007 10:06 AM
Trapper Zoid
Backwards compatibility is a good idea, but I'm not sure I can stick to that for the first couple of iterations. Chances are high that I'll do something boneheaded when designing the interface to the library. I suppose I could have depreciated functionality, but if it would kludge up the code base I'm not sure it's worth it.

However eventually I'll declare the Diagonal library to be up to "version 1.0" and lock down the interface; I just don't think that will be for some time.

January 09, 2007 02:08 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement