Times, trials, and turbulence.
The History of Skirmish.
This only scratches the surface of each of these projects, and my own history in game programming. Still, hopefully it will give a decent overview of the efforts I’ve exerted over the years towards creating my ideal online shooter game — nay — my dream game. It all began five long years ago…
2002 – “Bizlof War”
Back in my first post was where I first mentioned Skirmish Online. But it began far before that. The undying firey passion to create this online game began all the way back in 2002, five long years ago. This was when I was rather new to the idea of game programming; anything beyond a text adventure was “far out”. I was introduced by a friend to the online game creation utility known as BYOND, or, Build Your Own Net Dream. It uses a C#-meets-Python-like scripting language, and lets the developer build atop of their existing network and world code. You were constrained to their object-based networking system, and their 32×32 tile engine. Despite this, it was still enough power for a budding developer such as myself. It wasn’t long before I had created the first incarnation of my dream game, Bizlof War. The name was made up on-the-fly, but despite its look, it has no Russian background or relation. Who knows?
Bizlof War wasn’t that pretty, but after looking at the screenshots from the link at the top of this post, one can see a strong resemblance.
Bizlof War took place in a more futuristic setting than Skirmish, featuring weapons like railguns, plasma weapons, and allowing players to ‘warp’ to teammates. The damage per-shot was also lower than most games, allowing battles to take place for longer than a quick encounter. The characters were also broken up into ‘classes’, such as Soldier, Pulse Trooper, Commando, Stealth Op, and Weapons Expert, whereas certain weapons would only be usable by certain classes.
The game saw moderate popularity, but my inexperience in writing games combined with its performance/gameplay being hindered by BYOND itself (it was catered towards slow games like puzzles or RPGs) resulted in a less than optimal outcome. Still, there were several games hosted with 20+ players, which was a simply fantastic experience, and was what spurred me to keep on aiming for this ideal online game.
2002 – “Bizlof War: Tactics”
After Bizlof War‘s completion, development quickly began on a sequel, Bizlof War: Tactics. The idea behind this game was to encourage more tactical and stealthy gameplay, while keeping the overhead shooter aspect that I enjoyed in the first game.
Bullets became instantaneous, whereas the player would aim at a tile and click the mouse to fire a ‘burst’ from the selected weapon. This would be 1 round from pistols, 3-6 for SMGs/rifles, and 8+ for shotguns, with the rest somewhere in between. Recoil was also a factor, so battles wouldn’t become stand+click wars.
Another inclusion (which I loved) was gas grenades. They came in both the Chlorine (damaging) and Nerve-Gas (stunning) flavours, and continuously spawned gas-cloud entities that drifted and shifted about for the lifetime of the effect, blocking line-of-sight and dealing out its effects. It was neat to be able to trap someone in an office with a well-placed gas grenade, and wait around the corner with a shotgun for when they came rushing out, unawares.
The game worked on the idea of a ‘slotted inventory’, rather than classes. A player would choose items to have in his/her inventory prior to appearing in the game, each of which took up a certain number of the total seven slots they had (seen above). Items had no cost associated with them, so the player was free to experiment and customize their arsenal in whatever way seemed to best fit the play-style they wanted.
Bizlof War: Tactics also received a luke-warm response, although seemed to fare a little better than its predecessor. BYOND itself was still the factor that was limiting me. I had begun learning Pascal and Delphi in highschool at this point, so I planned to venture even further towards my dream game…
2004 – Bizlof War (Delphi)
After an intermission of a year or so (developing other games all the while), I found myself back with the online game fever, and it would not let go. It was time to leverage what I had learned with Delphi and try to make a ‘real’ online game.
Code was hastily slapped together, and very quickly (read: ~2 weeks) the game was vaguely playable online. Players could join, exit, chat, use weapons, and kill/be killed. It looked crude, but I was blown away by the fun of just a few players online gunning eachother down could provide.
After a couple more months of development flew by, it began actually taking on a semi-professional look:
I was absolutely ecstatic about how well everything was going, and how intense the battles were becoming. The gameplay followed along the vein of the first Bizlof War, taking on a futuristic theme with more fictional weaponry, and slower-moving bullets.
In terms of response, I saw far more interest than I had seen with my BYOND-based creations, which was to be expected after I had broken free of its constraints. No more 8-directional movement, tile-based movement, slow input reaction speeds, and inflexible network code. Things were far better than they were, but still, things were not good enough.
The code was sloppily written, on which I blame my naiveness at the time. I was still fairly new to programming, and this was the biggest game I had ever written. I also lacked practical knowledge about writing network code, so the networking was extremely inefficient. Once untraceable bugs started sprouting up and the network code was all but collapsing on itself, I gave a great sigh, and closed the project. It never even reached ‘public’ status.
2005 – Skirmish Online (1)
I had gained a lot of experience in the following year, and so I decided to undertake this project once again. This time I would opt for as visually pleasing of a game as possible to ensure success with future players. I chose to use OpenGL to wriet a 3D-overhead viewing style, combined with polygon-based maps. I was also especially pleased with the GUI system I had written.
As you can see, I focused on the visual components far more than I should have. This attempt didn’t even reach the networking phase before I realized that I was in over my head. I actually rewrote this all in C++ (the original being in Delphi), and starting integrating Newton before I decided that it was all too much.
I learned a lot while writing this attempt at my ideal game. The main lesson to be learned, however, was to keep your ambition in check. I wasn’t ready for a 3D game then, and I think I’m only barely ready for one now, 2 years later.
2006 – Skirmish Online (2)
I received the best response on this (and most recent) attempt at Skirmish, even though it too never reached the ‘public’ phase of operation. I wrote this in Delphi as well, and took the lessons that I had learned from my last two attempts: 1) write code in a clean manner that will allow for long-term use, and 2) don’t get overambitious with the features.
As a result, Skirmish used a tile engine for its map system, and a simplified GUI system. I had learned tons in the last year about network programming, so I wrote much better network code.
Unfortunately, despite my vast improvements, “better” is still a very relative term. I made great strides, but still fell behind. The code and networking again became unwieldy, bugs crept up around the corners, and I found myself back where I was before. It was here I learned my final (major) lesson, that planning one’s code in advance is just as important as planning one’s game/gameplay in advance.
2007 – Project Skirmish
This is where things stand now. Project Skirmish is a temporary name for the game until something more original comes to the surface. I’m writing this game now, using the code I wrote back in July, which saves me a month of writing broilerplate engine code.
I’m going to be taking full advantage of the lessons that I have learned over the years, and carefully write every piece to the puzzle that is my dream game. I’ve certainly had my ups and downs with game projects, but, as you can see, the plan to create this game has never wavered or faded away.
And so, I’m sure it’s very obvious what my ‘new’ game project is. I consider the diversions of the last couple of months as a simple intermission for my motivation to resurface, and thus Project Skirmish gets resumed. Refactoring has already begun in the intent of keeping organized code, and the game itself has begun to be developed. Stay tuned, for sure.
The dream shall be attained!