PDA

View Full Version : Anti-latency (server-side hit detection / correction)



PaulusT
September 28th, 2011, 02:52 PM
I recently made a tool for Halo CE that draws other players slightly ahead of where they are, using their velocity and your ping. That is, it draws them such that you can often shoot without leading. It works for vehicles too. It is not perfect; obviously, there is no way of predicting that a player will change direction. "Draw" is also the wrong word, as it does actually affect the physics in a weird way (but only briefly, unlike one of the prototype versions, which constantly had players falling through the floor).

What would be better is if the server could correct the actions of players based on their ping. For example, the server could store the positions of players for the last second. I am not sure how many positions that is (how many updates there are per second) but I am guessing it might be 30 positions for each player. Then, when player X fires a shot (and the server is doing the collision test for the shot), all other players would have their position (temporarily) set to one of the earlier stored positions (depending on the ping of player X). Hence, player X would not need to lead his shots, although the actual hit would still be delayed.

This is a slightly simplified example. Ideally, all objects could have their positions and various other important state information stored from the previous 1 second (or the maximum allowed latency that is desired). I am also not certain how easy it is to relate events (such as the collision test of a vehicle that has been pushed by a player) to the player that caused it and how easy it would be to hook into the code for these different types of collision tests. I guess it would also be challenging to identify which bits of state need saving, especially if other objects are referred to.

I thought this idea seemed like a rather naive form latency correction and that it may not really work well enough in practice. However, I recently saw that Valve's Source engine uses this type of hit detection. Therefore, I guess it can work well.

This does allow the situation where player X appears to be in cover on his screen, but is killed by player Y, because the latency of player Y caused player X to be moved back out of cover when the server performs the hit testing. However, this is usually the case with any kind of hit detection that does not require players to lead their shots and I think it is probably a reasonable sacrifice. A limit could also be set on how much latency correction is applied.

I have thought about implementing this, but I fear that my knowledge of Halo's engine is probably too limited. I am also just about to start some other work that I should probably give priority to. I don't know much about Halo's object list and how objects are deleted/added etc. I don't know where the different collision tests are performed and what parameters are accessible. I thought that, to start with, it might be worth just trying a proof of concept, where only player positions are stored and only immediate hit tests (e.g. pistol?) are considered. I remember in the Halo 2 engine you could figure out who had caused the damage (or who owned the bullet), but I can't remember the details. Thus, I think it would be possible to intercept the hit detection function and adjust player positions as explained above.

I know that "idea" posts are not appreciated, but I hope those with a good knowledge of the Halo engine can see that this is perhaps reasonably plausible. Of course, I have probably missed many issues that would arise and maybe this is just not feasible. I may attempt this one day, but it would be even better if those more knowledgeable are interested in trying it.

(On a somewhat related note, does anyone know the units of velocity that is found in Halo's memory for players? How many updates are there to player positions per second? The overall related question: What is the formula for working out where a player should be drawn given the velocity and current position (of others) and ping (of the client)?)

TPBlinD
September 28th, 2011, 11:47 PM
The latency and leading are what keeps bringing me back to this stupid, terrible game lol

n00b1n8R
September 29th, 2011, 12:44 AM
The latency and the leading is what keeps me leaving this stupid, terrible game lol

n00b1n8R
September 29th, 2011, 01:04 AM
Can you post a video of this in action? I could see it being useful for ranged engagements but it sounds like it would make pistol strafing and close quarters stuff really confusing.

supersniper
September 29th, 2011, 04:02 AM
i'm intrigued

sanni
September 29th, 2011, 09:30 AM
I rather would be interested in Halo CE with Halo PC netcode.

PaulusT
September 29th, 2011, 02:57 PM
The latency and leading are what keeps bringing me back to this stupid, terrible game lol
I know what you mean. But, this is not how the game was meant to be played. It also means the leading depends on your connection, which means it is inconsistent (across servers, players, etc.). Introducing people to Halo PC (the upcoming release of Halo Anniversary means people are more likely to get back into Halo 1) is difficult due to the inconsistent and confusing leading. I believe more recent versions of Halo require leading, but this is not caused by network latency - the bullets are just slow. Thus, when you are in close range combat, no leading is required. Otherwise, the amount of leading depends on how far away your target is, which means even more skill is needed (adjust lead based on feedback and by judging the distance). This could presumably be added to Halo PC quite easily server-side, if desired. Weapons like the sniper rifle could have no leading, as you might expect.


Can you post a video of this in action? I could see it being useful for ranged engagements but it sounds like it would make pistol strafing and close quarters stuff really confusing.

I am not sure why you would think this (hopefully that doesn't sound too patronising!). I find it particularly effective for close quarters stuff, as judging the player's velocity (without the tool) is much harder when you are right next to them!..spinning round etc.

jwP-GbXnPew

I would have liked to have provided better footage, but even this took a long time to capture and upload. I have amazing ping for the first and third segments, but the middle segment I have about 100 I think. Sorry for the poor gameplay/skill. As hinted before, I have not got the prediction amount/formula correct so I manually adjust it during gameplay. For example, when shooting the guy in the warthog, I would be getting an instant kill if I had the prediction amount correct (from experience).

As I said before, the prediction can be incorrect if players change direction. This would NOT be the case if this correction was done server-side (as it would not be a prediction) - this is what I am proposing. (EDIT: The server would remember the history of positions of player hitboxes and they would "lag" behind at the server. Players could then shoot at players on their screen and when the message reaches the server, the lagged hitboxes should be in the position so that the shot hits. This is a simplified explanation, as the lagged position of the hitboxes differs depending on who made the shot - it is their ping that decides how much to lag the hitboxes. Here is an explanation for Vale's Source engine games - e.g Counter Strike - http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Lag_compensation . Note that player positions are moved back only to do a calculation. The clients never see this.) The main source of error would be inconsistent latency or not being able to get an accurate enough measurement of latency (from client to server).


I rather would be interested in Halo CE with Halo PC netcode.

Why wouldn't you just play Halo PC? (I can't remember the disadvantages - can't most Halo CE features be added to Halo PC?). What are the main noticeable differences (problems) in the netcode? I did happen to notice (in Halo CE) the variables "use_new_vehicle_update_scheme" and "use_super_remote_players_action_update", which are set to true. These can be set to false by patching your server to enable devmode. I have no idea if this would make it more Halo PC-like.

Kornman00
September 29th, 2011, 04:44 PM
I rather would be interested in Halo CE with Halo PC netcode.
Custom Edition uses the same networking code as PC.

urbanyoung
September 29th, 2011, 04:51 PM
This sounds like quite an interesting idea. I think you'd need to modify the collision system that Halo uses based on which objects are owned by which player. I've never actually looked at Halo's collision detection, but I assume it's quite complex. Pretty cool idea, might be fun to have a look into.

flyingmonkey3
September 29th, 2011, 05:49 PM
I'm a little confused about what this does exactly. Does it change where players are drawn or does it change their actual positions based on ping?

Mator
September 29th, 2011, 09:41 PM
This is interesting.

Obviously the big problem we keep seeing in the videos is whenever there's a change in direction there's a "warp". When jumping there appears to be an inverted effect where the player gets put into the ground. However, run server side it might be different. Let me think... Server side it would basically add a certain constant defined by the player's ping multiplied by the player's velocity vector for the position coordinates to each client. Yes, that should work. Though I don't know if that would remove the warp factor due to directional change (or acceleration, what have you). The server is still receiving the position packet with some delay, as defined by the ping between the player whose position corresponds to the packet and the server. Due to this you'd still see some directional warpage, though it would be half as strong as shown in the video. Overall it'd still make a difference, probably positive. Of course, if this becomes used by many servers players would start taking advantage of this by changing direction a lot (short strafing), which is already done by some skilled players. This would lead to a lot of desync corrections (warps, what have you) because position is being simulated ahead of time. Thus short-strafing would in a sense counter the usefulness of the program entirely. But it's certainly worth a test.

... I wrote a whole bunch more after this but modacity logged me out so it was lost. Fiddlesticks.

In short: because collision between dynamic objects is calculated client-side and because there's still delay between client and server you aren't going to be able to fix this, unless you recode halo's netcode to deal with collisions between dynamic objects server-side.


-Mator

n00b1n8R
September 29th, 2011, 09:48 PM
This sounds like quite an interesting idea. I think you'd need to modify the collision system that Halo uses based on which objects are owned by which player. I've never actually looked at Halo's collision detection, but I assume it's quite complex. Pretty cool idea, might be fun to have a look into.Changes where players are drawn by the client based on the client's ping.

jcap
September 29th, 2011, 10:31 PM
Obviously the big problem we keep seeing in the videos is whenever there's a change in direction there's a "warp". When jumping there appears to be an inverted effect where the player gets put into the ground. However, run server side it might be different. Let me think... Server side it would basically add a certain constant defined by the player's ping multiplied by the player's velocity vector for the position coordinates to each client.
The way I understand it, the reason for the warping is because this is client-sided, and it's a fault he recognizes. The problem with Halo's lag is that the server sends you the position information for all the players in the server, but by the time you actually see and shoot them, you are already about 100-200ms behind when the server originally sent the position to you. We make up for the difference by leading our aim. Since he uses the player's current velocity to put the actual placement of the biped on the client ahead of their actual position on the client, you have a better visual representation of where the player will most likely be when the shot is registered on the server. But it has its downsides. You can see that the prediction glitches slightly when a player jumps, and it could very easily confused if players strafe side to side a lot.

Paulus hopes to remedy these issues by making it server-side. Performing this action server-side would actually be the reverse of the client-side mod. The objective wouldn't be to modify the positional data that the server sends out to the clients. Instead, the server would have to recall a "history" of where the player has been for the past 100-200ms. The player's actual hitbox (or whatever registers hits) would have to lag behind the actual player's position, like a ghost or shadow player. This would allow the clients to see player positions as they normally would, but when they shoot the player they see, the server would have the necessary adjustments to compensate for the delayed client response, and it would hopefully register a hit.

flyingmonkey3
September 29th, 2011, 11:52 PM
Ah so instead of moving the visual of the player forward, it sort of delays the hitbox?

t3h m00kz
September 30th, 2011, 01:04 AM
Fuck yes.

Why the fuck wasn't this done years ago?

Can we expect a release soon?

supersniper
September 30th, 2011, 01:20 AM
seriously this is amazing

sanni
September 30th, 2011, 03:18 AM
Custom Edition uses the same networking code as PC.

Interesting, but then what makes playing CE such a different experience than playing PC? Somehow in CE people with pings over 100 don't experience as much lag as in PC. I always wanted to know what has been changed from PC to CE, because it plays different.

PaulusT
September 30th, 2011, 03:44 AM
Performing this action server-side would actually be the reverse of the client-side mod. The objective wouldn't be to modify the positional data that the server sends out to the clients. Instead, the server would have to recall a "history" of where the player has been for the past 100-200ms. The player's actual hitbox (or whatever registers hits) would have to lag behind the actual player's position, like a ghost or shadow player. This would allow the clients to see player positions as they normally would, but when they shoot the player they see, the server would have the necessary adjustments to compensate for the delayed client response, and it would hopefully register a hit.

Thank you for the great explanation! I should have made this clearer. The tool that I have made is client-side, gives a rough prediction and has the warping issue. The server-side fix would not be a prediction, as such, and would not have this issue. Ever played Counter Strike? It would be like that (i.e. no leading - plain and simple). I have edited an earlier post to make this clearer. Note that the amount of lag for the hitboxes in each calculation depends on the player who made the shot (but there is no need to worry about this detail unless you want to try and implement it).

Here is an explanation for Vale's Source engine games - e.g Counter Strike - http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Lag_compensation . Note that player positions are moved back only to do a calculation. The clients never see this.


Paulus hopes to remedy these issues by making it server-side.

Paulus is suggesting these issues can be remedied by making it server-side. :D


BTW, the moderators are amazing! Thanks for all the fixes!

Kornman00:

I guess you are quite busy and don't have much time for something like this? Do you think the hit test function for things such as pistol bullets could be found around the code that decreases the amount of ammo during a pistol shot? Or, does a pistol shot create an object (bullet), which then causes hit testing to be performed later? (From Open Sauce: ) Would NetworkDatumData.owner_player_index work for this? Is OBJECTS_UPDATE_HOOK called once per tick (what happens before/after this hook)? Any other [hints/useful info] you can think of?

Sean Aero
September 30th, 2011, 05:30 AM
Custom Edition uses the same networking code as PC.

Things included in the new executable (HaloCE) are "Fast Shaders" (improves performance up to 60% on pixel shader hardware), improved network code (reduces the incidence of player "warping"), and lots of new features that provide options for players to improve their multiplayer games. Perhaps, most importantly, however, the new executable allows end users to play a potentially endless volume of new content created with the Halo Editing Kit.

Source: http://uk.pc.gamespy.com/pc/halo-combat-evolved/509885p1.html

urbanyoung
September 30th, 2011, 05:48 AM
Or, does a pistol shot create an object (bullet), which then causes hit testing to be performed later?

Firing a weapon spawns a projectile with the owner set to the shooting player. I then assume the projectile works like a normal object and its damage is triggered if a collision is detected, although I may be wrong. I haven't looked into this but it seems logical. If this is how it works then one would need to override a bit of the collision detection and use old (calculated) coordinates which are calculated based on the shooting player's ping and their recent location data. I don't think implementing something like this would be too difficult if you have a framework already done (OpenSource, Gandanur, Phasor, SAPP w/e). The most time consuming thing will be reversing the collision system and understanding how it works, so you can change it.

PaulusT
September 30th, 2011, 10:55 AM
I was sort of assuming that we could find a function F that is called to perform a collision test for an object. Intercept calls to F; if the object is owned by some player, modify player positions before calling the original F and then set them back once original F has completed. Thus, there is no need to understand much about the collision system. The challenge is mainly finding F, although this may not be challenging really (for someone who has reverse-engineering experience). The problem is, this assumes that the collision tests simply read and make use of player positions, but there might be a separate pass that computes collision info, which is then used for collision testing. (E.g. I believe collision code in most games partitions the world so that only collisions between objects in the same or neighbouring partitions need to be checked.) Therefore, changing the player positions would not have any effect, as the collision info has already been calculated (or, it may give unexpected results). But this is all just pointless speculation really...

t3h m00kz
September 30th, 2011, 04:12 PM
So, reading this more in-depth, it sounds like you're planning for a server add-on type deal, similar to whatever DG uses for the Zombies server, as opposed to a program running along side the client. I really like this idea, and if it comes through I hope a bunch of servers pick this up. This will have fixed THE PROBLEM with CE, and may provide a more enjoyable experience for new users. The game will feel like it should feel. I just hope this project actually reaches completion, this should have been implemented a long time ago, back in the prime of CE.

Safe to assume the client-side correction you're showing in that video won't be released, as it would be more of a cheat than anything.

Also... how well do grenades work? I have to ask, because they lag behind based on ping by default.

If you need someone to help you test this stuff, let me know. I'm enthusiastic about seeing improved networking in this game.

flyingmonkey3
September 30th, 2011, 04:15 PM
Perhaps instead of only modifying player positions you modify the positions of all moving objects?

supersniper
September 30th, 2011, 04:28 PM
the only problem with grenades is the whole stick issue with plasmas...

Pooky
September 30th, 2011, 05:06 PM
Also... how well do grenades work? I have to ask, because they lag behind based on ping by default.

The thing most people don't get is that EVERYTHING is affected by ping. That includes melee, grenade sticks, vehicle splatters, everything. You should be leading every action you do, not just pistol bullets.

Kornman00
September 30th, 2011, 05:44 PM
improved network code (reduces the incidence of player "warping")
It's still running the same networking layer found in HPC. The only real difference is the introduction of two new message-packets (super_remote_players_action_update and super_ping_update IIRC) and whatever logic that follows for them. However, it is still the same underlying networking code.

t3h m00kz
September 30th, 2011, 05:52 PM
The thing most people don't get is that EVERYTHING is affected by ping. That includes melee, grenade sticks, vehicle splatters, everything. You should be leading every action you do, not just pistol bullets.

I know. The difference being you actually SEE the lag with the grenades, not the other attacks, which is why I ask, because there's an inconsistency.

supersniper
September 30th, 2011, 09:06 PM
The thing most people don't get is that EVERYTHING is affected by ping. That includes melee, grenade sticks, vehicle splatters, everything. You should be leading every action you do, not just pistol bullets.he is right, the hardest thing for me to lead are grenade sticks I still can't get that down.

t3h m00kz
September 30th, 2011, 09:28 PM
The amount you would have to lead the grenades wouldn't change if they visually lagged or not. They act just like everything else, save for the visuals.

In fact, you can trigger visual lag in the other weapons by ticking "Projectile is client-side only" in the weapon tags, which give you a server-side visual of the projectiles, IE you shoot, and the projectiles appear when the server detects them as opposed to instantaneously, similar to Unreal Tournament or Gears of War. The grenades act like this, though there are a few differences in how they act as far as effects go.

The Snow Grove shotgun has this lag.

flyingmonkey3
September 30th, 2011, 09:57 PM
I may be wrong but doesn't checking "projectile is client-side only" just make it so that only one projectile appears for clients while unchecking it causes 2 projectiles to appear, one being the "client projectile" which is usually drawn and the other being the "actual server projectile"?

t3h m00kz
September 30th, 2011, 10:20 PM
No.

Only one projectile appears in either case. It's a "Show Projectile Lag" off/on switch, basically.

Just remembering, another example or this in action would be the fire arrow in Hyrule Field. The problem with this option being, explosions and effects of that sort don't appear on your screen.

flyingmonkey3
September 30th, 2011, 11:09 PM
I just checked and it seems to behave as I described. By default the needler has the flag checked. When I uncheck it, I get the following. I DID NOT make the weapon fire 2 projectiles at once. The modified map is the map the server runs, not the map the client has.
http://www.xfire.com/video/4e5c6b/

Note that when the projectiles hit the wall only one of them leaves a decal, leading me to believe that one is the "real" projectile according to the server while the other is the projectile that players normally see.

Or perhaps the problem is that I did this on PC and not CE?

E:
I did some more testing and here's what I found: Same procedure as before. "Projectile is client-side only" unchecked. Server runs modded map. Client has default map. This time I also changed the projectile the needler references to the sniper bullet.
http://www.xfire.com/video/4e5c81/

(http://www.xfire.com/video/4e5c81/)With the projectile swapped and "projectile is client-side only" checked as it is in the default map, you would only see a needle being fired. With the projectile swapped and "projectile is client-side only" unchecked as seen in the video, you get both the sniper bullet, the "real server projectile" and the needle, the "fake client projectile".

This leads me to believe that the "projectile is client-side only" flag does exactly what it says. When checked, it causes the client to only see the "fake client projectile". You can test this by joining a game and using the needler. Sometimes the needles appear to miss an enemy yet you still hit him and vice versa, hence the "fake".

When the flag is unchecked, the client sees a "real server projectile" in addition to the "fake client projectile". In the case of the modded map in the video, the "real projectile" would be the sniper bullet as the needler has had its projectile reference swapped for the sniper bullet. Notice how when the sniper bullet misses but the needler hits, the enemy takes no damage. On the contrary when the sniper bullet hits, whether or not the needle also hits, the enemy does take damage.

t3h m00kz
September 30th, 2011, 11:33 PM
uhm, I've never seen that on CE. I did the UT2k4 maps, and a ton of the weapons had that option checked, and there definitely weren't two projectiles when those weapons fired.

Here's a video someone made of the mod.. it's hard to see, but it's noticeable when he fires the flak cannon, link gun and minigun that there's definitely not a client-side projectile.

http://www.youtube.com/watch?v=sA0gvUxb5po
(http://www.youtube.com/watch?v=sA0gvUxb5po)

flyingmonkey3
September 30th, 2011, 11:44 PM
In conclusion the flag has different effects in PC and CE then?

E: To clarify, when the flag IS checked, there is always only 1 projectile. When it IS NOT checked, there can be 2.
E2: Sorry to sort of hijack the thread, but I would like this to be clarified.

t3h m00kz
October 1st, 2011, 09:16 PM
Don't know. Don't have PC installed and I can't check on it. It looks like the client is firing a needle and the server is firing a sniper round. Map mismatch maybe?

Either way, yeah we kind of hijacked the thread, but my concern about grenades remains.

PaulusT
October 2nd, 2011, 12:21 PM
Safe to assume the client-side correction you're showing in that video won't be released, as it would be more of a cheat than anything.

Also... how well do grenades work? I have to ask, because they lag behind based on ping by default.

Don't worry - I won't release it. I was considering it at one point though, as it is better than the many available aim bots (as in, less of a cheat - but still a cheat I guess).

In the client-side tool, grenades are "drawn" slightly further ahead, based on velocity and ping, as you might expect. It's not great, as they end up going through walls (as in the video) and generally warp. Sometimes, they appear to land on a ledge, but this was incorrect so they then warp to a different location and explode :( Colliding with other players is also bad (although, perhaps this was always bad). Vehicles are the worst, as they are also drawn ahead, even when the client is driving. This should be fixed really, but it doesn't bother me that much - I usually just disable the tool when I am driving. Of course, none of this is really important, as I won't release this tool and these problems wouldn't exist in the server-side idea. Grenades could theoretically be adjusted, such that, when they explode, all other players are moved back to their recent positions (from the positions history). However, this might be a bit harsh! I think focusing only on bullets and player positions would be a good initial goal....although I think your point is a good one and worth testing if this gets off the ground.



Perhaps instead of only modifying player positions you modify the positions of all moving objects?

This would be the best plan, but, as an initial goal (and when giving examples), I thought I would focus on player positions only.

Pooky
October 2nd, 2011, 01:27 PM
Sounds pretty similar to just using cl_timenudge in any quake 3 engine game, and I've never heard anyone call that a cheat. The only difference between leading and shooting at a 'predicted' client for an experienced player is that in the former you're using your own judgement, which is more reliable than any computer prediction anyway.

t3h m00kz
October 2nd, 2011, 02:54 PM
I'd say it would potentially be safe to post it here if you want, as we're not really as much of a community of cheaters as much as a community of modders. I would be lying if I said I didn't want to see this in action first hand. Not having to lead is something I've been wanting to experience for years.

I'd actually be fine with the client side hack being released. It'd be just another tool to enhance the game, similar to yelo or third person hacks. Ultimately its up to you, its not a tool designed to cheat with, and it enhances the game in ways.


Sounds pretty similar to just using cl_timenudge in any quake 3 engine game, and I've never heard anyone call that a cheat. The only difference between leading and shooting at a 'predicted' client for an experienced player is that in the former you're using your own judgement, which is more reliable than any computer prediction anyway.

So... you're saying this would not be advantageous in any way.

That's rediculous. If this gets released to the general community, players who don't know what leading is will suddenly be getting more kills. The tiny few skilled people may not get much of an advantage boost, but you're not thinking about the rest of the people who play this.

JackalStomper
October 2nd, 2011, 04:16 PM
The tiny few skilled people may not get much of an advantage boost, but you're not thinking about the rest of the people who play this.

Most of the players you're talking about can't even read this thread.
Or afford a legitimate copy of halo.
And are already cheating anyway.

Pooky
October 2nd, 2011, 04:58 PM
That's rediculous. If this gets released to the general community, players who don't know what leading is will suddenly be getting more kills. The tiny few skilled people may not get much of an advantage boost, but you're not thinking about the rest of the people who play this.

That's retarded. All something like this could conceivably do is make the game more playable for people who don't understand the concept of leading. Ping is still fully in effect, so it wouldn't offer an advantage in any way except giving you a (buggy) visual indicator of leading which any skilled player can do anyway.

see again: cl_timenudge

t3h m00kz
October 2nd, 2011, 05:06 PM
Whatever

TPBlinD
October 2nd, 2011, 10:36 PM
People who don't understand leading shouldn't be playing anyway.. lol

t3h m00kz
October 2nd, 2011, 10:50 PM
>if s omeone sucks at a game they shouldn't play

That's what I'm hearing. Fantastic sportsmanship and logic! You ought to be proud.

Pooky
October 2nd, 2011, 11:02 PM
People who don't understand leading shouldn't be playing anyway.. lol

:ugh:

Yeah fuck 90% of Halo PC/CE players as well as any potential new players because they don't know about a completely undocumented aspect of the game. That makes so much sense!

TPBlinD
October 3rd, 2011, 10:07 AM
This game is like 7 years old, if they don't know how to play the game how it was made then realistically they shouldn't keep trying... lol. Pretty sure most people understand lead now they just blow dick at it.
There aren't going to be any new players that aren't pirating it (mexican). Who gives a fuck?

Donut
October 3rd, 2011, 11:03 AM
if they don't know how to play the game how it was made then realistically they shouldn't keep trying
i singled this part of your post out in hopes that youd re-read it and see how ridiculous that is.

people dont know how to do something -> stop trying. by that logic, none of us should be here. at all.
E: and dont give me that "the game is 7 years old" thing. i started playing in 2006, and i know people who play on and off that still arnt very good with leading. im mediocre at best.

flyingmonkey3
October 3rd, 2011, 12:09 PM
if they don't know how to play the game how it was made then realistically they shouldn't keep trying

In other words: If at first you don't succeed, give up. Sounds like quality advice.

Cortexian
October 3rd, 2011, 12:19 PM
There's a difference between being a typical pirate/mexican that literally just cannot wrap their head around the concept of leading, and a normal person who will actually catch on and improve.

There are literally a few players I know that have been the same level of terrible for 3+ years at least.

TPBlinD
October 3rd, 2011, 02:58 PM
i singled this part of your post out in hopes that youd re-read it and see how ridiculous that is.

people dont know how to do something -> stop trying. by that logic, none of us should be here. at all.
E: and dont give me that "the game is 7 years old" thing. i started playing in 2006, and i know people who play on and off that still arnt very good with leading. im mediocre at best.Really lol.
Seeing as how thats totally what I said bro. Leading is part of the game, if you can't wrap your head around a key game mechanic in a dead game then what are you trying to prove?
Some people are just naturally terrible at video games, and while the leading is gimmicky as fuck it makes the gameplay very unique. I like it, others do too.
It doesn't really matter though, I'm amazing at the game either way B)

TPBlinD
October 3rd, 2011, 02:59 PM
In other words: If at first you don't succeed, give up. Sounds like quality advice.
Yup. I live my life on the principles around my feelings towards Halo: Custom Edition. I have the wisdom of a wizard.

Donut
October 3rd, 2011, 03:20 PM
Really lol.
Seeing as how thats totally what I said bro.
uh, yeah:

People who don't understand leading shouldn't be playing anyway.. lol

This game is like 7 years old, if they don't know how to play the game how it was made then realistically they shouldn't keep trying... lol. Pretty sure most people understand lead now they just blow dick at it.


Leading is part of the game, if you can't wrap your head around a key game mechanic in a dead game then what are you trying to prove?

i dont even know what else to say at this point. pooky pretty much hit the nail on the head: :ugh:
E: what the fuck, you just answered your own question and proved my point:


Some people are just naturally terrible at video games, and while the leading is gimmicky as fuck it makes the gameplay very unique. I like it, others do too.

TPBlinD
October 3rd, 2011, 04:06 PM
uh, yeah:




i dont even know what else to say at this point. pooky pretty much hit the nail on the head: :ugh:
E: what the fuck, you just answered your own question and proved my point:
wat.
i said people who can't understand leading shouldn't be playing
theres always cod.

t3h m00kz
October 3rd, 2011, 04:51 PM
>people shouldn't be allowed to play what they want to play if they suck at it!!!

I totally agree bro. Let's build up concentration camps and keep these fuckers out of the game.

Donut
October 3rd, 2011, 05:21 PM
im gonna take one more stab at this: you said people who dont understand leading shouldnt play this game. that in itself is stupid since there are trick servers and maps like coldsnap. i dont play them but other people do. then you said this game has a unique feel to it. you like it and so do other people. so people might not completely understand leading, but its not like they have no right to play because of that.

by the way, how do you think most people figured out you have to lead shots? it never even occurred to me until somebody told me.

p0lar_bear
October 3rd, 2011, 06:31 PM
I think blind is talking about idiots that act like compensating for latency is game-breaking and impossible to do, and not necessarily people who get it but just have issues pulling it off. But he could have worded that so much better.

Personally, I'd like to think that this would help me so much for sniping, but after playing other games I find that I'm just horrible at hitting a target. Leading in Halo actually helps me out because I'm always a little too early or too late. %-)

Pooky
October 3rd, 2011, 07:19 PM
Some people are just naturally terrible at video games, and while the leading is gimmicky as fuck it makes the gameplay very unique. I like it, others do too.

I agree that leading adds more to the game that it takes away, but I think it should be more consistent for all players. That said, I gotta point out that leading is not at all unique to Halo. Lots of other games have it, including all games based on the Quake 3 engine (though usually not as bad as Halo).

At any rate, a client side app to make leading more straightforward is no more a cheat than having a targeting reticule. In both cases it's just taking something you have to do anyway (aim) and removing some of the bullshit from the equation.

supersniper
October 3rd, 2011, 07:20 PM
way to fucken threadjack this thread...

Kornman00
October 3rd, 2011, 07:31 PM
if only candle jack were he-

t3h m00kz
October 3rd, 2011, 08:07 PM
leading is not at all unique to Halo. Lots of other games have it, including all games based on the Quake 3 engine


Except for Quake 3.

n00b1n8R
October 3rd, 2011, 10:15 PM
Except for Quake 3.
Yeah nah, go play quake live and delete that post.

El Lobo
October 3rd, 2011, 10:18 PM
Love the leading.

:lobo:

Pooky
October 3rd, 2011, 10:26 PM
Yeah nah, go play quake live and delete that post.

This. Hell, go play instagib on any non Unlagged server.

t3h m00kz
October 3rd, 2011, 10:26 PM
I've never had to lead in Quake Live instagib.

Unreal on the other hand,

Pooky
October 3rd, 2011, 10:27 PM
I agree that leading adds more to the game that it takes away, but I think it should be more consistent for all players. That said, I gotta point out that leading is not at all unique to Halo. Lots of other games have it, including all games based on the Quake 3 engine (though usually not as bad as Halo).


This. Hell, go play instagib on any non Unlagged server.


I've never had to lead in Quake Live instagib.

Unreal on the other hand,

GG no read. Unlagged is automatically applied to Quake Live iirc, which makes the leading quite a bit less prominent than in vanilla but it's still there. Best noticed on really high pings.



The solution Unlagged can provide

Unlagged is a server-side technique. A normal server only stores the current positions of all players. So the server forget where the enemy was when you shot at him.

In Unlagged the positions of all players are stored over a short period of time on the server.

When the server now receives your packet with the information that you shot at your enemy it can calculate, based on the knowlege about your ping, the position of your enemy back to the position where he stands when you fired at him. It can now see that you really hit him at the time when you pressed the fire-button and can give the enemy the damage he would get when you played with ping 0.

Is Unlagged the right solution?

The biggest problem nowadays is the ping that often does not allow fair games. Unlagged is a really good solution for people with low and high ping (altough it cannot compensate extremly high pings). But the player with the better ping will still have slightly better chances in a fight, because the packet that he wants to attack reaches the server earlier than the one from the high ping player.

Unlagged cannot reduce the real ping to 0 and it will never be possible to really simulate a ping 0, but it is the way to go. It allows games between people with different pings and the game will be fair enough because everyone has the chance to hit where he actually fired.

With Unlagged you have a chance to win against an equally skilled player. You won't lose only because it's to hard to hit your enemy.
http://unlagged.com/

t3h m00kz
October 3rd, 2011, 10:31 PM
gg no read, more like gg I've never played vanilla Q3, and I've heard Live is a copy/paste and therefore it's easy to make assumptions.

Pooky
October 3rd, 2011, 10:56 PM
It's pretty similar, but I wouldn't call it a copy paste. There are a lot of assorted small changes. But that's beside the point. The fact is that as long as there's ping, there's always going to be some degree of leading on any game that uses server-side hit detection like Halo.

TPBlinD
October 3rd, 2011, 11:18 PM
>people shouldn't be allowed to play what they want to play if they suck at it!!!

I totally agree bro. Let's build up concentration camps and keep these fuckers out of the game.lol




by the way, how do you think most people figured out you have to lead shots? it never even occurred to me until somebody told me.
then you're dumb.
shots aren't hitting? welp find out where the sweet spot is and learn 2 play

the game is built the way it is. i mean modding the game is cool and all but i have no mods or anything when i'm playing and its still fun as fuck after all these years
easiest fucking game too.



e: LOVE THE LOBO

Donut
October 3rd, 2011, 11:47 PM
then you're dumb.
shots aren't hitting? welp find out where the sweet spot is and learn 2 play
i typed up a paragraph response with some points outlined, stared at it for a few minutes, then i deleted it when realized nothing is going to change your mind when youre sporting an attitude like "all bad people gtfo".
E: also done crapping up this thread.

n00b1n8R
October 3rd, 2011, 11:56 PM
I'd just like to add that I quoted the wrong post and I've never had to consciously lead in quake live.

t3h m00kz
October 4th, 2011, 12:04 AM
damn it noobinator!!

urbanyoung
October 4th, 2011, 02:16 AM
This thread would've made for an interesting discussion, too bad you two suck and raped the thread.....

t3h m00kz
October 4th, 2011, 03:52 AM
Sucking and raping is what I do.

Pooky
October 4th, 2011, 05:13 AM
I'd just like to add that I quoted the wrong post and I've never had to consciously lead in quake live.

Go play it with 800 ping.

Of course you haven't fucking noticed it, that's why Quake Live has that matchmaking thing to give you servers close by with people on a similar skill level. Also notice how I said the leading in other games isn't usually as extreme as in Halo. Even Unlagged isn't a perfect solution, because it often results in people getting shot after they already ran around a corner.

t3h m00kz
October 4th, 2011, 05:26 AM
The most least bullshit game I've ever played network-wise is... ironically, Sauerbraten, which is free and open source, and which I play periodically to this day.

Why is it the least bullshit? Because if you shoot someone, and it hits them, it fucking hits them. Immediately, the game recognizes damage needs to be sent to them. No latency bullshit. The only thing that may happen is they kill you before the damage is sent to them... which is fucking fair. COD3 had similar networking, before Treyarch moved over to whatever the fuck COD4 used. Why they changed it up is beyond me. I fucking hate getting jipped out of a kill because I died before my damage lands ALA Halo 2/3 and every COD game to this day.

Funny how the most popular industry standard games can have absolutely horrid networking and damage registration. I don't know what the fuck they're thinking.

E: Jesus christ, I seem to love the word fuck.

urbanyoung
October 4th, 2011, 05:57 AM
The most least bullshit game I've ever played network-wise is... ironically, Sauerbraten, which is free and open source, and which I play periodically to this day.

Why is it the least bullshit? Because if you shoot someone, and it hits them, it fucking hits them. Immediately, the game recognizes damage needs to be sent to them. No latency bullshit. The only thing that may happen is they kill you before the damage is sent to them... which is fucking fair. COD3 had similar networking, before Treyarch moved over to whatever the fuck COD4 used. Why they changed it up is beyond me. I fucking hate getting jipped out of a kill because I died before my damage lands ALA Halo 2/3 and every COD game to this day.

Funny how the most popular industry standard games can have absolutely horrid networking and damage registration. I don't know what the fuck they're thinking.

E: Jesus christ, I seem to love the word fuck.

Games don't work like that because that design is retarded. That design, as you describe it, trusts the client. You cannot do this. If the server trusts the client to notify it of damage then it can be exploited. All you need to do is either break the packet security and inject a "hit" packet, or make the client do it for you with a few function calls. You would be able to "shoot" people without even looking at them. The way modern games detect hits is really as good as you can get.

t3h m00kz
October 4th, 2011, 01:37 PM
Easily hackable, yes, but Client/Server can still be quite hackable. IE Halo 2. Ironically I've never seen nearly as many hackers in Sauerbraten, save for some people creating an AI controllable via console commands in a server. Even with CE, you've got aimbots and wallhacks.

With console games, I'd imagine you'd have to worry about hackers much less than PC titles, and therefore it baffles me why consoles don't take advantage of trusting the clients more. There's a fraction of the amount of hackers as there are on the PC versions.

Pooky
October 4th, 2011, 07:06 PM
Well, the good thing about the Server/Client model is that a good amount of hacks like speedhacks etc. are not possible because all players are controlled by the server. Halo 2/3/Reach do not use this system, instead they trust the clients. I used to have a whole gallery of screenshots of people getting lasered straight through walls because of this.

t3h m00kz
October 4th, 2011, 07:46 PM
Halo 2/3 very much uses client/server. The hit detection is just more advanced. In Halo 2 you cannot hit people with BR shots unless you have the red reticule. Even if the projectiles connect on your screen (I've tested this with video, slowed it down, seen cases where bullets connect with no damage delt). At long distances, ALA Coag, in order to hit, you have to lead. Halo 3 uses a more advanced version not reliant on the red reticule, and you will see cases where the bullet spread will cause the bullets to zip past the enemy's head, but the server will register a headshot. I'm not sure about Reach.

I used to have a video showing tons of shots in Halo 2 that didn't hit. Lost it, apparently.

Pooky
October 4th, 2011, 07:50 PM
Point taken on Halo 2, I'd almost forgotten about this video.

TZ5C9CNn-e8

That said, I still ran into an obnoxious amount of situations in Halo 3 involving people getting lasered or sniped through walls... guess the netcode ain't all that advanced. Personally I prefer Halo 1's system, at least the leading was predictable.

e: WMG can suck my balls. Better link.

http://video.google.com/videoplay?docid=6305424147107573683

t3h m00kz
October 4th, 2011, 07:56 PM
I experimented and found out that that's caused by bullet redirection on the killed player's screen. The game redirects the killer's bullet to the appropriate location on the killed player's body. Notice how YOU never kill anybody through walls on your screen.

The result? You see their shots shoot off in a direction they actually didn't in order to make it look like they're shooting you.

Have player 1 aim at a corner. Have player 2 run around corner, have player 1 shoot player 2 just before player 2 is in cover. Player 2 will die from a shot that, on his screen, hit the corner due to the redirection.

So yes, it is a more advanced hit detection than Halo 1. More advanced does not mean it does not have flaws.

I had a screenshot of severe redirection in my Halo 3 files, I'll have to post it sometime..

Pooky
October 4th, 2011, 08:02 PM
Still prefer predictability over some of the wacky bullshit that happened on Halo 3 vOv

Also dedicated servers ftfw. Host advantage was huge in Halo 2 and still pretty annoying in 3 and Reach.

p0lar_bear
October 4th, 2011, 08:31 PM
I had a screenshot of severe redirection in my Halo 3 files, I'll have to post it sometime..
Besides the awesome instance of lag where Trevor got sniped by a cloud?

I digress, it happened to me all too often with the sniper in H3. I vividly remember once taking a video of me headshotting someone three times on Valhalla with it and it didn't do a damn thing to him.

t3h m00kz
October 4th, 2011, 08:38 PM
Lag? Or KARMA?

In trevor's case

Mator
October 6th, 2011, 04:20 PM
Netcode is an ongoing issue. They are constantly trying new things. Some things work, some don't. :|

t3h m00kz
October 7th, 2011, 06:38 PM
Any updates for us paulus? I'm really looking forward to this

jcap
October 7th, 2011, 09:36 PM
I think he was trying to see if anyone else would be interested in picking it up

t3h m00kz
October 7th, 2011, 10:53 PM
fuckballs

Well, if nobody does I'd say release it as it is now, otherwise it'll be one of those gems that gets locked away forever doing nothing but collecting virtual dust.

justin108
October 8th, 2011, 01:24 AM
After reading this whole thread and having played this game since it came out, I have become used to the leading, it adds an aspect that I do not get anywhere else. Although I no longer play, the lead was one thing that kept me interested. I like the fact this game has a learning curve, when I first started I went negative every time. Even after not playing for a year, it would be hard to go negative now. I can only speak for myself here, but the "lead" and learning the difference in 33 vs 133 ping (or higher) is the difference of good or baddie. It took me years to figure it out (slow learner). Now I know how to lead shots, and I think of it as "bending" bullets (ex. "Wanted" style). So why change a game we have all come to love not despite the quirks but because of them? I wish I had time to play now, but I only randomly get to read the forums when I have a sitter or my kid is asleep, and I am not working on my own blog. I am shocked Korn and Jcap are still able to spend time on here, I am sure they lead busy lifestyles also. While I do find your help useful, ultimately I feel it is ages too late. HCEL certainly could have benefited from this if implemented server side. This is only my opinion, so take it for less than a grain of salt. As the forum reads it seems many want it.

Patrickssj6
October 8th, 2011, 02:42 AM
You are not by any chance the Paulus who made the sheep/freeze trainer? :P

PaulusT
October 10th, 2011, 05:11 PM
You are not by any chance the Paulus who made the sheep/freeze trainer? :P

Yes I am :) That was actually rather simple though :( The time freeze was taken from Sheep's trainer. I also made a trainer for Halo 2 that was more impressive from a technical point of view (not just poking values into memory), but still fairly basic (and I don't think it worked too well unless you found a DLL loader). I cannot even begin to imagine how some people are able to reverse engineer so well.

As for an update, I was indeed suggesting that someone else could attempt this, as I am going to be pretty busy for a while. I did have a quick attempt at finding potential functions to intercept; I believe (if I recall correctly) for the time-freeze hack (Halo 1 and 2), there are several functions that are called for every object in the game that needs updating. One of these was intercepted and changed to a no-op for all objects except the player. This made all objects freeze, except for the player. I believe it might be possible to intercept this function so that we check if the object to be updated belongs to a player and if so, move other objects (such as players) back appropriately. Then, move objects to their original position when the function returns.

I only did this very quickly, so I didn't even check if this is definitely the right function but:

Given Halo CE v1.09, with base address=0x00400000

0x0045C3A8 CALL haloce.004F8B20


Within the function, we reach:

0x004FBB80 PUSH ECX

I think at this point, the address of the object being updated is in a register (I can't check which one right now). Or, this may just be some other object address that is calculated, but the correct address should be calculated somewhere in the function.

I may get some time to look into this further, but if anyone is willing to contribute, it would be very much appreciated by most!

As for the arguments against fixing the lag:

It's too late: Fair enough, but I might quite like to have this for private matches with friends. Plus, people might consider this when Halo Anniversary multiplayer turns out to be nothing like the original (at least, I think that is confirmed to be the case).

Other: Halo 1 is not meant to have this lag. It was not meant to be played like this. The lag is essentially (almost) a bug, but one that the developers knew about and were never going to fix. The lag is inconsistent - players in the same server must usually lead different amounts and you must lead different amounts depending on the servers you play on. Consistent leading could be implemented on top of this fix (server-side), but it could be based on having slow bullets and could vary based on the weapon or other factors, which is probably preferable - having to lead in close-up battles makes no sense and is mostly luck!

Skarma
October 12th, 2011, 04:31 PM
I did some research on object visibility that used bounding sphere volumes to test if an object was in the view frustum or not (in my old reverse engineering references thread). I believe collision testing may do something like this, maybe with bounding boxes instead. As far as updating objects, I would also do a collision test with the bsp geometry to make sure an object isn't partially inside/under, which may be causing the warping or physics problems (depending on when you are updating positions). There is bounding information in each object structure you should check out, I think it is undocumented in OS. I can't remember the offsets since all my work was deleted. Refer to the object tags which has the bounding info also. (Centre & radius??)

Kornman00
October 12th, 2011, 10:36 PM
They're documented; see s_object_data's center/radius fields.

Skarma
October 13th, 2011, 02:18 PM
Ah, you're right! Thanks for clearing that. I hadn't checked your struct updates since I did that research a few years ago when it wasn't there. :P

PaulusT
October 13th, 2011, 03:12 PM
Thanks for the info. As mentioned earlier, note that the warping does not apply to the proposed server-side fix and no extra/added collision testing should be needed.

The question that might be important for making the server-side tool is: Does modifying the positions of players just before the bullet hit-testing have an effect?

Patrickssj6
October 13th, 2011, 03:59 PM
You want to send a fake player position from the server to the client before the bullet-collision testing?

The only way I see "improving" the latency would be just to move the player ahead into the predicted direction client sided...and pray that the predicted position is right.

Choking Victim
October 13th, 2011, 04:50 PM
I remember a predicted_position field in the s_player_datum struct in an older build of Open Sauce. I've personally never messed with it, but maybe you could make use of it (assuming it does what you're looking for). If not, there's always the possibility of taking into account the player's looking vector and throttle key states and using them to more accurately predict the player's next position.

PaulusT
October 13th, 2011, 05:00 PM
You want to send a fake player position from the server to the client before the bullet-collision testing?

The only way I see "improving" the latency would be just to move the player ahead into the predicted direction client sided...and pray that the predicted position is right.

Ooops no sorry.

1. The method would be like this:
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Lag_compensation
(http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Lag_compensation)
Looking at the figure: A player has shot directly at the running player. At the server, the bullet shot where the cross-hairs are. It misses the player that is running. This is because the player that made the shot did not lead and by the time the message (containing the shot information) reaches the server, the running player has moved. To fix this, the server moves the running player back (but only temporarily, during hit testing), depending on the ping of the player that made the shot. Moving the player "back" is achieved by keeping a history of all player positions. This "moving back" (just for collision testing) is shown in the diagram as the wireframe model. Thus, the shot is registered as a hit at the server.

2. Regarding the question: I want to know if moving the player positions (at the server) just before the server performs hit testing actually makes a difference (i.e. change the outcome of the hit test). The player positions will be reset to their original positions after hit testing and the clients see no change in position. The reason why it may make no difference is that the player position may not be read/accessed during hit testing - it may be that the collision volume position is calculated *earlier*, using the player position. Thus, changing the player position at this later stage makes no difference. This is an implementation question and is not really important for understanding the idea (1).

3. None of this is important until someone starts implementing! :downs: I'd like to try. My previous post may help those who want to do some tests...or not.

Patrickssj6
October 13th, 2011, 05:14 PM
I remember a predicted_position field in the s_player_datum struct in an older build of Open Sauce.

I was referring to that. I don't know how the predicted position field is exactly calculated (is ping even considered?) besides position, direction and movement vector. For testing purposes you could try moving the player ahead into the predicted position :S

Of course the method you posted Paulus is a lot more thorough.

Kornman00
October 13th, 2011, 05:41 PM
s_player_datum has two different (union'd) networking structures depending on what the current game connection is (ie, if it's running as a server or client). Those structures are mostly related to processing player network message updates used by the game and shouldn't be touched directly.

Flare
October 24th, 2011, 12:23 AM
I did something like this a while back. Ultimately it didn't work because the language i was using (auto hotkey) could not track the player positions fast enough, so I planned to give up until i later someday maybe learned something like C++. But other parts were working.

Warning: this one of the first things I ever wrote and so its probably extremely nooby and hard to read, but maybe its of some use to somebody:

http://pastebin.com/JQstFiTs

Basically the program tracks and records players positions, checks when pistol shots have been fired, sees if the shooter is aimed at anyone X ping into the past recorded positions, then does damage to the appropriate player. The 'dodamage' part worked up until the part where the player actually needed to die.

There are some theoretical problems with my nooby approach:
-The program just checks if the shooter is aimed at any player, not accounting for any walls etc in the way.
-This wouldn't work for slow moving projectiles like the plasma rifle bullets. The program would have to check where in space the PR projectiles are and do a hittest if they ever came near an enemy. The pistol checking in the program was meant to be as if the pistol were instantly shot across the map, even though the real pistol bullet in normal gameplay isn't instant.
-Ping might fluctuate and not appropriately match up such that shooters can aim right at enemies and register a hit, i don't know.


I think the easiest approach would be to write something for the client that tells the server 'i just hit player 2' and then have the server do the appropriate damage. The client would just check for whenever their shot activates the pistol effect on someones armor, or something like that I guess. People exploiting the client-side system isn't a concern of mine because I simply wouldn't play with cheaters.


I would really love if someone fixed the lead out of halo. I actually still play halo PC almost every day vs other organized players, few games a day usually. Mostly @ or around http://s9.zetaboards.com/HPT_Forums/site/ . There's at least a 100 of us regularly playing. Tonight we just had a $100 3v3 tourny, the semis/finals being a few days from now. Since I know all the people I'm playing with basically, you can see why i wouldn't mind a client side solution, because it would be easy to get them to download and run the client.

DemonOne
October 24th, 2011, 03:34 PM
I remember years ago playing on a dedicated server running EPG & Kornman's Delagonator.
There were only 2 of us playing at that time and it was a blast, almost every sniper shot hit the mark.

I didn't see it mentioned in the thread, how does its method of operation differ from any other described here?

jcap
October 24th, 2011, 04:44 PM
I'm not even sure if the delagonator did anything....

Kornman, did it really work, or was it mostly placebo?

Vicky
October 24th, 2011, 04:57 PM
It did do something, reset some counters or something.. The Korn knows.

Kornman00
October 25th, 2011, 01:02 AM
Increased the player message update rates. Some of the message update times vary, but one of them (I think maybe it was related to vehicle position updates) was set to every 30 ticks, which should translate into either every second or twice a second. So I would tweak that to update more often.

I put the code for Delaginator plus a few other tweaks into OS...don't think it's own by default though.

IIRC (thinking back to the EPG days, not sure about today), there were some issues with stability or something (I forget if we were running rec0's app at the time). Not sure if this was explicitly due to the update increases or not. I think I set most of the configurable update times to be 10 ticks (so a message every 10 game ticks).

{XG}Gijs007
October 25th, 2011, 05:43 AM
Increased the player message update rates. Some of the message update times vary, but one of them (I think maybe it was related to vehicle position updates) was set to every 30 ticks, which should translate into either every second or twice a second. So I would tweak that to update more often.

I put the code for Delaginator plus a few other tweaks into OS...don't think it's own by default though.

IIRC (thinking back to the EPG days, not sure about today), there were some issues with stability or something (I forget if we were running rec0's app at the time). Not sure if this was explicitly due to the update increases or not. I think I set most of the configurable update times to be 10 ticks (so a message every 10 game ticks).

I've seen a program called halocelagtweak.exe it patches your haloceded.exe, it did seem to work(no lead) but caused for some red x's every now and then and sometimes people would lose their "network connection".
I tested it on my own servers, but because of the issues I decided to go back to the normal exe.

I believe it was based on delaginator? sehe had a look at the exe's a few days ago, but he didn't really understand what it did except for modifying a few bits in the haloceded.exe.

I couldn't find the original patcher's thread any more , but if anyone wants to have a look at it you can get it from my website: http://www.xgclan.com/HCELagTweak.exe

Shock120
October 25th, 2011, 07:35 AM
If you're gonna be increasing the update rate of the game/server, I wonder if implementing this tweak would help?

Network Throttling Index (http://www.speedguide.net/articles/windows-7-vista-2008-tweaks-2574) (from speedguide.net)

By default, Windows Vista/7 implements a network throttling mechanism to restrict the processing of non-multimedia network traffic to 10 packets per millisecond (a bit over 100 Mbits/second). The idea behind such throttling is that processing of network packets can be a resource-intensive task, and it may need to be throttled to give prioritized CPU access to multimedia programs. In some cases, such as Gigabit networks and some online games, for example, it may be benefitial to turn off such throttling all together.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
NetworkThrottlingIndex=ffffffff (DWORD, default: 10 hex, recommended: 10 hex for media sharing, ffffffff for gaming and max throughput, valid range: 1 through 70 decimal or ffffffff to completely disable throttling)
It is only recommended to change this setting in saturated Gigabit LAN environments, where you do not want to give priority to multimedia playback. Reportedly, disabling throttling by using ffffffff can also help reduce ping spikes in some online games.
Notes: Setting is available in Windows 7, Vista (SP1), 2008 Server. Default value is 10 under Windows 7, similar behavior if the setting is not present in the Registry.
Games that may be affected by this throttling: Source Engine games (TF2, Left 4 Dead, CS:S), HoN, CoD, Overlord series.
Reference: MSKB 948066 (http://support.microsoft.com/kb/948066)

{XG}Gijs007
October 25th, 2011, 09:04 AM
If you're gonna be increasing the update rate of the game/server, I wonder if implementing this tweak would help?
That tweak only helps with high amounts of bandwidth, halo packets are usually small.

Beside I think this tweak only applies to tcp traffic not to udp traffic which halo uses. -correct me if im wrong.

Anyway I've enabled this tweak on my servers for quite some time now and it doesn't seem to affect anything.

t3h m00kz
May 9th, 2012, 08:54 PM
Shameless fucking bump.

I really, really am hoping this sees a release. If it does, you sir, will have fixed Halo.

Pooky
May 9th, 2012, 10:44 PM
Fixed Halo? Leading is something I think most of us would have rather not had, but I'd hardly call it a game-breaking issue.

Donut
May 9th, 2012, 11:18 PM
would be cool to see no leading, but i kinda feel like the leading in halo actually added to the gameplay. thats just me though. i dont even play anymore.

rossmum
May 10th, 2012, 04:35 AM
fwiw clientside hit det is what you're looking for, as demonstrated by mekhazzio's mutator for red orchestra 2. serverside is the reason for the lead

JackalStomper
May 10th, 2012, 06:00 AM
halo without leading is a very boring game. Suddenly everyone can just bombard people across maps with the pistol. The leading probably added to halo's lifespan for better players imo.

Rentafence
May 10th, 2012, 11:22 AM
leading is gay and you all know it

Ryx
May 10th, 2012, 04:51 PM
As much as I despise leading and the "mastering" of it being called "skill", it feels so normal and this far into the game's life it would give some players an unfair advantage, and just wouldn't feel like halo pc.

tbh even if this is released I wouldn't use it, I'm just so used to leading and this is only a quickfix anyways.

Pooky
May 10th, 2012, 05:39 PM
fwiw clientside hit det is what you're looking for, as demonstrated by mekhazzio's mutator for red orchestra 2. serverside is the reason for the lead

In any game with server side hit detection there's going to be some degree of leading involved, especially as you get into higher pings. It could be reduced greatly from what we see in Halo though.

There are netcode solutions can eliminate leading entirely, but these come with their own problems. Clientside hit detection is extremely exploitable, people can for instance create lag-scripts which make them almost impossible for other players to hit. You could also do something like Quake 3 insta-unlagged, which stores the previous positions of players for a few ticks, kind of like a ghost trail. That tends to result in a lot of getting shot when you already ran behind a corner though.

Overall I think leading is the fairest solution for all players. It just requires a little more skill and a better understanding of the game. I'd rather have something that's consistent and reliable than a system where you can get shot clean through walls (Halo 3).

t3h m00kz
May 10th, 2012, 06:33 PM
Overall I think leading is the fairest solution for all players.

lol host advantage vs massive pings

Donut
May 10th, 2012, 06:43 PM
dont dedicated servers eliminate that problem?

Pooky
May 10th, 2012, 06:43 PM
lol host advantage vs massive pings

If you have massive ping you're going to have a bad experience no matter what kind of netcode it is. And there's no host advantage on a dedicated server. I'd rather a system where you can compensate manually than one where people get shot through walls all the time.

t3h m00kz
May 10th, 2012, 06:55 PM
when there's a significant difference in gameplay between someone with 60 ping and someone with 130 ping and there's a huge advantage with lower ping, then yeah I'd say it's definitely the most fair and balanced netcode out there too!

all those netcodes that try to eliminate all host advantage in matchmaking in games these days to make it fair for both hosts and clients? pshhh fuck those. those aren't as fair and balanced as having to lead anywhere between two to ten feet in front of somebody based on a coin-toss ping that fluctuates from server to server. who cares if a 30 pinger around the same skill range can get perfect headshots on you 90% of the time before you even turn a corner and win 90 percent of pistol fights because strafers and dancers are easier to deal with??

but in all honesty you know what's the most fair?

client-side.

too bad the argument against that is "homg hackerzz" when any game on the planet can be tampered with to allow for an unfair advantage. add votekicking, punkbuster and some decent administration and that shit's done and dealt with.

in fact halo hacks are some of the hardest to detect since it's all based on what the server says! players could be using super hella 3rd person fov wirefarme wallhack sightjack aimbot extreme and you'd never be able to find out! unless you hack right back and sightjack them!

also


I'd rather have something that's consistent and reliable than a system where you can get shot clean through walls (Halo 3).

yeah uh you can't fucking get "shot through walls." have you ever killed somebody by firing at a wall they're trying to run behind?

what's happening is the other player is shooting at you on their end before you take cover, and the game tries to compensate for inevitable network lag and portray the bullet hitting you in the head (which will often be a different angle than where they actually fired), which can sometimes redirect it into a wall.

a fix for that would be to have you teleport back to the place you got killed on the other player's screen, but then that'd be something else to complain about instead! "DUDE WTF I teleported that's bs I was behind that wall!!" or to have the bullet not redirect at all, Quake 3 style, which would have people going "WHAT THE FUCK that didn't even hit me!!!" when they look at saved films

but you want to know what it all boils down to that makes their system extremely fair and balanced? the fact that they shot you and they killed you, which is consistent (mostly, excluding a few oddities) between hosts and clients. smack halo 1's system into the ridiculously competitive world of ranked Halo 3 and people would be complaining about hosts not having to lead at all while clients have varying distances to shoot based on whatever their ping is, which would be a huge discrepancy between host and client gameplay, as well as even between clients with varying connections!

I guess people just need more of an understanding of the game, what it's trying to accomplish and how it works to realize it's not the developer's fault that there's inevitable latency oddities. all these people who complain about getting shot behind walls and getting killed by "bullshit" don't take the time to try to analyze and realize why it's happening. they just want to complain for the sake of complaining about their first-world, eight-hours-worth-of-minimum-wage-priced AAA multi-billion dollar game franchises, because 'MERICA (http://youtu.be/oPpdOHtfEzA?t=35s)

n00b1n8R
May 10th, 2012, 07:59 PM
If you have massive ping you're going to have a bad experience no matter what kind of netcode it is.
Play TF2 with 300 ping, then play Halo with 300 ping, then tell me that there's no difference.
(TF2 is playable, Halo is a joke)

t3h m00kz
May 10th, 2012, 08:09 PM
Play TF2 with 300 ping, then play Halo with 300 ping, then tell me that there's no difference.
(TF2 is playable, Halo is a joke)

dude shut up it's fair and balanced gosh

Pooky
May 10th, 2012, 08:47 PM
:words:

I'm not going to bother reading all that, but you do realize that (and I said this in my first post) you can have server sided hit detection while having dramatically less lead than Halo does (like virtually none if you have a good ping)?


Play TF2 with 300 ping, then play Halo with 300 ping, then tell me that there's no difference.
(TF2 is playable, Halo is a joke)

I never said there's no difference. I said it's going to suck no matter what kind of netcode there is.

t3h m00kz
May 10th, 2012, 08:49 PM
guess I didnt bother reading that!!!

yeah no shit I read it is that a joke?

Pooky
May 10th, 2012, 08:53 PM
I have a hard time giving a shit about anything that's posted with 2 or more exclamation points attached to it. It's not impossible to get your point across without sounding like an arrogant, confrontational douchebag.

t3h m00kz
May 10th, 2012, 08:55 PM
well a wall of well-thought out text in an attempt to make valid points sure doesn't seem to work... since it's not worth reading :downs:

Pooky
May 10th, 2012, 08:57 PM
well a wall of well-thought out text in an attempt to make valid points sure doesn't seem to work... :downs:


without sounding like an arrogant, confrontational douchebag.

??? :downs:

EDIT: I edited out your edit.

t3h m00kz
May 10th, 2012, 09:01 PM
Yeah, I mean it is pretty hard to make valid points without sounding like a hipster tool with a serious case of internet hurt and first world problems.

I mean, you'd know first hand right? :realsmug:

Pooky
May 10th, 2012, 09:03 PM
It's not impossible

=


it is pretty hard

Yeah, makes sense.

t3h m00kz
May 10th, 2012, 09:06 PM
it is pretty hard

LMAO

Pooky
May 10th, 2012, 09:10 PM
LMAO

wwH8IyQDt_I

???

n00b1n8R
May 10th, 2012, 10:46 PM
I never said there's no difference. I said it's going to suck no matter what kind of netcode there is.

If you're not somebody who's spent their life being spoiled by a first-world connection, it's really not that bad at all.

Pooky
May 10th, 2012, 11:16 PM
If you're not somebody who's spent their life being spoiled by a first-world connection, it's really not that bad at all.

So Australia doesn't count as first world?

I'm really not sure what the example of Team Fortress 2 is supposed to prove anyway. TF2 uses a mix of client sided and server sided hit detection depending on what weapons you're using.


Projectile weapons, such as the Rocket Launcher (http://wiki.teamfortress.com/wiki/Rocket_Launcher), produce moving objects with positioning and effects determined by the server's game state, which can make them less reliable for players with high latency.


Hitscan weapons produce instant hit-or-miss attacks instead of projectiles. Melee weapons and bullet/pellet-producing weapons are generally hitscan. Hitscan weapons determine collision based on the game state of the attacker (as opposed to projectiles, which use the server's game state), which can produce somewhat disjointed hit detection ("I already got behind cover; how did that hit me?").

http://wiki.teamfortress.com/wiki/Mechanics#Hit_detection

If you're not having too much trouble using projectile weapons with high latency, that's because all server sided hit detection isn't as slow as Halo's. You know, like I said in the first place.

t3h m00kz
May 11th, 2012, 07:15 AM
I'm really not sure what the example of Team Fortress 2 is supposed to prove anyway

I dunno, maybe to counteract the fact you said any netcode is going to suck, and that it's far less painful to play Halo, who's hit detection (leading) you dub as "the most fair and balanced (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=621769&viewfull=1#post621769)" despite the obvious advantages of having a lower ping, which you'll never have in austrailia?

and I'm pretty sure n00b is smart enough and has been around the block enough times to not need to be lectured on how TF2's hit detection works!!

but I mean hey if you truely believe that a fluxy, flawed hit detection system is absolutely the most fair and balanced ever, you can go back into Reach and scream "YOU'RE NOT COOL" over the mike at the top of your lungs in pure rage to all the kids running pinging you with DMRs again, because the netcode is obviously catering to casuals and obviously not trying to do people a favor and close the gap between people with different connections

n00b, reach's hit detection is a gift from god, you'd love it :smith:

FreedomFighter7
May 11th, 2012, 07:41 AM
I believe T3h Mookz was being sarcastic when he said halo was fair and balanced!

Cortexian
May 11th, 2012, 11:01 AM
Australia has great Intranet what are you talking about.

t3h m00kz
May 11th, 2012, 01:24 PM
as a Canadian I'm sure you know all about austrailias wonderful network connection to US servers

Pooky
May 11th, 2012, 05:15 PM
I dunno, maybe to counteract the fact you said any netcode is going to suck, and that it's far less painful to play Halo, who's hit detection (leading) you dub as "the most fair and balanced (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=621769&viewfull=1#post621769)" despite the obvious advantages of having a lower ping, which you'll never have in austrailia?

I didn't say Halo's, specifically, is. I said server-side in general is. It's a matter of whether you prefer having to lead all your actions, or getting shot through walls because you hadn't moved yet on a high pinger's screen. Or rather, whether having high ping ruins the experience for just you, or for everybody else.

As for Halo, the clientside prediction makes things look jankier than they actually are. Leading your actions is still a straightforward process on high pings, you just have to sort of ignore what your client is showing you and go by what you know is actually happening on the server.

n00b1n8R
May 11th, 2012, 05:33 PM
So Australia doesn't count as first world?

I'm really not sure what the example of Team Fortress 2 is supposed to prove anyway. TF2 uses a mix of client sided and server sided hit detection depending on what weapons you're using.

Not when my "broadband" connection is run through copper wires which have been in the ground for the better part of a century. Australia's internet is literally 3rd world. (The government is currently trying to roll out a national fibre-optic network but they'll prob lose the next election and the opposition has promised to tear the whole thing up!)

Pooky
May 11th, 2012, 10:02 PM
Not when my "broadband" connection is run through copper wires which have been in the ground for the better part of a century. Australia's internet is literally 3rd world. (The government is currently trying to roll out a national fibre-optic network but they'll prob lose the next election and the opposition has promised to tear the whole thing up!)

Well that sucks, but surely there are Aussie TF2 servers you can play on rather than connecting to American ones. I mean, I know there were on Halo :S

n00b1n8R
May 12th, 2012, 04:42 AM
Well that sucks, but surely there are Aussie TF2 servers you can play on rather than connecting to American ones. I mean, I know there were on Halo :S
There are heaps of TF2 servers (I only mention playing on US ones because I used to do it with you all the time in 08/09) but there have never been (up-to-date-version) CE servers as long as I've played CE (Cyberslam for a few hours every Friday and Sunday doesn't count). Anything to reduce the bullshit lag I have to deal with would be seriously welcomed and honestly I'd probably pick CE up as my primary game again (if I found servers with decent map rotations :lol:)

Pooky
May 12th, 2012, 05:20 AM
All I'm saying is, reducing the lag doesn't have to mean switching to client-side hit detection. Serverside can be made to be far better than what Halo uses. I believe the reason Halo's is so slow is because Gearbox was forced to make it 56k compatible.

n00b1n8R
May 12th, 2012, 07:46 AM
I honestly prefer getting shot through walls over not running people over and them being fine half a second later.

JackalStomper
May 12th, 2012, 08:23 AM
what if you start getting run over through walls?

by the guy with a 56k connection and bragging about it

t3h m00kz
May 12th, 2012, 11:23 AM
This hack wouldn't have players getting shot behind walls.. it tries to move enemy players to where you need to shoot!

That shouldn't even be an argument against it!

Rentafence
May 12th, 2012, 02:39 PM
This hack wouldn't have players getting shot behind walls.. it tries to move enemy players to where you need to shoot!

That shouldn't even be an argument against it!

Same

Pooky
May 12th, 2012, 05:23 PM
This hack wouldn't have players getting shot behind walls.. it tries to move enemy players to where you need to shoot!

That shouldn't even be an argument against it!

Nobody ever said that. I was arguing against client-side hit detection.


but in all honesty you know what's the most fair?

client-side.


I honestly prefer getting shot through walls over not running people over and them being fine half a second later.

You have to lead them with your vehicle. Leading doesn't just apply to bullets, it applies to ALL actions. That's what I meant by understanding the game better.

Also, if you had a high ping you wouldn't be getting shot after you ran behind cover, other people would. You'd be getting shot before ever running out from a corner, because the low pinger's clientside prediction caused him to see you a split second before you actually crossed it. Somebody, I think it was actually Randy Pitchford, made a post about this on the Gearbox forums a while back.

Really though, if you want to experience good serverside hit detection, go play Quake 3 for a while. You don't ever hear people complaining about the netcode on that game. That's because the lead times are miniscule, even on high pings. Playing Quake 3 with 200 ping is like playing Halo with 60.

t3h m00kz
May 12th, 2012, 05:38 PM
Nobody ever said that.


what if you start getting run over through walls?

by the guy with a 56k connection and bragging about it

IMPLICATIONS ♬

Pooky
May 12th, 2012, 05:42 PM
Yeah, that's something that could happen with client-side hit detection. Not with a hack that predicts player movements.

t3h m00kz
May 12th, 2012, 07:13 PM
uh, yeah. That's exactly what I just said.


This hack wouldn't have players getting shot behind walls.. it tries to move enemy players to where you need to shoot!

also,



You have to lead them with your vehicle. Leading doesn't just apply to bullets, it applies to ALL actions. That's what I meant by understanding the game better.

which is a gigantic discrepancy between players with different connections. people shouldn't have to learn how to do this in a fair and balanced netcode (which you find a netcode requiring leading to be (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=621769&viewfull=1#post621769)) there would be as little discrepancy as possible. I guarantee it was not in gearbox's intention to have the hit detection work as shittily as it does, and they didn't go "Wow this takes so much skill, let's keep it in!" rather, it was an unfortunate side-effect of their decision to adjust the netcode to make more accessible to people with bad connections... Which is hilariously ironic.

this hack that you feel won't fix a game breaking issue (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=621715&viewfull=1#post621715) removes a gigantic discrepancy between people with good and shitty connections -- having to adjust aim due to a shitty netcode. Go up against someone with equal skill on their host and the advantage is blatantly obvious, the ability for hosts to get perfect headshots and out-fighting short-strafers with ease, and this hack removes that advantage entirely, putting everybody on mostly the same page.

Pooky
May 13th, 2012, 12:43 AM
...

I didn't say Halo's netcode specifically is the best it possibly could be and anything else is shit. I said I'd prefer a server-side hit detection model over client-side because of the obvious disadvantages of a client-side model. I said that because you said this


but in all honesty you know what's the most fair?

client-side.

Furthermore, as I've stated repeatedly, there are other games out there using server-side hit detection which is far superior to Halo's and require almost no leading unless your ping is extremely high. Therefore, if one was to try and improve Halo's hit detection, I think it would be best to keep it server-side.

Host advantage is completely irrelevant on a dedicated server, so I have no idea why you keep coming back to that. Some people might have lower ping than others, but nobody's going to have 0.

Now do I think Halo's current netcode is completely perfect? No. But I'd hardly call it broken either. None of us here would have played it for years on end if it was.

t3h m00kz
May 13th, 2012, 01:23 AM
...

I didn't say Halo's netcode specifically is the best it possibly could be and anything else is shit.

uhm... I didn't say you did!!

Please tell me where in this post (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=622112&viewfull=1#post622112) I said you specifically said Halo's netcode. I specifically said you said a netcode that requires leading, which just happens to be the kind of netcode Halo uses!


I said I'd prefer a server-side hit detection model over client-side because of the obvious disadvantages of a client-side model.

No you didn't say sever-side detection is the best. You specifically said leading is the most fair (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=621769&viewfull=1#post621769). Which is a type of sever-side, but you didn't say server-side in general.

Halo 3 uses a pseudo-client-side (I've tested this), which is still server-side. You notice how sometimes shots that land don't hit? Yeah, that's not client-side detection!


Furthermore, as I've stated repeatedly, there are other games out there using server-side hit detection which is far superior to Halo's and require almost no leading unless your ping is extremely high.

So why do you hate Halo 3's so much, considering it's server-side?


Therefore, if one was to try and improve Halo's hit detection, I think it would be best to keep it server-side.

Then what do you have against me saying this server-side hack would fix halo (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-(server-side-hit-detection-correction)&p=621715&viewfull=1#post621715)? Do other people's opinions bother you if they're not absolutely linear with your own?


Host advantage is completely irrelevant on a dedicated server, so I have no idea why you keep coming back to that. Some people might have lower ping than others, but nobody's going to have 0.

People with a shit connection will still have a disadvantage, and I've stressed this. It's not specific to host/client, it's foolish to think that. n00b can't have a serious game in a modacity server because of the shit ping!


Now do I think Halo's current netcode is completely perfect? No. But I'd hardly call it broken either.

That I and many others will have to disagree with! The discrepancy between varying connections is absolutely ridiculous.

The results of a game between two hardcore players, a 300 pinger and a 60 pinger doesn't mean shit, because one has an obvious advantage.

but.. of course, I've heard you say "OH HOST DOESNT MEAN SHIT, I HATE WHEN PEOPLE COMPLAIN ABOUT HOST ADVANTAGE" in the past, so I wouldn't be surprised in the slightest if you still have that absurd mindset. Do you still feel this way?


None of us here would have played it for years on end if it was.

Halo is full of so many people who don't know what the fuck they're doing it's easy to jump in and get 3 consecutive running riots. The franchise is so mainstream the game's always got bad players for vets to destroy with absolute ease.

Vets jump in because they can dominate and have the advantage of knowing how to deal with the game's flaws.

Pooky
May 13th, 2012, 01:51 AM
No you didn't say sever-side detection is the best. You specifically said leading is the most fair (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-%28server-side-hit-detection-correction%29&p=621769&viewfull=1#post621769). Which is a type of sever-side, but you didn't say server-side in general.

I've never seen a server-side hit detection that doesn't require leading, if only in the most miniscule sense.


Halo 3 uses a pseudo-client-side (I've tested this), which is still server-side. You notice how sometimes shots that land don't hit? Yeah, that's not client-side detection!

I bet those shots would hit if you lead them.


So why do you hate Halo 3's so much, considering it's server-side?

I don't hate Halo 3's. Halo 1's just seems to provide more consistency. I've seen some really bonkers stuff happen on Halo 3 online, where Halo 1's leading system is at least predictable.



Then what do you have against me saying this server-side hack would fix halo (http://www.modacity.net/forums/showthread.php?23947-Anti-latency-%28server-side-hit-detection-correction%29&p=621715&viewfull=1#post621715)? Do other people's opinions bother you if they're not absolutely linear with your own?

I don't have anything against you. I just said that I don't think Halo was broken in the first place. We could be having a civil discussion about it, but for some reason you decided to take offense and start posting with lots of exclamation marks !!



People with a shit connection will still have a disadvantage, and I've stressed this. It's not specific to host/client, it's foolish to think that.

Right, but the disadvantage would be severely reduced if you were playing on a game where the actual leading required is far less (see: Quake 3). Honestly, I think just increasing the data rate from server to players would do a lot to alleviate the problem, but I don't know how possible it would be to do something like that with Halo.


That I and many others will have to disagree with! The discrepancy between varying connections is absolutely ridiculous.

Of course it is. But the nice thing about a leading system is that it's possible to compensate for high pings without getting some of the annoying inconsistencies you get with other models. Sure it won't ever be 100% effective, but I'd rather that than the aforementioned wall-shots. If you want to be seriously competitive, play on a low ping server :\


but.. of course, I've heard you say "OH HOST DOESNT MEAN SHIT, I HATE WHEN PEOPLE COMPLAIN ABOUT HOST ADVANTAGE" in the past, so I wouldn't be surprised in the slightest if you still have that absurd mindset. Do you still feel this way?

You'll have to quote me on that, because I don't remember ever saying that. If I did, it must have been way back in the Halo Trial days when I was a complete noob and hosting listen servers.



Halo is full of so many people who don't know what the fuck they're doing it's easy to jump in and get 3 consecutive running riots. The franchise is so mainstream the game's always got bad players for vets to destroy with absolute ease.

Vets jump in because they can dominate and have the advantage of knowing how to deal with the game's flaws.

Sure, but you could say that about almost any game. I'm not against a hack of this kind being released. In fact, I was supporting it back when it was first announced and you were against it. So I'm really not sure where you're coming from here. I just don't think Halo's netcode is totally broken. Gearbox had mandates that they were required to do, and 56k support was one of them. What came out of it had to be the best solution they could come up with at the time.

t3h m00kz
May 13th, 2012, 03:02 AM
I've never seen a server-side hit detection that doesn't require leading, if only in the most minisculesense.

Half life 1 deathmatch actually required reverse-leading.


I bet those shots would hit if you lead them.

Halo 2? Yes. Halo 3? Nope. Shots landing on a player standing still (http://www.youtube.com/watch?v=64rr67AZwvw). How would you lead that? Halo 3 had some of the best server-side hit detection I've seen. Oddities include shots not registering, a shot that doesn't land on the player's screen registering on the server, and shots not landing if killed before they have a chance to register (the latter fixed in reach)


I don't hate Halo 3's. Halo 1's just seems to provide more consistency. I've seen some really bonkers stuff happen on Halo 3 online, where Halo 1's leading system is at least predictable.

Maybe it's just me, but I tend to have a very good understanding of Halo 3's system. Shots redirect, players get shot behind walls because of projectile redirection, bullets may not hit on a the player's screen if the spread on the server says it hits. There are a couple of oddities I have absolutely no explanation for.


I don't have anything against you. I just said that I don't think Halo was broken in the first place. We could be having a civil discussion about it, but for some reason you decided to take offense and start posting with lots of exclamation marks !!

I've found sarcasm to be an extremely effective way of making points. Perhaps I use it a bit too often, but hey it's effective in most cases!

either way, I offer an apology if I started sounding like a cock nubbling jizz guzzler.


Right, but the disadvantage would be severely reduced if you were playing on a game where the actual leading required is far less (see: Quake 3). Honestly, I think just increasing the data rate from server to players would do a lot to alleviate the problem, but I don't know how possible it would be to do something like that with Halo

I don't know shit about Quake 3 other than the fact that in Quake Live, if I shoot someone, it hits. If that's server-side detection, it's very well done and more games need to use that system. I don't see why Halo couldn't have a similar system, the current system feels very slapped-in.


Of course it is. But the nice thing about a leading system is that it's possible to compensate for high pings without getting some of the annoying inconsistencies you get with other models. Sure it won't ever be 100% effective, but I'd rather that than the aforementioned wall-shots. If you want to be seriously competitive, play on a low ping server :\

I consider it a case of pick your poison. Shot behind walls, leading, all that BS. Personally, I prefer the sauerbrauten (http://sauerbraten.org/)model of detection. I suggest checking it out, I have zero complaints about the netcode. It's simple, understandable and from what I've seen, extremely fair for all players.


You'll have to quote me on that, because I don't remember ever saying that. If I did, it must have been way back in the Halo Trial days when I was a complete noob and hosting listen servers.

yeah it was a bit of a while back


Sure, but you could say that about almost any game.

With trueskill in place, one can't jump into a game of Halo 3 or Reach and expect to dominate everything in sight, the game is designed in such a way to match people with similar skills and stats, removing skill gap so everybody has a chance of having a good time.

I'd PREFER a custom games browser, but that's a fucking pipe dream at this point.


I'm not against a hack of this kind being released. In fact, I was supporting it back when it was first announced and you were against it. So I'm really not sure where you're coming from here.

I believe my argument was there would be an unfair advantage between people who use it and people who don't. However I feel like if this hack were released, people would catch on and start using it regularly.. this hack is something special, and I've honestly been hoping to see something like this for a long, long time.


I just don't think Halo's netcode is totally broken. Gearbox had mandates that they were required to do, and 56k support was one of them. What came out of it had to be the best solution they could come up with at the time.

It's far less broken than Halo Xbox's netcode, for sure, and in many ways far less fluxy than Halo 2's which got super fucked up at ranges past red reticule (Having to lead shots across coagulation with a hitscan BR). Still, it's far from perfect and could have been improved. As I've said, fair netcodes eliminate discrepancies between connections, and the requirement of leading is a blatant one.

Pooky
May 13th, 2012, 10:22 AM
Half life 1 deathmatch actually required reverse-leading.

Alright well, you got me there o.O


Halo 2? Yes. Halo 3? Nope. Shots landing on a player standing still (http://www.youtube.com/watch?v=64rr67AZwvw). How would you lead that? Halo 3 had some of the best server-side hit detection I've seen. Oddities include shots not registering, a shot that doesn't land on the player's screen registering on the server, and shots not landing if killed before they have a chance to register (the latter fixed in reach)

That sounds like packet loss to me, but other than that idk.


I don't know shit about Quake 3 other than the fact that in Quake Live, if I shoot someone, it hits. If that's server-side detection, it's very well done and more games need to use that system. I don't see why Halo couldn't have a similar system, the current system feels very slapped-in.

I'm just kind of making an educated guess here, but I think the deal is that Halo uses some very slow data rates so people with 56k connections would be able to play online.


With trueskill in place, one can't jump into a game of Halo 3 or Reach and expect to dominate everything in sight, the game is designed in such a way to match people with similar skills and stats, removing skill gap so everybody has a chance of having a good time.

You'd think that, but idk. Last time I played Reach with some friends from work, we got put into a bunch of matches with complete morons and destroyed them. Maybe my rank was really low since before that, all I did for a while on Reach was grief and teamkill.


Still, it's far from perfect and could have been improved. As I've said, fair netcodes eliminate discrepancies between connections, and the requirement of leading is a blatant one.

It's absolutely not perfect, but I think it's the best solution we could have gotten at the time, given the constraints gearbox was under. I mean, look at H2V if you want to see what an absolutely terrible netcode is like.

Sean Aero
May 13th, 2012, 10:46 PM
You'd think that, but idk. Last time I played Reach with some friends from work, we got put into a bunch of matches with complete morons and destroyed them. Maybe my rank was really low since before that, all I did for a while on Reach was grief and teamkill.

TrueSkill team matchmaking goes a bit further than just looking at your personal "known" TrueSkill it also takes into account all other peoples TrueSkill. For example in team games (Red vs Blue) TrueSkill will add the most certain Level data and the most uncertain level data it has about you as an individiual and sum that level information with those known from your team mates. Then it will do the same for any opposing team and try to match the best possible fit. Meaning if 2 out of 4 players in your team have an highly uncertain skill level, it could very well be that the "match experience" for you as a more "known player to the TrueSkill system" is pretty bad, since there is a chance you get matched up with either noobs, or dominating pros. However, TrueSkill, according to it's math made the right match. Keep in mind if you keep playing with this team for a long time, the match experience should (theoretical) get better. (leading to more draws over time)
As you pointed out different playlist keep track of their own level.

As for this topic, I wouldn't mind having a bit of a fix, I can not compete on any US/EU server playing from China with a not so stable ping ranging from 350 - 500.
While giving me a lower ping certainly brings out a completely different outcome.

JackalStomper
May 14th, 2012, 12:31 AM
doesn't matter what mods you use to try and fix leading playing well with a 300 ping is asking for a lot

Rook
May 15th, 2012, 01:19 AM
As for this topic, I wouldn't mind having a bit of a fix, I can not compete on any US/EU server playing from China with a not so stable ping ranging from 350 - 500.
While giving me a lower ping certainly brings out a completely different outcome.

It would be impossible to make a mod to fix high ping issues. Even in newer games playing over 200 ping become a chore.

Sean Aero
May 15th, 2012, 09:59 AM
Halo Asia, coming soon....

t3h m00kz
May 15th, 2012, 09:28 PM
It would be impossible to make a mod to fix high ping issues. Even in newer games playing over 200 ping become a chore.

There are inevitably going to be issues.

However, the level of playability could very well change.