SUGGESTION: Multiplayer ability

Started by Fritos, Mon 30/01/2006 11:09:26

Previous topic - Next topic

Fritos

I do know of the TCP/IP plugin, but it looks as though it has gone the way of the wind. Now I know there will be opinions of this, but I think having the ability could open up more possibilites of the engine.

Just mine 2 cents. I'm a very big MMO fan and I think it would be VERY fun to have AGS have this ability to be able to make out own little MMO's. :)

magintz

Well the reason the TCP/IP plugin failed was, as far as I am aware, because it contained very little documentation if any, and required a lot of manual input by the user. The plugin would only set up the connection so that both players could walk and talk and both see this. With making an MMORPG all characters would have to be in 1 .crm file, and not only that it would require both people to be on at one time to do anything.

It has a lot of complications.
When I was a little kid we had a sand box. It was a quicksand box. I was an only child... eventually.

Scorpiorus

http://www.adventuregamestudio.co.uk/yabb/index.php?topic=24604.msg306367#msg306367

Although I agree it would be nice to have a multiplayer feature support built into the engine I doubt it is feasible to add such stuff without rewriting pretty much of engine's code (including the design of its framework I believe). And still it's rather difficult to make some sort of an easy to use multiplayer game creation system that would be suitable for various kinds of multiplayer games. Generally, each game may require its very own approach in terms of how its network support should be organized.

If you are talking about adding the basic functionality similar to what the TCP/IP plugin already offers, in my opinion it could be possible, but then again scripting a decent multiplayer game would require a lot of efforts to make it work properly (blocking functions, only-one-room-can-be-loaded-at-time issue, keeping all in sync, etc...).

As for MMO games, it may well be another story, as making it generally is a much more difficult task (this of course depends on how complex the game is) than an ordinary multiplayer game that usually supports up to 8/16/32 players. That's due to the fact the MMO games tend to operate with larger amounts of data to be trasfered among the players, hence additional approaches (ex: transfer politics based on density of players in the area) are required to minimize the amount of data to flow through the net, otherwise it can take up all of your bandwidth quite easily (just consider having 500 players happen to be in a single room with most of them decided to do something like, for example, chatting, etc. :) ).
So, a particular MMO game should better have its own structure (framework) based on the game world it represents.

SSH

I tried using the TCP/IP plugin just to make a 2-player game and that took a lot of working out and the thing crashed. Still don't know why and very hard to tell, so I gave up.
12

Fritos

Oh, my apologies on bringing up a old topic. I tried doing some searches here, but I always timed out.

Well, anyways. I was just doing some google's on some old online games, and alot looked more primitive than what AGS can do, so was just dreaming I 'spose.

Please feel free to lock/delete this thread if you wish.


lemmy101

#5
I doubt there's anything significant stopping you from being able to do a multiplayer game with AGS. It all comes down to having a good plug-in TCP API that is easy to use. I think AGS scripting is, especially now, powerful enough to cope with a multiplayer game.

A MMORPG though? I don't see why not, to be honest, but it'd be a lot of work...

here's what you'd need as far as I can see:

1) An up to date TCP/IP plug-in for AGS, obviously.

2) A server program, likely not written in AGS, which routed all messages from clients, and was aware of the game world you had created. It would store the states of everything in your world.

3) A system, either a plug-in or module, that took care of the states of objects and characters throughout your game world. A bit like the Character Control plug-in, but the actual states would be stored remotely on the server.

4) A client module, which accepted commands from a plug-in (which in turn got them from a TCP/IP connection) for all common actions such as "ChangeRoom", "ChangeView", "Say" etc etc. In the repeat_always_execute function you would then poll for messages from the server (via the plug-in) and execute any commands locally. This system would also have to request all states of objects/characters in a room from the server when you enter a new room.

5) You would need to have a maximum num of player characters allowed in a single room. Then you would need to create dummy characters to represent each of them. A player would select their avatar, which related to a specific range of views. Most likely dynamic sprites would be the better option to bypass any system limits (or a nice email to Pumaman? ;)) When a player entered a room on their client it would assign an unused character, poke in the name, views and everything else, and then recieve commands from the server whenever that player walked or said anything. If the maximum amount in a room is approached, then you would need to create another version of the room to share the load. This would be done on the server, and the AGS game would not know about it.

Plus more that I've not thought of, so I'd say it's by no means a small task :) but doable...

But the way I see it is... we're not in a shortage of MMORPG games. We have a shortage of traditional point-and-clicks... which is what I love about AGS.

Dan2552

Please, for using the TCP/IP plugin try looking at my game

I know the game isn't brilliant and stuff but atleast the multiplayer worked  :)

http://www.hingedshinobi.co.uk/axek/projects/lbapc/

it's in the AGS template file format.

Good luck with any multiplayer games

RickJ

Quote
If you are talking about adding the basic functionality similar to what the TCP/IP plugin already offers ...
I would be in favor of something basic like the TCP/IP plugin but cross platform.  This would allow AGS to go beyond mulitplayer stuff.  I think the remaining multi-player functinaliy could be managed by AGS Modules and the server could perhaps be some kind of PHP/MYSQL thing.

Pumaman

Before getting too hung up on the technicalities of this, have a read of this thread:
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=12421.0

It discusses the theory of how a multiplayer adventure game would work, and I don't believe it really reached any conclusions in the end; adventures don't generally lend themselves to multi-player.

Scorpiorus

Quote from: lemmy101 on Mon 30/01/2006 17:39:01
I doubt there's anything significant stopping you from being able to do a multiplayer game with AGS. It all comes down to having a good plug-in TCP API that is easy to use.
Theoretically, yes. But in practice one has to deal with the fact that internet connection is far from ideal and must be looked at as the unreliable one. Packets may come in a different order or may not come at all, latency issues that may reflect themselves to players in a form of lag (obviously it depends on how frequently the data needs to be updated, ex: realtime games in contrast with turn-based games). That's not really a big issue for LANs but it's the case for the world wide web where the distances are significantly greater. I in fact believe all of that is not that critical (and can be resolved) for adventure games unless, of course, there are some kind of fast-paced action elements here and there.

Quote from: Pumaman on Mon 30/01/2006 19:50:52
Before getting too hung up on the technicalities of this, have a read of this thread
I just reread that thread to refresh my memory and I entirely agree with all the obstacles the mutiplayer adventure games may reveal. On the other hand, many of them is a common case for all of the multiplayer games in general and is mainly caused by the players themselves who act in an improper obscene manner breaking implied rules, those are supposed to be based on confidence and respect between the players and can't be forced by the game. But something tells me it will be of less problem in regards to the adventure games community in general and especially to the AGS community in particular.
Anyway, to stay on topic, I believe a way to go would be to have an open source project (a script module?) that would make a use of the TCP/IP plugin functionalities, so that such games can be made to show how (if) it could practically work.

SMF spam blocked by CleanTalk