Although my original plan for the day, was to spend it working on Stargella, I’ve not found time for it, and I’ve to much of a headache now to worry about it.

I got in some good SWAT action then set to work on dependency compiling and evaluation, getting the freetype and jpeg libraries built. It was excellent to see that the freetype folks know how to use autotools, something a lot of projects fail at; and that jpeg has an gone through insane hoops to make their package easily built, on virtually anything lol. Tomorrow is moving on to other libs that may be useful. Since the handling of model and map information, will likely be done through XML files, I also need to start evaluating XML parsers again; something I have absolutely no love for. Also, because of that, there’s no point in taking a few moments to write a simple config file parser, when the application requires an XML parser :-S.

Code wise, the main focus for the day was to be working on implementing a simple drop down console, but I haven’t had time to focus on it, due to the time and effort it takes to compile software in a Windows environment. Which is approximately 200% more trouble then a unix environment, or 90% higher if it’s a Linux application written by assholes who knew less about what they’re doing then the puts who wrote the tools 8=).

I’m interested in seeing what SDL_ttf can do for rendering the textual part of the console, but that requires freetype, lol. Freetype however is a very painless thing to setup under Windows, at least using MinGW and MSVC. Whether or not SDL_ttf will be so hunky dory, remains to be seen.

Also spent some time in evaluating the concept of using JavaScript as an embedded scripting language. Mozillas Spidermonkey seems to be the only engine that fits the bill: written in C. It’s also fairly portable and has one hell of a nice (JS)API , with out a doubt it’s gotta be a lovely way of embedding a language into your program. The only problem, the build system issues. I will explore it’s compilation under Windows but expect it to be a wash out. The comments about autotools alone, virtually make Spidermonkey something you can rule out of any sane programmers toolkit.  I’ve already learned about Python extension modules, but have never had time to look closely into embedding the interp into an application, but will do that also in time. Another thing to consider, is embedding Lua, a language I’ve never had an excuse to study, lol.

On the embedding a language thing, my thoughts are focused around in game scripting, more so then implementing the game in it. Although with the JSAPI, it wouldn’t be to tricky to do the entire game in JavaScript, as absurd as that might sound to the uninformed. For Stargella, the scripting needs can actually be integrated into the map data, in a fairly simple manor as firing positional events off to the game code. However the underlying code is meant to be (largely) shared across several games, and some (the tactical fps for example) will need much more useful scripting capabilities. Using shared objects written in C would be possible, but then maps would become non-platform independent, and I don’t want that. Quakes solution, was inventing their own C based language, and to a lesser extent the Q3VM, but ahem, I’m not quite going to do that :-P.

Some how, the idea of scripting the game system using JavaScript is still an attractive idea…. but do I really want to live with compiling Spidermonkey in order to do it?

Having a bit of time free, I’ve elected to work on my games resource sub system. Overall, the whole game is a lot like Id Tech 3 in architecture, because it’s exactly the kind of architecture I want, even if I don’t want to put up with the engine that powered Quake III: Arena so excellently.

For the resource loading, what I want is for a configuration file to define what packages should be loaded, kind of like a PATH for zip files. When something needs to be loaded, it’ll be be found at a path, like foo.zip:/what/file.ext— telling the sub system to locate foo.zip in the game or user data directory, then return a handle to the /what/file.ext stored inside of it. As opposed to the more Id approach, where file naming, e.g. pak0.pk3, pak1.pk3, … controls the loading order, I want my game to use a config file to handle that. Because personally, I think having to remember which machine friendly name a resource resides at, is a pain in the arse for making maps and mods >_>.

Because I’m running things very light on dependencies, mostly because compiling stuff on Windows is a bitch (stupid programmers) and many useful items are not easily available on FreeBSD. So things will probably be built on top of zlib, using contrib/minizip as an example of using zlib with the ZIP format.

It’s been an easier day then expected: ma wasn’t feeling up to working, so instead I ended up in the super market >_>. On the upside, financial woes aside, I got to spend more time focused on programming :-D.

Lately I’ve been working on the computer games I want to build, and finally came to a working title for `StarfighterGame` –> Stargella. With a sub title of vengeance or revenge, which is a perfect title for allowing sequals and expansion packs to be made ^_^. The concept is much like the classic arcade games: simple mindless action. I remember Galaxian and Galaga most fondly, as games that I played in front of Pizza hut as a child. The best free “Clone” that I’ve seen is xgalaga, but it leaves a lot to be desired. What I want, is the kind of game you sit there and play for hours, and suddenly realise you’ve been sitting in front of a computer for the last 6 weeks with a long beard and a torn house coat lol.

The story is simple, also like the great classics: you’ve returned home to the beautiful world of Freyja to discover it is being ravaged by the evil Viekasiekian Empire. Realising that you are the last able bodied star fighter pilot on Freyja, you dive into battle: pushing the Viekasiekian forces back off into space for the final showdown against Emperor Zurick.Game play obviously being in the overhead shooter style of Galaxian and Centipede, but unlike the classics, I want the ship to have full range of movement with the mouse cursor, instead of being constrained to say, left and right, ala space invaders.

Calling the planet Freyja, is meant to encourage the concept that the planet is a beautiful paradise. Like wise, the name of the lead baddy is named in hnour of the graveyard scene from Shakepeare’s Hamlet—Alas poor Yorick, I knew him well! The intention here, being to thoughts of death and such. After all the Viekasikians are meant to be evil ;). Geeze, try to say that three times fast without twisting your tongue in a loop!

Portability concerns have caused me to have to largely ‘drop’ python from the mixture, along with all high level solutions for general rendering and game development tasks. FreeBSD is a horrible platform for developing a video game on, IMHO, unless you like the low level stuff. So, I’m using a common denominator of fairly ANSI C / ISO C89 compliant code, with SDL as the principal backends for graphics and input handling.

It’s also kind of hilarious, trying to maintain a code base that supports both the GNU C++ and Microsoft Visual C++ compilers, using a *subset* of common C++, is actually painful. However using a fairly common dialect of standard’ish C in GCC/Visual C++ is quite less painful. This is principally because MSVCs concept of C programming is more or less 20 years behind the rest of the world 8=).

and if anyone else dares to fucking interrupt me while writing this post, you’re going to be flung out a damn fucking window!

Something I would do just for fun ;)

Build a modernized Galaga like game, that is simple, fun, highly addictive, and could be played for countless hours until you forget what day of the week it is — without needing quarters xD. Most definitely one made for a fast pace and long-haul style of play, like old arcade games, hehe.

It would also be a fun way to learn a few libraries ^_^.