What I have worked on
I have an efficient multiplayer isometric shooter game in place, with a master-server/lobby and a system for hosting games locally or on a publicly-accessible server. The map maker works pretty well. The game needs a lot more graphics. However, it all runs nicely and is pretty light-weight in terms of server load so it’s feasible to run lots of game instances on a single physical server.
What I have tried and why they weren’t ideal
The first version (0.1) ran exclusively on a player’s local network rather than on the public internet – I had in mind a LAN game with phones as controllers. This limited the mapsize to one screen, and to be honest is too limiting in terms of maximising the audience… the fact is, most people want to play online, and making a game LAN-only is too limiting.
The second version (0.2) incorporated a multiplayer lobby, larger scrolling maps, and hosted games on my Linux server – so this allows online multiplayer games. Game instances started up on request and the requesting player set the various game difficulty settings, zombie amounts, etc. This worked better, but is still focusing on casual, instanced gameplay and if there’s no-one else setting up a game when you hit the lobby, there’s not much of a reason to stick around. You can download version 0.2 here (Windows only).
Casual multiplayer games with instanced servers can be great (think King Arthur’s Gold), and so can casual multiplayer games with a more persistent-world/MMO style (e.g. Realm of the Mad God). It’s important that players get some sense of levelling up/unlocking stuff.
What I’m currently leaning towards is:
a game lobby that gives you a choice of several maps to join – these maps are basically running 24/7 rather than starting on-demand. you’ll get added to whichever team currently has fewest players. Each map will have predetermined difficulty settings. So there’s a mix of maps and settings available to choose from, and it’s very easy to pop in and play with no setting-up decisions.
You unlock characters over days/weeks based on accumulated score (which is scaled by difficulty of settings on map), but you’ll level up each character from zero in each game you join.. dying+respawning loses some of your level but not all. There can be a persistent per-map high score table.
There will probably have to be some AI-controlled characters filling out the teams if there aren’t enough human players. This is quite challenging to implement, however there’s probably no way around it.
there can be a way of uploading maps to run as test zones on-demand, and of requesting that these get added as official maps.
Not an MMO then?
Open-world MMO is cool, although it reduces the ‘just join and play’ appeal. I’m leaning towards *not* adding MMO-like world persistence. I have done quite a bit of work on zone servers etc. so I’d be confident of segmenting a single open-world into zone servers, for everyone to play in one world at once. To take this approach would make the game a larger undertaking, there’d be considerations of equipment, crafting, etc.. it would certainly add a different dimension to the idea. But it would also take away some of the simplicity of play, as well as being a lot more work.