Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Program Announcements / Multisync v1.0 - Multiplayer plugin

Author
Message
GatorHex
18
Years of Service
User Offline
Joined: 5th Apr 2005
Location: Gunchester, UK
Posted: 15th Aug 2007 16:54 Edited at: 15th Aug 2007 16:57
About 50% of people have problems loggin onto my game. I can only think they don't know how to open their firewall...

Quote: "NET FIREWALL ENABLE APPLICATION ApplicationFilename$, EntryName$

ApplicationFilename$ <-- does this have to be a full path from root? i can't guarantee where anyone gona install my zip, is there a way to get the full location from DBP?"


...or the logon packet gets lost.

Quote: "Are the TCP packets guaranteed? I know in directplay it was optional but i don't see an option in your DLL."


DinoHunter (still no nVidia compo voucher!), CPU/GPU Benchmark, DarkFish Encryption DLL, War MMOG (WIP), 3D Model Viewer
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 15th Aug 2007 18:33
Quote: "does this have to be a full path from root? i can't guarantee where anyone gona install my zip, is there a way to get the full location from DBP?"

Yes, use appname$ to obtain that.

Quote: "Are the TCP packets guaranteed?"

Yes.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
GatorHex
18
Years of Service
User Offline
Joined: 5th Apr 2005
Location: Gunchester, UK
Posted: 15th Aug 2007 20:18 Edited at: 15th Aug 2007 20:20
Whoot! my game appears in the Windows firewall list. Very nice! Thanks

But it makes me wonder.. whats the point of Windows firewall if an app can just place it's self in there! I don't know if it's because I had it turned off coz I use Zone Alarm, but it didn't even ask if I wanted the App in the Windows firewall list!

DinoHunter (still no nVidia compo voucher!), CPU/GPU Benchmark, DarkFish Encryption DLL, War MMOG (WIP), 3D Model Viewer
GatorHex
18
Years of Service
User Offline
Joined: 5th Apr 2005
Location: Gunchester, UK
Posted: 30th Aug 2007 01:14 Edited at: 30th Aug 2007 01:15
Hi Benjamin,

I got a little request...

NET SET OPTION 1,30

leaves a player in the game for 30 seconds if they pull their network cable but if they exit the program (say esc key) they leave straight away.

Any chance of an option 2? so it will still leave you in the game if DBP is terminated for 30 secs also?

Quote: "NET SET OPTION Option, ValueAllows the setting of various options.

Posible options:

1 Sets the connection timeout. The parameter Value is set to the desired amount of seconds that connecting will be attempted for. A value of 0 will make the system use the default timeout. "


DinoHunter (still no nVidia compo voucher!), CPU/GPU Benchmark, DarkFish Encryption DLL, War MMOG (WIP), 3D Model Viewer
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 30th Aug 2007 04:20
I'm a little confused...

Quote: "NET SET OPTION 1,30

leaves a player in the game for 30 seconds if they pull their network cable but if they exit the program (say esc key) they leave straight away."

Is this a request or do you think it does this? Option 1 sets the timeout for when you initially connect to the server. The ability to set the time of no activity before the server considers a client disconnected would be very useful, I'm not sure why I haven't added it before.

Quote: "Any chance of an option 2? so it will still leave you in the game if DBP is terminated for 30 secs also?"

This could be difficult to accomplish (and perhaps more easily coded into the game itself), and I'm not sure I see the point in this.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
GatorHex
18
Years of Service
User Offline
Joined: 5th Apr 2005
Location: Gunchester, UK
Posted: 30th Aug 2007 05:15
it works if the network cable is pulled

just saying it would be nice if there was an option so when the client closes it doesn't send "i've logged out" to the server instead the server thinks it's like a network cable pull instead.

The benefit is to stop people exiting while in combat.

I could code a time system I suppose but so many other things are relying on the if player connected() test that it would be easier if the server just thought they were connected.

DinoHunter (still no nVidia compo voucher!), CPU/GPU Benchmark, DarkFish Encryption DLL, War MMOG (WIP), 3D Model Viewer
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 30th Aug 2007 05:30
I personally only see a disadvantage here. Think about this:

Player A is fighting player B, and getting his ass kicked. So, being the noob he is, he decides to close the game in an attempt to end the battle.

Without your feature: If the player closes the game, the server can detect immediately a voluntary disconnection. If the player pulls a network cable out, the battle will continue (not if the continuity of the battle depends on the player's input however, such as with a turn-based system) until the timeout period has reached, then the server will see that the player has disconnected. By this time he has been beaten to a pulp by the other player anyway so he won't have prevented anything.

With your feature: It is no longer possible to detect if the player closed the game: it'll just appear that they lost the connection, whether they closed the game, pulled a cable out, or legitimately lost the connection.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
GatorHex
18
Years of Service
User Offline
Joined: 5th Apr 2005
Location: Gunchester, UK
Posted: 30th Aug 2007 22:16 Edited at: 30th Aug 2007 22:18
Thats what i want

net player left() don't care how they left

Everyone is left in the game 30 seconds.

DinoHunter (still no nVidia compo voucher!), CPU/GPU Benchmark, DarkFish Encryption DLL, War MMOG (WIP), 3D Model Viewer
Ben Johnson
16
Years of Service
User Offline
Joined: 6th Jul 2007
Location:
Posted: 10th Sep 2007 00:43
Heya, I've been using multisync in my game, but I have come across a problem, occasionally the net message seems to get corrupted and seems to stop the server for along while, is there any way around this or is there something I am doing wrong or missing here?
Ben Johnson
16
Years of Service
User Offline
Joined: 6th Jul 2007
Location:
Posted: 10th Sep 2007 15:11 Edited at: 10th Sep 2007 17:26
I've seemed to have fixed it, or it hasnt happened again yet since I changed PacketID's to int's, rather than strings which is what i was using before.

EDIT - Its just happening less frequently, sorry for the double of post, only just noticed the edit post under the avatar bit.
NeX the Fairly Fast Ferret
18
Years of Service
User Offline
Joined: 10th Apr 2005
Location: The Fifth Plane of Oblivion
Posted: 13th Sep 2007 00:55
Brilliant DLL. Well done, Benjamin. It's nice. Easy. Responsive. Everything a DLL should be. Got a chat program working over the net in hours...


Since the other one was scaring you guys so much...
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 18th Sep 2007 01:58
Quote: "but I have come across a problem, occasionally the net message seems to get corrupted and seems to stop the server for along while"

Could you post an example?

Quote: "Brilliant DLL. Well done, Benjamin. It's nice. Easy. Responsive. Everything a DLL should be."

Thanks, glad you like it.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
Ben Johnson
16
Years of Service
User Offline
Joined: 6th Jul 2007
Location:
Posted: 19th Sep 2007 00:59 Edited at: 19th Sep 2007 01:09
Well theres nothing out of the ordinary really just location packets like the following are sent in intervals and occationally the server receives them currupted. When I used strings as ID's the ID's would sometimes come out in corrupted characters and such aswell as the data inside the packet. For some reason when this happens it freezes the server.



The server simply uses a while statement to check if theres a waiting message, and reads the messages using net get variable and puts them in arrays and sends them out at set intervals and makes equations and changes as needed.
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 28th Sep 2007 01:04
The only two things that I can think of being the problem is that you're either using a wireless internet connection which is being affected by interference, or your router is a type that scans through packets and translates data if it looks like your address (which most probably wouldn't happen to often). The latter is also not so common because not a lot of routers have that (rather bad) behaviour.

Other than that it could be a mistake in your code.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
Roxas
18
Years of Service
User Offline
Joined: 11th Nov 2005
Location: http://forum.thegamecreators.com
Posted: 28th Sep 2007 15:35
Benjamin..

I added you in msn..

I need help on movement system over net.. I have tried using one on your example but it isnt that accuraty if you have ping about 157..

(My host sucks)

I know there will be lag on that stage but still it shouldnt be like i have.. Another proplem is that if you move long trips the character is liker 500meter away from real position. If you can help please accept my invite on msn

[center]
Ben Johnson
16
Years of Service
User Offline
Joined: 6th Jul 2007
Location:
Posted: 29th Sep 2007 00:32
Well I guess it must be a mistake in my code somewhere since I am neither using a Router or Wireless. I have begun programming my game again, from scratch doing things slightly different and such; and making sure everythings fine. So hopefully the problem won't come up again.
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 30th Sep 2007 17:35
Quote: "I added you in msn.. "

I hardly come online at the moment, so you may not see me around. This site explains a very good way to handle movement and such.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
GatorHex
18
Years of Service
User Offline
Joined: 5th Apr 2005
Location: Gunchester, UK
Posted: 1st Oct 2007 04:59
My ISP was screwing up mine, said 3999 was an everquest port and Elcoya didn't like it, blah, blah, blah..

DinoHunter (still no nVidia compo voucher!), CPU/GPU Benchmark, DarkFish Encryption DLL, War MMOG (WIP), 3D Model Viewer
Roxas
18
Years of Service
User Offline
Joined: 11th Nov 2005
Location: http://forum.thegamecreators.com
Posted: 3rd Oct 2007 19:01
Aww.. I have encourted that theory many times.. But cant just understand it..

Well i try again

[center]
Xlaydos
19
Years of Service
User Offline
Joined: 26th Mar 2004
Location:
Posted: 4th Oct 2007 23:55 Edited at: 4th Oct 2007 23:56
@Benjamin very nice plugin i'm loving it

@Gatorhex, couldn't you do that like this?

{Mini-code}


By the way noone would happen to know a good way of coding projectiles in a multiplayer game would they?
http://forum.thegamecreators.com/?m=forum_view&t=115401&b=1

Thanks again benjamin and hope that helps gatorhex

EDIT: Hmm didn't realise there was a page 5 lol this should be at the bottom of page 4 really
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 18th Dec 2007 06:23 Edited at: 18th Dec 2007 06:23
!!! Update 1.3 - 18th December, 2007 !!!

A problem with the message processing routine has been fixed, and a version has been compiled to be used from C++ and other languages. An optional IP address parameter has been added to net host. Download it here.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
Roxas
18
Years of Service
User Offline
Joined: 11th Nov 2005
Location: http://forum.thegamecreators.com
Posted: 20th Dec 2007 10:32
GREAT!

Downloading


Click For Details!

RUCCUS
19
Years of Service
User Offline
Joined: 11th Dec 2004
Location: Canada
Posted: 25th Dec 2007 23:41
Trying to finish this net engine for once, and I've run into something. Are the player ID's zero-based? (Host is 0, all other clients are 1, 2, 3, etc)?

Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 26th Dec 2007 09:26
Actually, the server doesn't have a number as such. Player numbers start at 1.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
RUCCUS
19
Years of Service
User Offline
Joined: 11th Dec 2004
Location: Canada
Posted: 26th Dec 2007 16:04
Hah, that would explain a lot .

Silvester
18
Years of Service
User Offline
Joined: 7th Dec 2005
Location: Netherlands
Posted: 13th Jan 2008 15:38 Edited at: 13th Jan 2008 18:07
EDIT:Nevermind, I fixed it to work with PlayBasic.

Cekrit
16
Years of Service
User Offline
Joined: 21st Jan 2008
Location:
Posted: 21st Jan 2008 20:47
Its great !


but is there any possiblility to put his own ID into an varibale?

something like that:

Quote: "
ID = Net User ID()
Move Object ID,1

"
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Jan 2008 00:43
Hi Guys,

I'm trying to make a decision on wether to use Tempest(UDP)/Multisync(TCP) or both for my Multiplayer First Person Shooter RPG. After a exhaustive search on the forums, I'm left very undecided.

Several posts state Tempest is better suited for Fast Paced games, however, the Tempest Thread states its "no longer supported. Consider using Multisync instead."

Any insight would be extremely appreciated, so I can move forward with developing my game. Thnx.

Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 29th Jan 2008 16:45 Edited at: 29th Jan 2008 16:45
Quote: "but is there any possiblility to put his own ID into an varibale?"

The only way for the client to know its value is for the server to send it to it.

Quote: "
I'm trying to make a decision on wether to use Tempest(UDP)/Multisync(TCP) or both for my Multiplayer First Person Shooter RPG. After a exhaustive search on the forums, I'm left very undecided."

MFPSRPG? Sounds interesting. Well for what requires reliable data transfer Multisync would be useful for, but for the FPS part it would be better to use a UDP solution.

Roxas
18
Years of Service
User Offline
Joined: 11th Nov 2005
Location: http://forum.thegamecreators.com
Posted: 29th Jan 2008 16:57
Tho ive never got Tempest working..
Others could never connect also it was kinda buggy :/ My prog worked nice when i connected myself.. There were some bugs.. And others could not connect :/

Multisync works nice tho.


Click For Details!
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Jan 2008 16:58 Edited at: 29th Jan 2008 16:59
Quote: "MFPSRPG? Sounds interesting. Well for what requires reliable data transfer Multisync would be useful for, but for the FPS part it would be better to use a UDP solution."


I was afraid you were going to say that. TCP and UDP support was the goal of iCon, however, I simply ran into many coding challenges that I was not prepared for. Do you know of any conflict using both Tempest and Multisync together?

Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 29th Jan 2008 23:15
Quote: "Do you know of any conflict using both Tempest and Multisync together?"

None that I know of.

tha_rami
17
Years of Service
User Offline
Joined: 25th Mar 2006
Location: Netherlands
Posted: 30th Jan 2008 02:34
Did I ever properly thank you for Multisync? No. Well, as soon as Organized Crime is done, I'll send you a 'thank you' e-card.


A mod has been erased by your signature because it was larger than 600x120
The Scorpion
21
Years of Service
User Offline
Joined: 12th Oct 2002
Location: United States
Posted: 31st Jan 2008 03:51
I don't know why, but when I give my client to my friend it will crash out saying it's unable to load Multisync.dll.

Where am I supposed to package it? Is there any special code I need to add to make the program distributable?

Much regards,
The Scorpion
--Site Temporarily Out of Service--
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 31st Jan 2008 08:22
If you could tell me the exact error, along with their system specs, I might be able to determine what the problem is.

Silvester
18
Years of Service
User Offline
Joined: 7th Dec 2005
Location: Netherlands
Posted: 31st Jan 2008 08:58
Ben, If I wrapthis in PlayBasic, all the integer return values are random

Core Map 2 is released, Free edition and Commercial Edition available at the following link
See Topic
Cekrit
16
Years of Service
User Offline
Joined: 21st Jan 2008
Location:
Posted: 1st Feb 2008 17:38
OK now i made a game where the host should be able to move a car and the other players just can watch him.
but if i test it with my freinds. They get into the server. At me there are many lags. And they get an error.

Anyone knows a solution?

Server:


Client:
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 2nd Feb 2008 02:11
Quote: "Ben, If I wrapthis in PlayBasic, all the integer return values are random"

Odd. I can't really help with that as I've never used PlayBasic before, sorry.

Quote: "OK now i made a game where the host should be able to move a car and the other players just can watch him.
but if i test it with my freinds. They get into the server. At me there are many lags. And they get an error."

I can see a couple of problems:

1. You call NET SEND in a loop without putting data in each time. When you send a message, the buffer gets cleared.

2. You try to send messages to players that might not exist. Check that they exist before you send messages to them.

Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 28th Feb 2008 13:32 Edited at: 31st Mar 2008 05:08
Update 1.3.2 - 28th February, 2008

Disabled what is known as the Nagle algorithm. This will make the networking more responsive when sending repeatedly at a rapid rate, thus making it more suitable for faster paced games.

Attachments

Login to view attachments
Kevin Picone
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 1st Mar 2008 07:34 Edited at: 1st Mar 2008 07:42
Quote: "Ben, If I wrap this in PlayBasic, all the integer return values are random"


What calling convention are you using ? - Just had a very quick look and it seems that some of the functions are expecting shorts rather than integer (32bit). Unfortunately, PB doesn't have a short data type, so the caller would be passing integers (32bit). Not sure if they'd cause issues or not. So you'd probably have to wrap it (in something else) for use with PB atm.

Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 1st Mar 2008 09:31
Quote: "Just had a very quick look and it seems that some of the functions are expecting shorts rather than integer (32bit)"

The other languages version does indeed take char/short as arguments for certain functions (where they would be a dword for DBP), although this shouldn't cause problems as they are expected to be stored in 32-bit form on the stack anyway.

Master Xilo
17
Years of Service
User Offline
Joined: 8th Sep 2006
Location: Bern, Switzerland
Posted: 1st Mar 2008 14:04
Hello,
I'm now using v1.3.2 and every second time, when I try to connect to my own server ("127.0.0.1") the program just crashes!

I use:

for hosting
and:
connected = net connect ("127.0.0.1")
for connecting

What am I doing wrong? I wanted to switch back to v1.1, because with that one everything worked fine for me, but your link in the first post points to v 1.3!!!!!!!!!
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 2nd Mar 2008 09:35 Edited at: 2nd Mar 2008 09:36
Quote: "What am I doing wrong?"

I don't know, you haven't posted the full code. By the way you only ever have to set the port before you host/connect, and 3999 is already the default.

Also you may need to be more specific. Which application is crashing? Is it reporting an illegal operation or is it just silently closing?

Ben Johnson
16
Years of Service
User Offline
Joined: 6th Jul 2007
Location:
Posted: 3rd Mar 2008 00:40 Edited at: 3rd Mar 2008 00:49
Hey, there I am still having problem's i stated awhile back. I wass wondering if there is a way to flush remainders, because with certain people it seems to corrupt packets and corrupt the id assigned to them in a int, which ends up in leaving remainders because they do not get read since they don't have a propper id. It seems to occur randomly over varying amounts of time from 5 seconds to 30 minutes. But only with set people, I can't find anything that they have common, such as OS or network cards.
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 3rd Mar 2008 09:50
Try reading all the data manually to determine if this is the problem.

Grandma
18
Years of Service
User Offline
Joined: 26th Dec 2005
Location: Norway, Guiding the New World Order
Posted: 3rd Mar 2008 15:33
I'm sitting and weighing the pro's and con's with your two multiplayer plugins. I really want to use multisync for the continued support and abilities, but i really miss the LAN search and game listing. I can't do without as my game is kinda built for LAN. Is there are hope of seeing support for this in multisync?

I'm aware that i could create a work-around to the latter issue by connecting to a "master server" that lists the games, but that implies internet access (and most likely, a server of some kind).

I have not scanned trough all pages, so if it's been adressed before then my apologies.

This message was brought to you by Grandma industries.

Making yesterdays games, today!
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 3rd Mar 2008 17:40
Ok, when I have some free time I will implement this.

I'm going to provide a more basic implementation this time around. I'll allow a memblock to be specified that the programmer can use to put data that needs to be seen by clients searching the LAN. Any time certain data changes (scores and such), the memblock can be updated to reflect this, and the plugin will automatically show this data next time a client requests it. How does that sound?

Grandma
18
Years of Service
User Offline
Joined: 26th Dec 2005
Location: Norway, Guiding the New World Order
Posted: 3rd Mar 2008 17:49 Edited at: 3rd Mar 2008 17:49
That sounds perfect!

I'll get started on the migration process... Don't feel pressured to rush the update. Take your time if you must, this might take a while.

This message was brought to you by Grandma industries.

Making yesterdays games, today!
jasonhtml
19
Years of Service
User Offline
Joined: 20th Mar 2004
Location: OC, California, USA
Posted: 4th Mar 2008 16:43 Edited at: 4th Mar 2008 16:46
Quote: "I'm now using v1.3.2 and every second time, when I try to connect to my own server ("127.0.0.1") the program just crashes!"


Quote: "Hey, there I am still having problem's i stated awhile back. I wass wondering if there is a way to flush remainders, because with certain people it seems to corrupt packets and corrupt the id assigned to them in a int, which ends up in leaving remainders because they do not get read since they don't have a propper id. It seems to occur randomly over varying amounts of time from 5 seconds to 30 minutes. But only with set people, I can't find anything that they have common, such as OS or network cards."


ive been having crashing problems also. they seem to be lessened after making certain adjustments to my server, but it still crashes after about 20 minutes or so. since other people are having similar problems im beginning to wonder if it is really my coding, multisync, or both?

im going to try the new version and see if it is any better.

Master Xilo
17
Years of Service
User Offline
Joined: 8th Sep 2006
Location: Bern, Switzerland
Posted: 4th Mar 2008 17:37
because other programs I made with multisync never crashed, I think the reason for the crashes is the combination of BlueGUI2 EnAn (I think i saved half of my animations with an older version...) and multisync (so the main problem seems to be my coding).

Login to post a reply

Server time is: 2024-02-27 04:55:58
Your offset time is: 2024-02-27 04:55:58