Not being a game itself, but a tech demo... AGS networking!

Started by void, Tue 10/04/2012 01:07:34

Previous topic - Next topic

void

Hi there,

as some of your might have already noticed from the AGS Multiplayer topic ( http://www.adventuregamestudio.co.uk/yabb/index.php?topic=45536.0 ), i'm currently in the process of developing a plugin that enables you to incorporate coop multiplayer in your AGS games. I know that might sound a bit strange, and I can tell you it is :-D

During the last few days I've done lots of work in getting this to run and I managed to find a concept that will be (relatively) easy to implement and, unlike the slightly out-dated TCP-Plugin (don't get me wrong here, i don't want to be offensive. It's surely a great piece of work, but I haven't been able to use it because of the recent changes in the String handling.), already provides mechanisms for game state mangement such as character movement, inventory item propagation and object handling.

I've set up a small test game that uses some FoA sprites and allows you to play with Indy and Sophia in a cooperative way. Even though we only had two rooms and just some basic objects, items and a chat function, the experience we had while testing this out has actually been surprisingly entertaining. Currently I'm in the process of testing things out, tracking bugs and making sure everything's working as excepted. There're still some issues, mainly regarding animation synching and savegame handling, but once I get a feeling that everything works like it should, I'm planning to release it here, but I haven't been able to post threads in the Plugins section of this board.

Just wanted to let you know, so be prepared for some old school multiplayer experience ;-)

UPDATE: You can download a modified version of the AGS demo game here

Also, the modified demo game sources are available here


Armageddon

It would be awesome to play games like Monkey Island with a friend. Looking good mate. :)

Kweepa

Yes, I've always thought this would make for a fun experience.
I played the Monkey Islands, Fate of Atlantis and Day of the Tentacle together with friends that are currently in another country and it would be awesome to play a new adventure co-op.
Still waiting for Purity of the Surf II

Shane 'ProgZmax' Stevens

Very nice.  Efforts like this remind me of the not-so-well-known Club Caribe, one of the very very first attempts at a multiplayer gaming experience (by Lucasfilm Games, no less!).  You could solve puzzles as a team (albeit rather limited ones, think Maniac Mansion) you could, for some odd reason, remove your head and trade it to people or buy a new one....or, in my friend's case, lose it.  It was a weird game, and it would be neat to see a low-fi interactive online game like that make a comeback.

budgerigar

Quote from: ProgZmax on Tue 10/04/2012 08:38:22
you could, for some odd reason, remove your head and trade it to people or buy a new one....or, in my friend's case, lose it.

Looks like Sophia's playing that game, too  ;D

void

Some news on this. I implemented multiplayer features in the AGS demo game (which took me roughly around 15 minutes ;-). You can't really do anything there and I haven't tested it completely, but it should be playable. I'm sorry for the debug text, I forgot to recompile the plugin, but you could always switch to D3D9 Mode, where the text shouldn't be displayed at all.

The multiplayer demo can be found here:

http://www.file-upload.net/download-4261998/DemoGameNet.zip.html

Sources will follow.

EDIT: Most recent version is in the first post.

Tentacles


The site wont let me download it, because Avast keeps having it come up as a trojan horse.

void

It is not. The zip file just contains the normal Demo game (compiled) along with the plugin dll. I'm afraid most antivirus applications are somewhat paranoid when dealing with dynamic linked libs or executables obtained from the net.

By the way: If there're any errors regarding missing dlls (libstd-c++ or somewhat), let me know. This happens to be an issue with my current c++ compiler.


void

I just updated the link above. The new zip file contains both libgcc_s_dw2-1.dll and libstdc++-6.dll, which are needed to run the dll. Sorry for the inconvenience.

.M.M.

Could you please upload the multiplayer AGS demo with the Game.agf file, or with the script files? I'd really like to see how it should be done.

void

Have a look at the first post of this thread. I've just inserted the link for the demo game sources there.

Construed

Just stopping by to give you some words of encouragment,
GREAT JOB!

Let me know if you need any help beta testing or debugging :D
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

void

Thank you very much! :-)

And yes, I do need help in testing. Getting the synchronization between both clients requires a lot of replication outside AGS that sometimes yields to rather complex results. This was why I opened this thread, I was hoping to get some report on the functionality of the plugin, but the attention it got so far was somewhat less than I expected. Nevertheless, I appreciate and I'd like to take your offer.

Right now I'm in the process of refactoring the plugin. What was done by now can be seen as a quick attempt that made its way into something quite promising. The next step is to rethink some attempts and implement them in a more robust and clean way. When this step has been done, there'd be another release. But as for now, any bugs reported will be taken into account for further development, so beta testing would be very welcome.

Construed

Awesome, Just pm me and let me know what you need tested or meet me on our web based IRC chat at http://gamersplanet.tk/chat/
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

void

As for now it would be okay to download the demo game above and play :-)

You might want to inform me about bugs you discovered then.

Construed

What's your server IP?
Tried connecting to my own IP and localhost with no luck.
When starting the game without connection get fatal error.
Second try clicking play worked, It appears to be transferring data however when i run 2 instances of the game multiple players do not appear.
I'm guessing it must not have a default IP when you click play.
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

void

There is no such thing as a public server. I decided to implement it directly inside the plugin, so clicking on "Play" will automatically create a host.

You should be able to login via a second workstation using your local lan IP. You could also run the game twice on the same pc, but since losing the focus of the window will block anything that's been processed, you would have to toggle between both constantly. Also, if you do so, be sure not to use localhost or 127.0.0.1. There have been some problems addressing the loopback interface for some reason, so I temporarily turned it off.

Construed

You could probably use:

SetMultitaskingMode(1);

to stop that losing focus thing.
I ran 2 instances of the game on the same IP but they dont seem to be transfering chat or x,y coords.
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

Construed

Well, You wanted me to beta test, that requires communication!
If there's some other form of communication you'd prefer let me know.
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

SMF spam blocked by CleanTalk