AGS 3.x has (will have) multiplayer support or not?

Started by Sledgy, Wed 02/12/2009 03:29:22

Previous topic - Next topic

Sledgy

We very want create game like Counter-Strike with Space Quest characters in 2D (Sequel Police vs. Rebellion guys): SQ Online-Strike


Smth like this -




I tried AGS + Delphi (like net-server) via FTP, then txt-files, then only in Delphi and seems Delphi is sux for it, or I'm a bad Delphi-multiplayer-programmer)


So it'd cool, if AGS 3.x can use multiplayer support! What's up with this function? It's so hard for release?

I heard about bug-plugins for AGS-multiplayering, but it's a lot 'buggable' >:(

poc301

I might be able to chime in here...

I read the recent interview in the blog that CJ gave, and he is really pressed for time at the moment.  He said that he is having trouble just making the existing version of AGS stable, fixing bugs and the like.  I wouldn't expect a new version for quite some time.

I also remember at some point someone else asking about this, and the reply being that it was too complicated to work into the app.  I dunno though, times have changed :)

-Bill

Wonkyth

I've had thoughts about making a new TCP/IP plugin, but as I already have 23 other projects, I might leave it for a while...
"But with a ninja on your face, you live longer!"

Sledgy

wonkyth, so you has TCP/IP plugin for another AGS version or it doesn't work correctly?

Khris

I really don't want to discourage you, but AGS isn't built for this kind of thing. For a networked multiplayer game you'd need a server client structure. As in, a server processes all user inputs the clients send, then replies with what happens.
For this to work properly, there can't be any blocking events, and every client has to constantly update all movement and actions of the other players.
Basically you'd have to use AGS as basement and build a skyscraper on top of it, in terms of how useful the existing engine will be.
You might be able to pull this off doing a shooter, but you'll still have to code the server.
Having a working TCP/IP plugin won't magically solve these problems, but you seem to be aware of the huge load of work involved.

I actually tried my hand at this once, using txt files and Java apps as client and server, but it became such a mess very quickly that I decided to drop it.

poc301


Sledgy

But maybe there'll be special AGS version for multiplayer games ;)

And just put commands, ud, SendMessage(string); in 'repeatable' room function. And then catch strings from other players via GetMessage(numplayer, string), then you can change some parameters, for example.

I used it via AGS saving/loading txt-files and Delphi-soft server. But it was very slow, because of Delphi.

Wyz

Well, I think it is doable, and I also might have an idea how to do it, but that does not change the fact it's a lot of work. I'm willing to give it a whirl if enough people find a use for it. I don't have a lot of experience with the AGS API, but for the idea I'm having it is not really required.

The idea
I was thinking of a TCP/IP plug-in that uses threads so the communication does not need to be fully synchronised. I don't have a clue if a plug-in like this already exists. Well, there are a few problems (apart from API support problems).

- As Khris pointed out, you need some sort of client/server protocol, since a peer to peer protocol is not really reliable. (it could be, but that takes this thing to a whole new level) As a solution I was thinking allowing a player to connect to a game of somebody already playing.

- Next problem is synchronising the game of the connecting player. This problem should be solved apart from the TCP/IP protocol. This means, you need to find a way to keep the games synchronised yourself (by copying the actual state or replication). Not fairly trivial, but still possible.

- Finally, the problem of save games. A connection is never persistent, and when loading a coop game, you somehow need to revive the connection. This is also not a trivial problem, but can be avoided completely when taking care of the previous two problems. If both games are indentical, one of the players saves his game. At a later time he loads this game. The other player connects to this game, and his own game synchronises.

Conclusion
A TCP/IP plug-in is only the tip of the iceberg. After that you must be sure your synchronisation is spot on, certainly not easy. Also you need to worry about things like compatibility and routers/firewalls. But if you deal with all that, it's perfectly possible.  ;D
Life is like an adventure without the pixel hunts.

Dualnames

I'm going to add that the 99.9% of the forum members that type into these kind of topics, don't know how, or haven't used the TCP/IP plugin. I'm quite certain, that none but the author has managed to make it work. And there's no kind of a good manual written for it, because to be honest, it's really too technical for me.

Summing up...don't bother.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Wyz

Well, I'll have a final word on this. A networking plug-in does not have to be very complex, frankly, you don't have to know anything about TCP/IP. You could make a system like Sledgy said, with a SendMessage function, and a GetMessage event.
Or you could have shared variables, which can be locked at times. It's all perfectly possible, but I don't think a lot of people are going to use it, or incorparate it in a way that is usefull. ;) But if a few users like to give it a try, they could send me a PM.
Life is like an adventure without the pixel hunts.

DoorKnobHandle

I actually still find this very interesting. All I'd need would be a way to send data (integers, floats, then maybe strings later on) from one client to the other.

I actually remember writing a little application with the use of some plugin (was it the TCP/IP one, don't remember exactly) which had Roger go around and then "say" the source code from a webpage. So, for example I chose "google.com" and he would speak the HTML source code of that page like "<head><title>Google</title></head>" etc. I found that pretty nifty! :D

Wyz

I'll look in to it when I have time (some where in the future... ;))
Life is like an adventure without the pixel hunts.

Amiga1

I think that perhaps the most amazing potential for multiplayer ags engine powered games could be drawn from the board games such as hero quest and dungeons and dragons,
one player plays the part of all the enemies and various components of the arena and aims to prevent the players escaping with the treasure, rescue a hostage or slay an evil wizard/dragon etc.
The way a computer can automatically reveal and hide things, or indeed a player like (frodo can put on a ring to become invisible ) are all things that its hard to do on the board but would work well on the screen.
satisfying battle chess animations would also be welcome.

so much more can be done with todays internet and computer power.
A game called Banna saga demonstrates this but unfortunately is not an actual (hero quest type adventure)
https://www.youtube.com/watch?v=IkYhjCMfyl4


KodiakBehr

This is what I anticipate the AGS Awards client will look like next year.

Also, I'm not a mod, and I don't play one on television, but this is a hell of an old thread to necro just to mention that multiplayer games are made with computers and internet.

Mandle

Quote from: KodiakBehr on Mon 04/05/2015 22:40:43
Also, I'm not a mod, and I don't play one on television, but this is a hell of an old thread to necro just to mention that multiplayer games are made with computers and internet.

(laugh) (laugh) (laugh)

SMF spam blocked by CleanTalk