View Full Version : GodWeapon Delay Upgrade
SupraFast
04-21-2008, 06:33 AM
http://www.God-Weapon.com
This is for those who still play on Kaillera. If you don't, you can stop reading now.
GodWeapon (Virginia) IP = 69.31.15.70:27888
Some of you Kaillera veterans will remember how the old traditional Kaillera servers used to be. You can play each other on different connection types and different delays.
EmulinkerSF is almost there. GodWeapon is now featuring different delays on the SAME connection type. Before, the delay of your game was based on the player with the worse ping. Now, you will play AT YOUR DELAY with respect to your ping. What does that mean? See below...
Just an EXAMPLE:
Let's say both players decide to play on excellent connection.
Player1 Ping = 110 ms
Player2 Ping = 17 ms
So, when these players start the game...
Player1 will be playing on a 9 frame delay
Player2 will be playing on a 3 frame delay
See table at bottom for corresponding ping/delay values.
If you guys don't want to play on different delays (default), there is a command to play on how the previous setup was [Same delay based on user with the worse ping].
/samedelay true (Same delay based on user with the worse ping)
/samedelay false (Default. Play on delay with respect to your ping)
If all of your players fall in the same ping range, then there is no reason to do anything because you will have the same delay.
-SupraFast <3
LAN CONNECTION = Send input on every frame
0 to 16 ms.. = 1 (1 frame delay)
17 to 33 ms = 2 (2 frame delay)
34 to 49 ms = 3 (3 frame delay)
50 to 66 ms = 4 (4 frame delay)
EXCELLENT CONNECTION = Send input on every second frame
0 to 33 ms...... = 1 (3 frame delay)
34 to 66 ms.... = 2 (5 frame delay)
67 to 99 ms.... = 3 (7 frame delay)
100 to 133 ms = 4 (9 frame delay)
GOOD CONNECTION = Send input on every 3rd Frame
0 to 49 ms...... = 1 (5 frame delay)
50 to 99 ms.... = 2 (8 frame delay)
100 to 150 ms = 3 (11 frame delay)
151 to 199 ms = 4 (14 frame delay)
Aquashark
04-21-2008, 06:36 AM
Player1 Ping = 110 ms
Player2 Ping = 17 ms
So, when these players start the game...
Player1 will be playing on a 3 frame delay
Player2 will be playing on a 9 frame delaywho in the right mind would play this way?
no offense, but why are you still promoting something like this? get on with the times..
SupraFast
04-21-2008, 06:38 AM
who in the right mind would play this way?
no offense, but why are you still promoting something like this?
Please see sentence #1. If that doesn't inlcude you, follow sentence #2's instruction.
Edit: I obviously had the numbers backwards; my fault. C'mon Aquashark, you should have realized that =/
When GGPO supports all games and >2 player games, I will move on. Until then, I go to GW for 4 player MvC/XVSF/MVSF, bomberman, SF3, and volleyball. I go to GGPO for 1v1 MvC.
Spinning Beat
04-21-2008, 06:45 AM
why the fuck would you play someone with 110ms ping anyway when you have 17 ms anyway? Not to mention this gives an unfair advantage to one player and an unfair disadvantage to the other.
One guys playing in 3 frame while the other is playing in 9. This shit is absolutely retarded.
Not only that, if someone is idiotic enough to stay in 9 frame delay. They deserve to lose =P
SupraFast
04-21-2008, 06:53 AM
I'm really astonished at these responses. I thought everyone was playing online fun. If you're playing your friend and you can't find a server at a medium, you would rather play at 9 frames as opposed to 3?
This isn't a competition lol. Not to mention it only takes a few rounds to adjust to a delay; the brain is well capable of doing that. (Did you know if you were hung upside down for a long time, you would start to see things as you would standing normally?)
There must be some major funding source going on because it seems as if you guys are playing for a big prize that's going to let you retire early ^_^
But just to amuse you, there is a command /samedelay.
/samedelay true To play on the same delay based on the worse ping.
/samedelay false Default. To play on your delay with respect to your ping.
SF3LP
04-21-2008, 07:04 AM
wow despite the responses ppl gave you supra...i may not be on GW that often but this is rly a step up from the past GW...good work on this....i mean i may agree who would play someone with 117 ping but then again nfba ppl do the same too...i played someone from Europe with that much ping so its not THAT big of a deal besides supra was giving an example with the 117 ping and 17 ping.....again good work supra
JedahsMinistry
04-21-2008, 07:14 AM
Alternative options are good, plus kaillera servers are still the only way to play 3+ player games (as mentioned).
I don't get to play much anymore, but glad you're still working on improving things Supra.
SupraFast
04-21-2008, 07:20 AM
I'm glad to see there are still some sensible people here. I appreciate the support.
I'm not denying GGPO is great and definitely the technology for the furture on online emulation. The only problem is, they don't support all the games people like to play yet, including the 4 player and 6 Player games. So until Kaillera doesn't exist and while GGPO doesn't support that (if they ever will), I don't mind spending a few moments of my free time trying to make what we have better.
I also made a Kaillera P2P client a while back when I was experimenting with CGA. I will be incorporating this into GodWeapon somehow.
I'm just making a bunch of options for people. It's always good to have more than one option.
Spinning Beat
04-21-2008, 07:33 AM
wow despite the responses ppl gave you supra...i may not be on GW that often but this is rly a step up from the past GW...good work on this....i mean i may agree who would play someone with 117 ping but then again nfba ppl do the same too...i played someone from Europe with that much ping so its not THAT big of a deal besides supra was giving an example with the 117 ping and 17 ping.....again good work supra
You have to realize, that nfba ping is different than kaillera ping. I play someone in europe with 110 ping. Thats like 4 or 5 frame delay. Which is not that big of a deal to me.
But 9 frame delay.....not even tenren would play in that shit.
DIMMU SAKURABA
04-21-2008, 07:34 AM
No offense but the fact that there is an option to still play on the same delay really shouldn't be warranting these negative responses at all. Suprafast clearly stated that you can either play on the same delay (like normaly kaillera) or opt to play on different delays. I don't know if people responding negatively read the whole message (sorry Spinning Beat) but the fact that this is clearly an option and not a complete change shouldn't be warranting complaints. Its either playing it like always or you can opt to play this way. Plus, he clearly stated in the first sentence, if you don't play on kaillera, don't worry about it.
Spinning Beat
04-21-2008, 07:37 AM
No offense but the fact that there is an option to still play on the same delay really shouldn't be warranting these negative responses at all. Suprafast clearly stated that you can either play on the same delay (like normaly kaillera) or opt to play on different delays. I don't know if people responding negatively read the whole message (sorry Spinning Beat) but the fact that this is clearly an option and not a complete change shouldn't be warranting complaints. Its either playing it like always or you can opt to play this way. Plus, he clearly stated in the first sentence, if you don't play on kaillera, don't worry about it.
Well when i first read this, it looked like a complete change and not an option. :bluu:
I guess keeping the option for same delay is good. I still think this new idea is not a good idea overall.
SupraFast
04-21-2008, 07:40 AM
You have to realize, that nfba ping is different than kaillera ping. I play someone in europe with 110 ping. Thats like 4 or 5 frame delay. Which is not that big of a deal to me.
But 9 frame delay.....not even tenren would play in that shit.
Are you talking about P2P or regular Kaillera? fba is an emulator. I didn't come up with these numbers randomly. This is how it was traditionally done with Kaillera servers at kaillera.com until Emulinker cameout.
SupraFast
04-21-2008, 07:45 AM
I still think this new idea is not a good idea overall.
It's not new.
Well if you really don't like it, you have a few different options.
A. Make your games the same delay.
B. Don't come to GodWeapon.
C. Go to GGPO.
D. Play Kaillera P2P
E. Stop playing all together.
No particular order of course.
DIMMU SAKURABA
04-21-2008, 07:48 AM
I really don't see any reason for a negativity for this. This is clearly the same kaillera with a new option. Any negativity towards this add-on is just negativity towards kaillera in the first place
Mariodood
04-21-2008, 07:52 AM
I think this is great although it's really not gonna help the "Everyone on Godweapon is a fucking scrub" idea. Like, if you won with that sort of game, that guy would just keep saying it was because of the one-sided lag he had to face, and he would actually have a point. Still way better than both people being dragged down. In fact, I might even go play on Godweapon later because of this. Back when I used to play on it, it was always hard to find a game because the only people on were people with 4 frame delay.
Speaking of which...where do I find an old school Kaillera client? The newer ones ONLY have p2p support. wtf.
SupraFast
04-21-2008, 08:09 AM
Supraclient: http://www.supraclient.com/downloads/SupraclientCPPE_v0.87.9.rar
Traditional Kaillera Client: http://www.Supraclient.com/downloads/kaillera-0.9-sdk.zip
I'm not sure of the link to n20. 0746 can chime in on that one.
AcidGlow
04-21-2008, 08:31 AM
why the fuck would you play someone with 110ms ping anyway when you have 17 ms anyway? Not to mention this gives an unfair advantage to one player and an unfair disadvantage to the other.
One guys playing in 3 frame while the other is playing in 9. This shit is absolutely retarded.
Not only that, if someone is idiotic enough to stay in 9 frame delay. They deserve to lose =P
Relax.. it's just a new option if you choose to use it. Besides, there are people who play online just to play for 'fun' not to brag a win. And some people do choose to play with a high ping that will cost them but they don't are. They just want to play. Relax....
djfrijoles
04-21-2008, 08:50 AM
Your work is much appreciated from me Sup .
I started on GW and made a BUNCH of friends that I still play with everyday. I'm not much on GW much anymore I'll never talk shit about It or Sup. Only thing I hate about GW are the random cock smokers/jerks on there. I will for sure play on GW for any of my random non fighting game needs.
Plus I'll always have a special bond to Sup. ever since he yelled at me on the CGA test server like he was my dad :rofl:
Please see sentence #1. If that doesn't inlcude you, follow sentence #2's instruction.
Edit: I obviously had the numbers backwards; my fault. C'mon Aquashark, you should have realized that =/
When GGPO supports all games and >2 player games, I will move on. Until then, I go to GW for 4 player MvC/XVSF/MVSF, bomberman, SF3, and volleyball. I go to GGPO for 1v1 MvC.
Uhh nFBA supports all FBA supported games and has GGPO-esque netcode.
SupraFast
04-21-2008, 09:06 AM
Uhh nFBA supports all FBA supported games and has GGPO-esque netcode.
So what does that have to do with GGPO support? Can I go on GGPO and play bomberman world or 4 player mvc?
kliquey
04-21-2008, 09:23 AM
nice job Supra! an upgrade indeed to GW! I still logon GW sometimes to find some games when I can't find any on p2p. It is horrible for me though since my ping on GW is usually at the 7 frames mark which does suck, but hey its better than not playing for me. So anyway like I said good job, now I can play more people with my ugly ping without them saying "your ping is too high sorry" or i can own random losers that like to blame their losses on the delay (when really they weren't good to begin with).
EveryFlowerFlow
04-21-2008, 10:51 AM
yay, finally a noted improvement. good shit. +rep for u.
Though I haven't played on GW in like 9 months :wonder:... Will this be available for other servers or just GW?
SupraFast
04-21-2008, 11:02 AM
GW for the time being until I can confirm everything is okay. Then I will give it to Emularena, Reps, and West Wonderland so they can upgrade from the previous EmulinkerSF
Zerogunner
04-21-2008, 12:02 PM
I understand the upgrade. Good work. I think people don't understand the concept of frame delay versus input delay. I like to try and play with some people from GW but they never want to play cus I'm on the west coast. This will hopefully increases the odds of people willing to give it a shot.
Exarkun
04-21-2008, 12:05 PM
I see the differences and retrospect of the upgrade, it's a great idea. What I like about GW is the consistancy of the matches, although the majority of players their are incompitant to understand some of the games, unlike GGPO at least the matches are afluid and consistant. After playing on GGPO I noticed the timing and spacing and everything just seemed so off, after doing 720's and 360's on GGPO, trying to do them offline seemed more of a nuisance. I guess I am much more familiar with Mame and it's delay where as GGPO seems a bit fast paced. I don't mind the attuned differences with the delay inputs, I see how it can balance out certain issues concerning each players latency which is a good way to even it out. Although this doesn't make it superior or great, it is indeed a major improvement and something I am looking foward too.
DRCsyntax
04-21-2008, 01:34 PM
All I want to know is why the fuck my ping on Godweapon has risen from 50 to 93 over the past few weeks.
(Was is moved to a less quality hosting server or something?)
-WiL-
04-21-2008, 03:03 PM
yea I noticed the same thing as Syntax, mines gone from 54-->81 in the last couple of weeks.
aznsyn
04-21-2008, 09:46 PM
i think this is an amazing upgrade to godweapon
people who have 100+ pings have challenged me SEVERAL times and saying i'm scared to play them when I just don't want to play against someone with high ping cause it's just boring and stupid when i could be playing someone with ping closer to mine without lag..
although they are at a disadvantage, it's their choice to play in this situation
i think it is generally impossible for anyone of that level of ping to play anyways, they will only be playing in that ping against anyone, so i'm pretty sure they'll get used to it
why bring down the people with low ping?
great job supraclient
SF3LP
04-21-2008, 10:26 PM
yea i actually like it now i dont have to worry about there being soo much delay...just today i played 2 ppl (this might sound crazy but it was just a test) with pings over 100 and i gotta say this RLY is something...i had no problems playing at all and still had the same delay of playing someone online in my area....everyone should give it a try....
Nice. I guess its the first 100% kaillera netcode compatible emulinker server. Guess I won't get to bitch about all emulinker servers being half assed kaillera any more. Its as good as Kaillera now in terms of gameplay?_?
Takes me back to even before my time. Things would have turned out differently if Moosehead completed what he started a long time ago. I can only imagine how he used to be so passionate when he sent that e-mail to Joel, my predecessor at Open Kaillera. Oh well, thanks for your hard work.
SupraFast
04-22-2008, 05:53 AM
It happens. When dealing with something for a long time you tend to burn out. I've left and came back several times over the past 2-3 years. I get bored easily so I'm always switching between projects. I kind of got motivated the other night to figure out how to do it without rewriting his code. If I wanted to support different connection types, it wouldn't have been as simple. I don't really want to rewrite his code. I think this is good enough for now, especially with GGPO's bright future.
ChibiPotPie
04-22-2008, 08:04 AM
If you have problems playing anyone with high ping or worried about having bad delay, you can always set a max ping for users joining your game. ( \maxping # ) If its higher than what you set it for, they can't join. So if you don't want to play anyone with ping higher than 50, just do \maxping 50 when you host your game.
I usually set it for 95 max, but I can have decent fair delay games with players who have pings up to 125 ms as if I'm playing someone with 40 ms and I'm usually 12 ms. Problem is most players with pings higher than 100 are usually foreigners on kawaks or older versions of mame and its hard to explain to them that it won't work with .64 or .117.
SupraFast
04-22-2008, 04:15 PM
I had the server box reset. Some thing was acting up and now everythign seems much better. Both IP's also seem to work for GW too once again:
GW: 69.31.15.70:27888
GW: 69.31.15.190:27888
Those who were complaining about a high ping, please join the server and confirm your ping is normal? Report results back here.
AcidGlow
04-29-2008, 03:55 PM
Has the server been set for every gamer to play at the frame delay as the person with the highest ping? It feels like it's been laggier.. I dunno..
DRCsyntax
04-29-2008, 05:48 PM
Ping is 90-100...used to be 50-60
AcidGlow
04-30-2008, 10:20 AM
Maybe those scripts are lagging it?
Moosehead
05-19-2008, 06:27 PM
Nice. I guess its the first 100% kaillera netcode compatible emulinker server. Guess I won't get to bitch about all emulinker servers being half assed kaillera any more. Its as good as Kaillera now in terms of gameplay?_?
Takes me back to even before my time. Things would have turned out differently if Moosehead completed what he started a long time ago. I can only imagine how he used to be so passionate when he sent that e-mail to Joel, my predecessor at Open Kaillera. Oh well, thanks for your hard work.
I can give you the reasons I never "completed what I started", if anybody really cares...
#1 The delay problem you like to complain about really never caused any problem for me personally. I duno if I just have a good network connection or never played anybody with a bad ping, but I've just never noticed the issue to this day.
#2 I don't really understand the delay algorithm. If fact, I didn't even know it existed when I released the first few versions of EmuLinker. Supra has tried to explain it to me a few times but I still don't really get it. If you can write the business rules governing setting that delay byte clearly in a way that I can use to put in code, I am willing to fix EmuLinker.
#3 Child born 6/10/2005...
#4 "Passion redirected" to other projects... http://www.buzzsurf.com/sql/
Nice ^_^. I'll try to remember the date to send birthday cards.
I'll give #2 a go:
Well, the problem is users with different pings and connection settings are connected to the server. When they want to play in the same game, server needs a way of mixing the input values of different players in a way that the users do not get any more input delay than they should and everyone stays synchronized.
So the problems are:
no 1 - needs to know how much delay the user will have
no 2 - needs to know what data to send to the user and when
for no 1:
Each user can have different pings and connection settings.
Firstly, assuming all users are using LAN connection setting, the minimum input delay an user should have is just the ping. In that time the user's input data can reach the server, server can mix that with other player's input delays and then server can send it back to the user. Kaillera assumes 60 frames per second so this delay is just ping in ms divided by (1000 ms / 60 frames) = 16.6666666666667 ms per frame
so delay = ping / (1000 / 60) = ping * 60 / 1000 frames. This'll give a fraction. Since we want to work with discrete frames and not fractions, just move it up to next possible integer value = (ping * 60 / 1000) + 1; Thats how the basic formula is derived.
Now LAN might not be the only connection setting used. As you know connection settings just specifies the length of the minimum unit of input data transmission between the server and the client. i.e. LAN == 1 frame of input values per packet => 60 packets per second...excellent == 2 => 30 packets per second etc. Since the user will only transmit data with that grouping, it'd make more sense to describe the delay with that grouping:
basic delay = (ping * 60 / 1000 frames) / connection setting = (ping * 60) / (1000 frames * connection setting) , or turned to whole number:
delay = ((ping * 60) / (1000 frames * connection setting)) + 1;
this is the number server sends to the client. This was double confirmed by TRAC's hand decompiled UOKS server code.
On client side: Client expects input from server after sending 1 + this number of input packets.
e.g. if an user was on excelent and he had a ping of 33:
delay = 33 * 60 / (2 for excelent * 1000) + 1 = 1
i.e. it'll send 2 packets containing input values of frames 1,2 and frames 3,4 and on the 4th frame (when it sent the second packet) it'll expect to receive something from the server and it'll give what it receives to the emulator on that frame. i.e. 3 frames delay
for no 2:
Since that delay calculation is true for both ends i.e. client's ping to server = server's ping to client, the time it takes for the game start signal to reach the client and it sending the player's first input frame is also equal to that delay calculated. To think of it in a simpler manner, the frame when it expects an user's input = (delay + 1) * connection setting frames. It does not include a certain player's data or send any data to him before this frame on server's end.
here is an example: http://img216.imageshack.us/img216/1859/examplefn0.gif
3 players in a game;
p1: 0 ping LAN connection setting
p2: 0 ping Good connection setting
p3: 0 ping Excelent connection setting
Assuming everyone sent "1" on frame 1 and "2" on frame 2 and "3" on frame 3 and etc...
On "frame 1" the server would do nothing
On "frame 2" when the server receives "1" from player 1, it'll send "100" to player 1 only i.e. player 1's first frame input with a bunch of 0s in player 2 and 3's slot
On "frame 3" it'll send back "200" to player 1 only i.e. player one's second frame input with 0s in player 2 and 3 pos
On "frame 4" it'll also expect player 3's first frame. so it'll send "301" to player 1 and player 3.
On "frame 5" it'll send "402" back player 1 and player 3.
On "frame 6" it'll send also expect player 2's input. so it'll send "513" to all the players
Of course it wont send to player 3 straight away on frame 4 because of his connection setting.
I'm not good with explaining so hope you understood.
This is how the official server and UOKS does it. You can probably tell its not 100% perfect.
vBulletin® v3.8.0 Beta 2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.