Coming back after not touching the code for a week certainly gives me some perspective. I see my code with a whole new light and am feeling less cautious about making radical changes ... and I have this nagging desire to switch from Pygame to Pyglet, having read such wonderful things about it on Selkrank's journal. I will persist in my resistance though.
And honestly, this Isostrat project is beyond my ability; I am developing the ability to handle it as I make it, which makes it that much more difficult. I didn't take on a smaller project because I didn't think it'd be as interesting, but I know that every programming project is about 100x as hard as anyone thinks it is going in, so I should have intentionally undershot my expectations so that they'd be somewhere close to reasonable.
But now I'm committed to this, here I am sticking to it. At least when I take on a project well beyond any reasonable expectations I learn a lot. This reminds me of the Cosmosis project I got myself into in which, with almost no coding experience, I expected (with an intelligent partner to work which, I can't forget) to interface external hardware with a PC, network PCs, perform distributed rendering, and that would be OpenGL rendering (with rock-bottom experience with OpenGL on both our parts), as well as implement some kind of artificial complexity generator in a programming language that I just started learned (Python) when I'd just learned to code the year before. Madness! I'm amazed we got as far as we did, in retrospect, because we bit off a huge amount more than anyone ought to chew and by combining all kinds of Unknowns we increased the complexity of the problem geometrically.
It's like that. Except this time it's just me, and I'm trying to make something a bit less insane but a bit more polished.
Madness! But I said I'd do it, so I have to follow through. I have this thing about keeping my word.
I've updated my portfolio a bit, as you can see here. My intention was to post this publicly on Gamedev with a nice blurb to try to get some more work, but then...
More Freelance Work!
I stumbled upon another 'client'; And this time I'll be doing pixel-art tiles and character animations: Cool. (Not that I don't love my current clients, of course, I just need to make enough money to pay the bills!) I'm going to hold off posting my portfolio publicly until I see just how much work this is going to be.
Not that I wouldn't listen to an offer, ya know, if someone happened to stumble upon this and wanted to hire me to do some work.
Sid Meier's Alpha Centauri
Sid Meier's Alpha Centauri (which should perhaps be called "Brian Reynold's Alpha Centauri") is the pinnacle of the Civilization series -- and it's 9 years old! I mention it because I played far too much of it over the holiday and have been impressed by the atmosphere and the elegant social engineering model and meanwhile less impressed by the AI and the tile-based micromanagement (which together are the bane of the Civilization games). The key to destroying the AI at the highest difficulty, where it gets huge advantages in production, lies in 'gaming' the way you interact with the tile map (and some min/maxing of the social engineering system). The AI does not understand how to safely advance a wave of attack or how to attack from unexpected angles so a human player can set up a perfect killing field and just murder AI troops as they complacently walk into their own doom. And the AI usually sucks at terraforming and otherwise exploiting the social engineering system.
If the AI can't be smart enough to avoid these problems, perhaps one can shift the gameplay away from a focus on the weak (and often tedious) areas to give the AIs and the human player a more similar field to think on. In other words, remove those aspects of micromanagement which can get boring and allow humans to rock the AIs with ease.
Which is just what I want to do.
Guns, Germs, and Steel
And I've been reading Guns, Germans, and Steel by Jared Diamond. It's a fascinating book, and I recommend it to any who is trying to model any sort of human civilization. While reading it came to mind how invested game design is in copying its predecessors, and not necessarily in the best ways. Games tend to be designed based upon the models other games were built on, not upon external references to the subject the game is supposed to be about (or an equivalent analogue). So games tend to both be extremely similar to one another and to make the same mistakes again and again. They work within the same theoretical model as every other game, instead of researching secondary sources (eg. history books) game-makers based their games on tenth-removed D&D clones, or something. The moral: The D&D Player's Manual is not an appropriate place to learn about medieval combat. Read a book about medieval combat. Don't make a Civ game based on the game Civilization -- read a book about history. It'll blow you away with all the cool ideas there are to turn into gameplay elements.
It's a problem of lazy thinking making for poor design; What blew my mind a month or two ago was when some kid posted an idea for an MMORPG (you know the story) and thought that it was original to have a psychic melee fighter class called a "Zealot". Starcraft much? But he thought this was original; Incredible! And that's not even addressing the issue of it being a WoW-clone, which is on some level a MUD clone, which are on some level clones of D&D, which stole from Tolkein who, for occasionally being a reactionary Romantic of sorts, was at least a creative dude who based his work on original sources.
(Not that I don't get a warm and fuzzy nostalgic pleasure out of trashy fantasy settings, I'll admit.)
Entire worlds of ideas are waiting to be discovered right outside the game design ghetto!
Or am I just a grump?
Apologies. Real updates will continue shortly.