I have been working at a snail's pace on this project from the beginning of time (or at least it feels that way). Originally a set of utilities written in qBasic for font and vector object creation, I have been using Python since 2003 to code this perhaps-a-little-to-ambitious game. While the specifics have changed over time, the overall goals have remained constant:
- A large, persistent world.
- High interactivity between player, NPCs, and environment.
- Adaptive AI that counteracts player behavior.
- Extensibility, flexibility, and portability.
- User modifiable and amendable content.
"Well", you may say to yourself, "that sound like what any game would want to have!"
"Correct!" I would say.
Being the type of person who was basically nursed from infancy on video games, from pong and asteriods to Final Fantasy VII and Halflife, I've been a witness to many different concepts and approaches to game design. Nearly all games, though, lack the ability for the user to alter the game they have spent $50 on and gotten bored of in a month. Operation Flashpoint by Codemasters managed to avoid this problem by allowing users to create missions, add content, and otherwise tweak the game to their liking. Needless to say, the hundreds of hours I've spent playing that game weren't spent battling through the (lame) campaigns!
So, in the hopes of both paying homage to the oldies, such as Jagged Alliance and Syndicate, as well as newer games, eg Grand Theft Auto and Metal Gear, I've settled on a general concept:
- An isometric map (such as that in Jagged Alliance)
- Large, persistent world (eg Ultima VII or GTA)
- Assignable behavior chains (FFXII)
- Customizable player/NPC avatars (Ultima Online)
- Complex plot/behavior mechanics (Covert Action)
- Randomized maps, objects, plots (to improve replay value)
- "Plus much more..."
Recently, I have scrapped the original togoAPI (emptyRun, blankRun, etc) and subsequent versions of the self-authored game engine in favor of a third-party engine, Opioid2D, that is far superior to anything I could come up with at this point. Also, I've been unable to focus on content other than for testing purposes while developing the engine, as it is a very time consuming process. Thankfully, the Opioid2D engine has much of the functionality that I'd been trying to code myself (with some exceptions).