Author Topic: Not being a game itself, but a tech demo... AGS networking!  (Read 2896 times)  Share 

Hi there,

as some of your might have already noticed from the AGS Multiplayer topic ( http://www.bigbluecup.com/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

« Last Edit: 15 Apr 2012, 14:52 by void »

Armageddon

  • Likes apples and nuts
It would be awesome to play games like Monkey Island with a friend. Looking good mate. :)

Kweepa

  • Mutated Guano Deviser
    • Best Innovation Award Winner 2009, for his modules and plugins
    •  
  • Kweepa worked on a game that was nominated for an AGS Award!
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

  • Local Moderator
  • AGS Project Admins
  • RON PAUL JUST GOT HUGE!
    • I can help with animation
    •  
    • I can help with characters
    •  
    • Lifetime Achievement Award Winner
    •  
    • I can help with AGS tutoring
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
  • Shane 'ProgZmax' Stevens worked on a game that was nominated for an AGS Award!Shane 'ProgZmax' Stevens worked on a game that won an AGS Award!
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.

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

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.
« Last Edit: 15 Apr 2012, 14:44 by void »

Tentacles

  • Horror Author
    • I can help with story design
    •  

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

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.

Tentacles

  • Horror Author
    • I can help with story design
    •  
libgcc_s_dw2-1.dll is missing for some reason.

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.

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.
Only The Good Die Young - Wild West RPG created in AGS: now translated to English! Download here! facebook page: www.facebook.com/OnlyTheGoodRPG

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

Construed

  • The fear of the LORD is the beginning of wisdom.
    • I can help with AGS tutoring
    •  
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with AGS tutoring
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
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.

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

  • The fear of the LORD is the beginning of wisdom.
    • I can help with AGS tutoring
    •  
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with AGS tutoring
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
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.

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

  • The fear of the LORD is the beginning of wisdom.
    • I can help with AGS tutoring
    •  
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with AGS tutoring
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
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.
« Last Edit: 22 Apr 2012, 10:27 by Construed »
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

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

  • The fear of the LORD is the beginning of wisdom.
    • I can help with AGS tutoring
    •  
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with AGS tutoring
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
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.
« Last Edit: 24 Apr 2012, 14:11 by Construed »
I felt sorry for myself because I had no shoes.
Then I met the man with no feet.

Construed

  • The fear of the LORD is the beginning of wisdom.
    • I can help with AGS tutoring
    •  
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with AGS tutoring
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
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.