Previous Blog Next Blog
Prev/Next Blog
by date

Online multiplayer on the brain

Online multiplayer on the brain
Name:Andrew Douglas
Date Posted:Jan 20, 2007
Rating:Not Rated
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Andrew Douglas

Blog post
So I just posted up a HUGE write up (and it's only the first in a series) on what Jabber is and why you should be using it in your online multiplayer games. If you have a few minutes you should definitely, definitely check it out. I didn't cross post it here because it's not really GG specific, though some of the source code that I'll be putting out may come in handy for some of you Torque X'ers.

The reason why I wanted to post here was because I really wanted to find out what you all thought about what was really needed to break down the online multiplayer game barriers that apparently so many indie games have.

See, my impression was that it was just the casual arena that was having problems with online games, but a quick check on Manifesto games proved that online multiplayer is still a sorely under-represented market in the indie game space. I think it's my "Garage Games" bias that multiplayer should be baked in every game, even if I've run into issues with the way Garage Games has dealt with the whole "NAT traversal" issue. It's really surprising how difficult it is for indie's to actually deliver a successful online multiplayer game.

Some of my thoughts - but please, I'd love to get feedback from you on why online isn't bigger in the indie game development scene.

1. No "universal" networking layer. Between NAT's and the lack of adoption of IPv6, the dichotomy of the UDP and TCP stacks and the plethora of poorly implemented or poorly documented networking libraries out there, it's really a mess. Things like Windows Communication Foundation (aka Indigo) is a really neat concept to try to abstract the networking layer, but it's essentially a proprietary system, which has it's own limitations and issues. Network layers should be better than this in 2007!
2. No easy to use/open "toolkits" for higher level online game features such as leader boards and friends management. I guess what I want is an open alternative to xbox live. Bits and pieces of it may exist, but show me one good indie game with online friend management. That should be proof that we need to do better. Live Anywhere may be designed to incorporate "casual" games on windows, but it certainly isn't designed for indie's. Argh!
3. We don't use the tools we have. Jabber has been around since, what, 1999 - where are the games built on Jabber? It's as close to a universal networking layer as you can get (especially if you sprinkle in Jingle) and it provides a great framework for building higher level online game features in a "federated" way so that your one online identity could be used across games for a true xbox live competitor. So why isn't anyone talking about it, using it or at least using some equivalent that I don't know about. Why are we stuck with making online multiplayer games the way we did back in the late 90's?

Maybe I'm just frustrated and feeling a little worn out by "blazing a trail", but what issues do you see that are preventing indie's from making great online games? How can we solve these problems? Show me some successes too, if you've got them, so I don't feel quite so alone in tackling these problems. Thanks!

(oh yeah, I promised a screenshot of the UI for My Bogle's "Friends Play Free" interface, but I've been busy building out our server architecture... which has really come a long way. I'm hoping to get back to the UI battlefield this weekend).

-Andrew Douglas
theoreticalgames.com

Recent Blog Posts
List:03/03/07 - Cooperative Control: Hello Whirled!
01/27/07 - Torque X - Break through/Break down
01/20/07 - Online multiplayer on the brain
01/06/07 - My Bogle moving to Torque X
09/06/06 - Alpha and Dragon*Con
08/14/06 - My Bogle Sculpture
07/24/06 - My Bōgle: Rules Rules Rules
07/21/06 - Funniest Game Ever?

Submit ResourceSubmit your own resources!

Jason Reid   (Jan 20, 2007 at 16:01 GMT)
That's really got me thinking, Andrew. An indie-friendly alternative to XBL...unfortunately, I haven't used XBL in a few years, and have only barely seen XBL for the 360. So I only have some vague ideas about exactly what those types of gamers would expect in terms of functionality. But I could see that as being something really interesting to work on.

Graydon Metcalfe   (Jan 20, 2007 at 23:05 GMT)
Would they not want what people always want, simplicity and ease of use mixed with as much controllable raw power.

Jason Reid   (Jan 20, 2007 at 23:34 GMT)
Well, as far as developers who would hook their games into such a system, yeah, I have a good idea of what folks like that generally want in terms of freedom to do what they want coupled with ease of integration.

But the players themselves...how they expect their online identity, leaderboards, friends, "achievements", etc. to work, look, and feel...that's the stuff I'm less knowledgable about :)

Andrew Douglas   (Jan 21, 2007 at 00:48 GMT)
Yeah, I think my questions were more related to why it seems indie developers aren't (apparently) able to deliver great online games in any kind of quantity. If part of the answer is - because they aren't familiar with what constitutes a great online experience (such as xbox live), then that's kinda an answer in itself. :)

I do want to lower the barrier for online play for players too, but that's a whole separate topic and one I've ranted about at length in various places...

@Graydon: so for torque based games, obviously that's using the tools included in torque... the thing is that those tools are almost entirely focused on building "dedicated server" solutions. Dedicated servers definitely have their advantages but their disadvantages (such as leaving community features, friends management and such completely up to the developer as well as not really addressing the NAT traversal issue for true p2p gaming) means that the path of least resistance for developers is to release a less than stellar online experience for your "average player" (ie, more casual or one used to a console experience). I would think that it would really be up to Garage Games then (or at least the GG community) to deliver the tools necessary to make those great online experiences possible for indies.

Not everyone has the torque networking code at their disposal though... and while I realize this is probably the wrong forum for discussing non-torque related networking libraries and such, I was kinda hoping someone who has struggled with the limitations of torque for building online games for the average player and felt like they had solved those problems would speak up with how they did it. :) My understanding is that certain games (like Zap! I believe) end up pulling in some of the nat traversal logic in from TNL but that still doesn't make creating community features in torque any easier.

I'm not trying to rag on Garage Games or Torque - I'm a huge fan. I certainly don't expect them to have the answers to every problem either. But as indie developers, what do we need to do in order to lower the bar for developers to make great online indie games possible for everyone?

Jason Reid   (Jan 21, 2007 at 01:20 GMT)
Well, I think you're talking about two different things now. There's the problem of "how do we deliver a great, in-game, multiplayer experience" and then there's "how do we build on that and also deliver a great, online community experience" (for lack of better terms).

Of course, it's best when both of these things are designed together, from the beginning. However, the "in-game" experience is where Torque (and many other game engines) already really shine...they've done the heaving lifting in terms of tight, high-performance network programming where speed and data integrity are both of utmost importance, while perhaps sacrificing "easy extensibility" for anybody but advanced network programmers. It's a solved problem already in many engines, and even though many of them go the dedicated server route, I think it would be quite an undertaking to try and come up with a "universal solution".

The community experience, on the other hand, could conceivably be done up so that it's possible for many games to "plug into it", regardless of how they implement their online play. Things like the concept of presence, friends, leaderboards, achievements, etc _could_ be done in a way that optimizes for things like feature set and ease of integration...the things that developers crave...while not having to worry as much about network performance. Well, as much.

The trickiest issue I can see would be security. MS has a big advantage going in, in that the XBox is a closed platform...I'm sure it's "possible" to hack it and tell XBL that you've gotten a hojillion points in Ms. Pac-Man, but I'm sure it would be much easier to do so to a PC game's leaderboards.

Andrew Douglas   (Jan 21, 2007 at 02:47 GMT)
Well, the fact that it's "two different things" is an issue, but I don't think I'm saying that in game experiences using the torque networking code are bad - assuming you own TGE/TGE:A and have access to that code. TGB/Torque X are left mostly to their own devices. But because it is dedicated servers, it's not really something that low budget indies can really afford to do... so I guess my point was - it's not without it's flaws.

I don't think a universal Library is out of the realm of possibility - an entirely new universal networking paradigm is probably asking tooo much even for me :)

Security is a solvable problem I think - xbox live does use it's closed nature to it's advantage but a lot of problems could be solved with things like x.509 certificates and such. Hacks are inevitable though.

I appreciate the feedback!
-Andrew

Graydon Metcalfe   (Jan 21, 2007 at 04:49 GMT)
Would it be possible to create a flash based chat environment and link it your game? List take an existing flash chat program for like $5 and get the game and the chat to communicate with relative ease?

Andrew Douglas   (Jan 21, 2007 at 14:12 GMT)
It's actually something I tried to work out the logistics of. There are libraries such as XIFF for flash chat, and in theory, they could be integrated with Torque - but I don't think it really solves the problems of making it accessible to more developers because it would still be quite a "beast" to put together. A better solution would really be to develop a scriptable wrapper around libjingle and to create the GUI controls for things like roster management... but honestly that's a project that's just too large in scope for me alone.
-Andrew

Graydon Metcalfe   (Jan 21, 2007 at 22:20 GMT)
If I possessed the skill set I would help as your posts that I have read rather have me hooked on the issue with the multiplayer. If I in any way could help feel free to ask.

Andrew Douglas   (Jan 21, 2007 at 23:03 GMT)
Well, it's very much appreciated. I'm glad I'm not the only one who sees a benefit to addressing the issue... and I think that's what I wanted to hear most. My plan (which is really just getting kicked off with the article linked to above) is to use the skills and knowledge that I actually do have to solve the problem at hand - which is to go with a .net specific solution. There will definitely be more news and articles (as well as code) to come. Thanks again for the feedback!
-Andrew

You must be a member and be logged in to either append comments or rate this resource.