Author Topic: why?  (Read 1498 times)

hawkwind

  • Guest
why?
« on: May 24, 2005, 07:31:55 AM »
Just wondered why in build 9 you made it so we could do all the quake jumps, then you took it away in build 10. Id like to see it back as some maps were made to jump crate.

jitspoe

  • Administrator
  • Autococker
  • Posts: 18802
Re: why?
« Reply #1 on: May 24, 2005, 12:59:43 PM »
Short explanation: to reduce wasted bandwidth and make the game fair, and it's a bug that affects probably 2% or fewer maps, so it shouldn't be such a big deal.

Long explanation:
The "crate jump" is caused by roundoff error.  Positions are converted from 32bit floats to 16bit short integers when sent over the network.  In this conversion, values are rounded toward 0, so if you're at 10.999, it would round to 10, which is lower, but if you're at -10.999, it would round to -10, which is higher.  The more values that are sent, the more roundoff error there is.  If you're positioned above 0, this means you don't jump as high.  If you're below 0, you jump higher.  This happens in sandtrap and a couple other maps.

As computers have gotten faster and framerates have jumped up to insane levels, Quake2's poor design of one packet per frame has really shown itself.  If you were getting 300fps, that meant you were sending 300 packets every second.  I'm sorry, but that's just ridiculous.  So I fixed it.  In doing so, I reduced the roundoff error, and on a very select few maps, the jump height as well (though it actually increased the jump height on the majority of the maps).  Naturally, people complained.

I tried to find a workaround to pacify the babies, and thought I had done so with build 9.  See, along with each command the quake2 client sends to the server, it sends backups of the previous 3 commands as well.  That way, if a packet or two is lost, the backups are used and it carries on as if nothing happened.  Build 9 "cheated" by faking dropped packets.  The packets were sent at a set rate, and if your framerate was higher than the packet rate, the extra frames would  be put in as "backups" of "dropped" packets.  This worked OK in the right conditions, but if packets really dropped, all hell broke lose, because there wouldn't be any backups of those packets, so you'd lag freeze and/or jerk all over the place like a Chihuahua on a rubber leash.  Also, if your framerate exceeded the number of commands that could be "backed up."  You'd get the phone jack and not be able to move even on your own local server!

loial21

  • Autococker
  • Posts: 2807
Re: why?
« Reply #2 on: May 24, 2005, 05:18:10 PM »
Thanks now how do I jump out of Siege Castle.


jitspoe

  • Administrator
  • Autococker
  • Posts: 18802
Re: why?
« Reply #3 on: May 24, 2005, 06:02:44 PM »
You can't anymore.  I fixed it in the new version. :)

Eiii

  • Autococker
  • Posts: 4595
Re: why?
« Reply #4 on: May 25, 2005, 05:42:36 PM »
Ha-HA!

loial21

  • Autococker
  • Posts: 2807
Re: why?
« Reply #5 on: May 25, 2005, 05:58:47 PM »
Good for you, now anwser my question please.   :D


  Why not just explain how this jump came about, was it planned that way or did some leet geek figure it out?

cough... Bain... cough

Confused as always.  :-[

jitspoe

  • Administrator
  • Autococker
  • Posts: 18802
Re: why?
« Reply #6 on: May 25, 2005, 06:19:56 PM »
It was not planned.  The trigger simply did not cover the entire area around the bases -- you could jump around the edges of it if you were high enough.  But not anymore. :)

loial21

  • Autococker
  • Posts: 2807
Re: why?
« Reply #7 on: May 26, 2005, 05:56:56 PM »
Thanks Jitsy   smooch