Making multiplayer work

February 25, 2009
Development

At first, implementing a multiplayer system beyond the network code itself seemed a rather trivial task – I had been given a game concept already proved to work quite well. But the further this project progressed, the more complex did the actual implementation of multiplayer turn out to be, and I’d like to mention a few of the difficulties that I faced (and still am facing) related to this.

Fluffy things

Excessive co-operation

Imagining a bunch of players standing at the far end of the ice, each covering a portion of the screen in minigun fire, made me rather aware of this relatively big problem at an early point, and sadly I haven’t been able to test this very extensively as of yet. The current plan is to allow a maximum of four active players at once, so as to not crowd the icy field too much.

Difficulty scaling

In the original game, the difficulty in co-op mode was ramped up by increasing the rate at which seals appeared. This is currently the same method I am using as well, but finding the exact formulae for this is not an easy task, and would also require thorough testing. The problem with having many enemies is that splash weapons such as the M79 or the grenades may easily become overpowered and possibly greatly impede the money income of a merry grenadier’s companions. Since the actual field of play in Seal Hunter is bigger than that in the original, modifying the height of the field dynamically based on the number of players is also an idea that I’ve been meaning to look into – for example, keep the field the original size with 1-2 players but increasing it to its maximum as the player count increases further.

Round structure

Before a round can start, all players ingame must signal that they are ready, and only then will the actual game start. But what happens if a player joins while a round is still in progress? What happens if a player leaves? The current solutions to those issues are to force a joining player to spectate until the round is over, and if a player leaves mid-game the enemy spawn timers will dynamically adjust to suit the number of players still there. And any money the leaver earned, or any weapons that he bought, will be lost forever. I’m not entirely happy with this second solution, but it’s simple. Again, further testing will prove just how good this concept might be.

If any readers would have any alternative ideas to the problems listed above, feel free to give me your input below. Thanks!

The First Prototype

February 19, 2009
Development, History

Thanks to a prolonged exposure of The Seal Hunter and a three month Internet outage, I finally got bored enough to actually open up Dev-C++ (a (very bad) C++ IDE, for those who don’t know already) to see if I actually would manage to make anything more graphical than a console application that asked the user for their age. As it were, the only library I had available to me was one called Allegro – so I made the only logical decision to create a simple pong clone. I’m glad you aren’t able to see the code in that one; it’s downright terrible. But then again, so is Seal Hunter’s. ;) Anyhow, soon as I felt a bit more comfortable I simply ripped the main ice climber graphic from The Seal Hunter, and actually managed to have him walk around on the ice without it looking all too terrible. (Well, there were no real animations, so it actually looked really terrible.)

Have a look at the two screenshots for a comparison that proves, mainly, how far things have progressed since this first prototype and how utterly utterly bad said prototype was.

The first SH prototype

The version today

…Yeahhh. The first screenshot is from the oldest version of SH I still have, and its executable weighs in at a stunning 64 KB – and even then, it took me 237 builds to get that far! Things were really quite experimental back then, and looking back, I had some really weird ideas in mind before deciding on the ‘simpler’ remake with multiplayer support. The more observant readers might notice that in the first picture there’s an actual crosshair that could be used to actually shoot in any which direction you wanted; including to the right of the actual player. Needless to say, this idea was dropped rather swiftly – to put it bluntly it kind of ruined the original concept, and very thoroughly at that. There’s no animations at all, and the blood is very crude looking. What is interesting to notice is that there was a limit to how far a bullet could travel in this version – after reaching that limit, it’d simply shred into the ice and cause a bit of snow and ice to spray from its point of impact.

As for the second second screenshot, I’ll just let that be a teaser for the time being. There’s still a rather long way to go before actually discussing the version I’ve got today. Oh, and in case you were wondering: there’s no set date when a possible beta phase will be reached, or when the game itself will actually be finished. As mentioned earlier, Real Life™ and procrastination goes a long way in slowing these things down.

Until next time, adios!

In the Beginning

February 16, 2009
Development, History

I figured giving a quick account of how this project came to be would be in order.

It all started one rather snowy day in the year of 2007. After having just finished a four hour web design class, a senior student walked into the room to showcase his latest findings in the field of gaming excellence: a rather compact game named The Seal Hunter, where the player entered the thick threads of a Norwegian fisherman seeking revenge on the seal creatures stealing his catch. With guns. Big guns. And blood! Tons of it.

The original The Seal Hunter

Needless to say, I was enthralled. This simple concept of killing seals, assuring that not a single brown-furred mammal managed to creep past you, made for a most pleasant gaming experience that could be thoroughly enjoyed in about five minutes, even though the muttered phrase “just one more go” usually extended those to about half an hour.

The only form of multiplayer offered by The Seal Hunter was a two player hotseat, which in itself was a plethora of amusement for two friends huddled in front of a keyboard. However, I wished for more; multiplayer over the Internet with others, for one, which ended up being the basic premise for my own version of Seal Hunter (in addition to the original concept of “blood and gore is fun”, I suppose). So I decided to try and make a quick prototype in C++, just to find out if I had enough know-how to make a full game out of it. After managing to construct a rather ridiculous test level where seals appeared randomly and with no animations whatsoever (aiming using the mouse was even possible at this point!) I had a word with the authors of the original game, asking whether or not I was allowed to develop a version of my own. This seems like a good moment to throw out a big “thank you” to them once again, because as it is they are a pair of really nice guys who were rather quick to let me brutally tear their game apart. Thankfully, they also allowed me to use their art assets, which saved the project from instantaneous doom as my efforts when it comes to game sprites usually results in flood-filled blobs. As I turned senior myself, I even managed to sign up Seal Hunter as my graduation project.

And a little bit more than a year later, this is where we are now. A lot of progress has been made (despite great deeds of procrastination) and I’m quite happy with where things are heading right now. Over the next few weeks I’ll try to gradually work my way up from the initial prototype to where development currently is, to give you an idea of how this journey has progressed.

We are live!

February 14, 2009
Announcements

Kind of, at least.

Welcome to the development and news blog for a game currently in development, and also currently titled “Seal Hunter”. Don’t fret, however; it’s not a complete rip of The Seal Hunter, but instead a remake of the original concept with a number of changes and new features to it. Currently, Seal Hunter has been under development since February 2008 and has come a fair way since the start, and has moved from being a simple hobby of mine to becoming my final project for high school.

Anyhow, I digress. Hopefully there will be more content soon, with semi-regular updates on how the game development is coming along – at least as long as Real Life™ allows me enough time to do so.

See you again soon!