GlobalUnreal (a.k.a., NewNet)

Gaming and Community discourse.

GlobalUnreal (a.k.a., NewNet)

Postby TimTim » Thu Jul 26, 2012 9:19 pm

Change log and todo list updated (2/03/2013):

*** DONE ***
- All hitscan weapons (including pulse secondary) register as if zero ping, serverside
- Dynamic hitsounds like UT2004's UTComp
- Translocator doesn't switch to previous weapon when triggering both fire/altfire
- ThrowWeapon throws weapon when moving forward
- ThrowWeapon velocity can be set by the server admin
- Hitscan (shock beams, sniper, etc.) pass through ducked player's heads instead of stopping midair
- Warmup mode fixed to match actual gameplay physics (jump height, self damage, momentum, etc.) and removed annoying "You are ready!" text
- Projectiles hopefully match the server better (less duds)
- You keep half your enforcer/mini ammo if you toss enforcer while you have mini and vice versa
- If you have duel enforcers, you can toss one (with 30 ammo) and keep the other instead of having to toss both (which actually used to result in one of the duel enforcers disappearing)
- Minigun originally did random damage, from 9 to 15 per hit; people complained so it was reduced to 9 damage per hit
- Translocator feels like 0 ping
- Type "hitsounds 0" to turn hitsounds off or "hitsounds 1" to turn them on
- People were complaining about their weapon firing after switching weapons because they were sometimes not letting go of their fire button before switching, so a delay was incorporated into the weapon switch sequence that will temporarily disable firing when switching weapons; the default is 200 milliseconds but players can set their own delay by typing "switchdelay 300" or whatever in console
- Projectiles and shock combos improved
- Checking for shots fired on the client between ticks on the server has been removed for minigun and sniper so that they register "normally"
- For quick testing, the headshot box size can be changed by an admin in-game; current default is 100%
- Comboing other person's shock ball works as if 0 ping
- InstaGib altfire fixed
- Piston fixed
- Hidden weapon after feigning death fixed
- Fixed shots not registering after first shot when holding down fire
- Added team hitsounds; type "teamhitsounds 0" or "teamhitsounds 1" in console to turn them off or on
- Should now be able to hear hitsounds from across the map or in a different zone
- Fixed spectator hitsounds to match the hitsounds of whoever spec is viewing
- Position/direction of shots fired now match exactly what the shooter saw except when going up lifts (need newnet lifts)
- Dodging of all straight-flying projectiles is now much more accurate
- Fixed telefragging when dodging into each other
- No more crashing when recording demos
- Hitboxes seem to be more accurate
- Even smoother movement for players with 150+ ping
- Jump pads that feel like zero ping
- Fixed telepunts
- Fixed the real/fake translocator positions/velocities so they always match regardless of how/who shot it
- Fixed a serious bug where firing shock primary too soon after firing shock secondary was causing the shock primary to never fire on the server!! This is the likely culprit for 99.99% of the combo registration issues!
- Fixed the lag associated with boosting oneself
- Spawning issues fixed
- Reduced the lag associated with getting knocked around by shock beams, rockets, etc.
- Fixed piston launching?
- Fixed FWS so that the actual switching is delayed rather than the firing; can also now see the pending weapon glow in the hud
- Fixed SwitchWeapon and SwitchToBestWeapon binds
- Fixed clientside weapon sometimes switching twice with high ping
- Made it incredibly easy to make complex arena-style gametypes like telegib
- Players now have a few hitsounds to choose from by entering hitsounds # or teamhitsounds # into their console where # is an integer, 0 to 3
- Admins can set specific delays for weapon switching in-game using the following commands (numbers are default ms): mutate fwsdelay 300
- Fixed major bug with rockets where on the server it was shooting in the direction you were aiming when you started loading, but on your screen it shot like you expected; this was likely the cause of all the rocket duds
- Fixed biorifle not shooting sometimes (I think?); the issue was also most likely the reason for bio duds
- Fixed weapon switching so that players get a fast weapon switch but the sound, animation, and hud (glow) work as they would expect
- Translocator can now be the first weapon when spawning; just put it above enforcer in weapons list
- Fixed weapons sometimes firing immediately after spawning
- Mini's gotten pretty useless again so the damage per bullet has been bumped up from 9 to 10
- Added the FireSwitchDelay parameter to the weapon switch sequence so that there will be a slight, exact delay prior to the actual switch when firing a weapon right before switching
- Fixed not being able to switch to a weapon immediately after touching it
- Fixed not being able to fire or switch weapon immediately after spawning
- Weapon switches are now 99% ideal as far as I can tell: 1) independent of ping 2) consistent across the board and 3) you can "cancel" a pending weapon switch by re-choosing your current weapon (with no added delay), which should work for the most part with any combination of getweapon, switchweapon, switchtobestweapon, and/or next/prevweapon
- Fixed the immediate firing and direction of weapons when holding down fire as weapons are switched
- Fixed the number of rockets firing on the client sometimes not matching the number of rockets firing on the server
- Fixed the 99.9% of the movement jittering when client/server are resyncing once and for all
- Added messages for any time you're getting packet loss; "HidePL" in console to toggle the messages
- Serverside default hitsound setting; search for DefaultHitSound in ut.ini; it should work for players who are using the current version for the first time
- Portals now feel like zero ping and the direction players face when coming out of portals is now "correct" (as most map makers intend); right now VisibleTeleporters (the portals on Terra, Gothic, DiamondSword, etc.) take a few seconds to get replicated to each client and the method in doing so is really inefficient but it will do for now
- Fixed switching to another weapon (e.g., from enforcer to translocator) immediately after you spawn (for real though lol)
- Translocator should be fixed; it should no longer (or at least very rarely) get out of sync with the server; telefragging should feel like it does in practice mode; and killing translocators should always work
- Hopefully fixed projectile (rockets, etc.) hit registration once and for all; had to disable a few things in the past few versions to isolate the crashing but they are now re-enabled with slightly different hit registration algorithms
- Added MaxPktLPS (packets lost per second) to hopefully smooth out the warping of players with < 1% loss
- Added the HUD weapon glow for players that have high detail turned off
- Maybe fixed weapon switching issues once and for all? The remaining issue seems to be a result of the inventory refreshing when picking up a new weapon, which for some reason empties it for a split second, long enough for a weapon switch to fail if attempted during this short time.
- Changed where shock beams explode if a high pinger hits someone going around a corner so it doesn't look like they're shooting through the wall
- Removed odd jumping when spawning
- Spent a few hours trying to fix demos; server demos don't crash the server but of course 1st person view doesn't work right (it's always been like this apparently); and client demos for whatever reason the client's fake (newnet) projectiles/shots won't fire in the right direction, regardless of the fact that demo playback does in fact have the proper view rotation data; after trying everything I could think of to fix either client/server demos, it looks like the best (ironically the easiest) solution is to rewrite most (or maybe even all) of the demo system; Epic did a TERRIBLE job with this; I don't know what they were thinking but the demo system is apparently still really bad in UT3+
- Fixed invisible body blocking when someone is dead but not yet spawned and their corpse now no longer has to go into the floor
- Removed gibs/flying body parts on the server; but now they need to be re-added for specs; and special stuff like heads flying off when headshotted need to be removed from server, but this should be enough right now to test whether or not this fixes the remaining bounced shots
- Fixed shooting 2+ guns at once
- Fixed DOM control points in warmup
- Sniper headshots verified to be working correctly (someone requested that this be looked into)
- Fixed minigun accuracy when holding fire then altfire
- Prolonged the amount of time the movement netcode is reverted to default for players experiencing packet loss
- Raised the minimum packets lost per second (before reverting to default movement) from 8 to 50
- Added a minimum positional error to maybe reduce server load?
- Not really part of this mod lol but I fixed the gun pointing down on spawn in LMS; also fixed warmup in LMS
- Fixed (or at least improved) force fire for shockrifle
- Pulse beam seemed to be overpowered so its damage has been reduced slightly
- Fixed the clock when going into overtime or joining a server late (inefficient replication but it'll work for now)
- Suiciding now explodes the body (derka derka!)
- Enabled gibs from spectator's POV (what a hack lol)
- Fixed trying to throw a weapon you can't throw
- Rewrote entire projectile hit registration system :|
- Added a hack/workaround to hopefully avoid the bug in the engine that causes servers to crash when teleporting too often

*** TODO ***
- Armor, weaps, sprees and announcer from spectator's POV
- Quicker HUD updates
- Custom death messages
- Colored messages/names
- Option to make player names not show up with crosshair
- Allow players to choose team/enemy player models/colors
- Custom crosshairs for each weapon
- HUD editing
- Fire/AltFire swap
- Pure's bDoEndShot
- Pure's demorec command
- Silent piston
- Better spawning algo (option for server admins)
- Crosshair not perfectly in line with where shots actually fire (although they line up perfectly when ducking... weird Epic, weird)?
- Weapon sometimes becomes invisible for tosser when thrown
- Should be able to catch thrown weapons midair
- Better stats system
- Make NewNet togglable
- Make lifts feel like zero ping without having to recompile every map (tough! but I think it's doable)
- Better dodging compensation for curving projectiles (grenades, goo, and flak secondary)
- Dodge bug seems to be really rare with newnet's movement, but it might be worth looking into
- Make all new options available in one neat little package/menu like UT2004's UTComp
- Clock sometimes not showing up on map restarts
- Fucking demos
- Feign death collisionheight
- Hammer AltFire (deflection)
- Newnet redeemer lol
- More chars!

Original post:

For the past few months, in my free time, I've been working on a mod that will hopefully bring some life back to UT. I took two weeks off of work to get that very first prototype ready as a proof of concept. But after that, I couldn't take any more time off so it became a weekend-only kind of thing until this past week and a half where I just decided it was time to really get it done so I took some more time off.

It's still an alpha prototype, but I feel like it's nearing beta stages, as all the hard stuff is done and smoothing out all the kinks should be relatively easy. Working with Unreal Engine 1 has been no picnic, that's for sure; but I'm confident that with enough (helpful) feedback and optimism, we can get this thing working as ideally as possible.

It will remain private for the time being, until all the kinks are worked out. The goal is to help unite all the different UT communities all over the world by creating an even playing field for everyone. I look forward to hopefully playing with people from other countries more often.

If you're not already with us on IRC, join the following channels on to try it out:

Before I describe how it works, I should probably describe how UT's hit registration and movement works without newnet.

I'll start with UT's default movement netcode. By default, when you move/shoot/etc., all you're doing is sending the server your view rotation, desired movement/dodge direction (if any), whether or not you just pressed jump, holding fire/altfire, etc. When the server receives this information, it updates your position/firing/jump status accordingly and sends it out to every other player. Now, when you have a high ping, the position the server has for you will lag slightly behind what you see on your screen. The server will adjust your position to make sure it matches what it sees, but since you are slightly "ahead" of what the server sees (because of the time it takes for the server to send you your position), the higher your ping, the slower you'll be able to move because the server is constantly pulling you back.

I try to solve the above problem by performing a series of checks and predictions based on certain scenarios so that you can be allowed to move more freely and only get "pulled back" when you've done something you're not supposed to or if you simply get too out of sync with the server (which shouldn't happen unless you have severe packet loss). The solution seems to work for the most part, with only a few minor kinks to work out in the future.

As for the weapons and hit registration, I'll explain how UT works by default. I briefly mentioned above how when you send the server your position and movement, you also send whether or not you're pressing fire or alt fire. The server receives this information and fires your weapon on its end based on the information it has about your position and your view rotation at that point in time. The server then sends out this information to every player (including the shooter), which is why with UT's default netcode, there's a noticeable delay between the time you press fire and when you actually see your weapon fire. This same ping-dependent delay is the reason you have to lead your shots to hit other players. The position that you see of every other player won't be where they are (if they're moving) by the time your shot reaches the server.

As I'm sure you've all experienced, this puts players with high pings at a huge disadvantage. With such a fast-paced game, there are so many different things someone can do even within a span of 100 milliseconds, so the higher your ping, the more guessing you have to do. With the new netcode, I try to even out the playing field by "rewinding" the server to what a player saw when he/she fired their shot.

I'll try to explain how this new serverside hit detection works, in order.

When you fire a shot, I've simulated the trace (hitscan) or projectile (rockets/flak/etc.) instantly on the client, so you don't have to wait for the server to send it to you. The server still sends this information to you after the fact, but I've hidden it so that you don't see it. The traces/projectiles that you see are fake, but I try to get the server to match up with what you see as closely as possible. Since your position and view rotation may not necessarily be what the server has for you (because of lag), I had to create new firing functions that also include your exact view rotation at the time the shot was fired. UE1 did not make this an easy task.

The server keeps track of the positions of every player for the past second. This is dependent on the server's tickrate, so the higher the tickrate, the more positions the server will be able to track, and the more accurate the rewinding will be. When the server receives the type and direction of your shot, it retrieves the positions of every player from memory depending on your ping and spawns temporary hitboxes where each player used to be. From here, the rest of the hit detection is pretty standard.

So that's pretty much the basics of the whole process. There are some other pretty complicated issues like shock combos, seeding random values (flak shards, razors bouncing off walls, rocket grenades bouncing around, enforcer/mini accuracy, goo secondary splashes, etc.), and certain firing sequences (loading up rockets, etc.) that are entirely too much of a pain because of how Epic coded the weapons to begin with, so I won't bother getting too deep into those issues unless people really want to know.

A few people had suggested I put up a donation link, so here it is:
Last edited by TimTim on Mon Dec 03, 2012 4:09 am, edited 14 times in total.
User avatar
Posts: 1613
Joined: Thu Jun 14, 2012 9:36 pm

Re: UTProMod (a.k.a., NewNet)

Postby blackout\\ » Thu Jul 26, 2012 9:29 pm

Excellent work with everything TimTim, seems like things are moving on fairly well. one thing I'd like to disagree with is:

- Allows players to choose team/enemy player models/colors.

Reason being is because I feel like the game is already accustomed to Red vs Blue. acclimating to new colors just to get an advantage seems pretty moot, considering also most if not all maps already have the Red/Blue logos on them anyways.
User avatar
Posts: 423
Joined: Fri Dec 16, 2011 4:20 am
Location: Los Angeles, CA

Re: UTProMod (a.k.a., NewNet)

Postby Sakura » Thu Jul 26, 2012 9:59 pm

Can you make a no-chat where you see no messages at all?

Don't put it at the top of your list though! I'd be the only one who uses it. Seeing people type is a distraction to me and I used to put tape on my monitor until I got this new one.

There is a setting where you can turn off the chatbox, but the messages will still come in.
User avatar
Posts: 168
Joined: Fri Dec 16, 2011 2:26 pm
Location: USA

Re: UTProMod (a.k.a., NewNet)

Postby Shotman » Thu Jul 26, 2012 10:44 pm

User avatar
Posts: 163
Joined: Fri Dec 09, 2011 10:12 pm
Location: San Diego, CA

Re: UTProMod (a.k.a., NewNet)

Postby KNOCKOUTDAD » Thu Jul 26, 2012 11:06 pm

appreciate the work your putting into it look forward to seeing the end result.
User avatar
Posts: 212
Joined: Fri Nov 04, 2011 3:30 pm

Re: UTProMod (a.k.a., NewNet)

Postby PACO » Thu Jul 26, 2012 11:10 pm

Tim is amazing. His contributions will see the game through another decade and the ceiling just got higher on an already amazing game.
User avatar
Horizontally Challenged World Traveller
Posts: 2292
Joined: Thu Oct 27, 2011 12:19 am

Re: UTProMod (a.k.a., NewNet)

Postby blade » Thu Jul 26, 2012 11:47 pm

Really something to take time off job to work on this project, Tim. I can't wait to see the final version in action!

Well done, broski! It is greatly appreciated by the community at large. ;)
Image Hope. Inspire. Dream. Live.
User avatar
Posts: 538
Joined: Mon Jan 02, 2012 1:30 pm

Re: UTProMod (a.k.a., NewNet)

Postby unrealshots » Fri Jul 27, 2012 8:47 am

Thanks for all the hard work Tim can't wait for it to be finished. :ugeek:
Image Image ·GU I PBR Quarter Finalist· ·GU II roflnation Winner· ·GU III \\cG Semi Finalist· ·GU IV \\'. Finalist· ·GU V iB. Winner·
User avatar
Posts: 471
Joined: Thu Nov 03, 2011 5:37 am

Re: UTProMod (a.k.a., NewNet)

Postby Carras » Fri Jul 27, 2012 9:38 am

/me applauds
Maybe Next Time...
Posts: 1407
Joined: Sun Oct 30, 2011 3:22 pm
Location: Sunny So-Cal

Re: UTProMod (a.k.a., NewNet)

Postby kud » Fri Jul 27, 2012 9:50 am

I like the pulse primary change
User avatar
Walder Frey
Posts: 1653
Joined: Tue Dec 13, 2011 7:48 pm

Re: UTProMod (a.k.a., NewNet)

Postby Aven » Fri Jul 27, 2012 11:47 am

Interesting, hope to try it.

So out of curiosity, how will this affect (if any) current cheats out there? Will they still function correctly for the most part?

If the answer is no, it will be interesting to see who sucks :mrgreen:
Image Image
User avatar
Vargo Hoat
Posts: 625
Joined: Tue Dec 27, 2011 1:24 am

Re: UTProMod (a.k.a., NewNet)

Postby HuMPtY » Fri Jul 27, 2012 12:12 pm

-i think - because its more serverside and the shoots work differently , it would be easier to make anticheat ?
a euro guy TNSe tried this years ago but it didnt get very far , and afaik one of the main reasons he tried it was anticheat.

not sure if it would block current aimbots etc or not , or even radars if it updates player locations differently?

great job though timtim, tested a few different versions and everything we talked about in the previous one was fixed or on its way to being fixed .. amazed that someone will take the time to do this now s late in ut, hopefully it will bring more people into the community returning heroes and different nationalities.

will you be looking into the anticheat side of things eventually tim?

ill be donating something also for ur time !
User avatar
Head of Agriculture
Posts: 1155
Joined: Fri Nov 04, 2011 8:25 am

Re: UTProMod (a.k.a., NewNet)

Postby vitz^ » Fri Jul 27, 2012 1:38 pm

simply amazing :D
User avatar
Posts: 1255
Joined: Fri Dec 09, 2011 10:49 pm
Location: Portugal

Re: UTProMod (a.k.a., NewNet)

Postby krazyaim » Fri Jul 27, 2012 4:45 pm

Can't wait to see this thing in action!
Posts: 59
Joined: Sun Jan 01, 2012 2:02 pm

Re: UTProMod (a.k.a., NewNet)

Postby mrgrins » Sat Jul 28, 2012 12:53 pm

Thanks TimTim for all your time spent on this old game.

I'd like to set up an interview on a sunday before the matches start so we can post or stream a live chat and ask questions or what not if your down.
Posts: 86
Joined: Tue Apr 17, 2012 7:27 pm

Re: UTProMod (a.k.a., NewNet)

Postby mrgrins » Mon Jul 30, 2012 8:44 am

Posts: 86
Joined: Tue Apr 17, 2012 7:27 pm

Re: UTProMod (a.k.a., NewNet)

Postby Serenity » Tue Jul 31, 2012 1:22 pm

Seriously looking forward to this. Less of a ping disadvantage? Yes fucking please.
Posts: 315
Joined: Tue Dec 13, 2011 2:47 pm
Location: England, UK

Re: UTProMod (a.k.a., NewNet)

Postby Cy » Tue Jul 31, 2012 6:20 pm

Tried it out the other day in a pug and here are my thoughts:

- Didn't notice much of a diff in my movement (always have a 50-70 ping so don't think this will matter much for me), however did notice less "lag" when close to other players
- Hit registration has improved in certain situations such as feet/head barely visible. Probably about 10-15 hit registration bugs on shots that would normally connect in regular zp
- Weird issues with feign death (as csn pointed out)

I definitely appreciate all the hard work from TimTim and look forward to the continued edits/releases so we can get it working 98-100% correctly and implement it for a true test.
User avatar
Posts: 545
Joined: Wed Dec 28, 2011 12:13 pm
Location: GA

Re: UTProMod (a.k.a., NewNet)

Postby nogginBasher » Wed Aug 29, 2012 9:47 pm

Great effort by TimTim! I want to ask ... what is the situation with sniper in all-weapons mode?

One of the things that puts people off using existing ZeroPing with normal weapons, is that the usefulness of the sniper (and other hitscan weapons) is greatly increased, whilst rockets, flak and bio gain no such advantage. As a result, if anyone tries to run a ZeroPing CTF server, they find it quickly turns into sniper arena! I do hope this can be addressed, so NewNet can be adopted for international all-weapons games.

My idea for a solution to this, is to reduce player collision cylinder radius for hitscan weapons, so that they are as difficult to use as they are in a non-zp server of say 40 ping. This would retain the weapon balance we are used to, whilst helping to level the playing field for high-ping players.
Posts: 1
Joined: Wed Aug 29, 2012 6:35 pm

Re: UTProMod (a.k.a., NewNet)

Postby kud » Wed Aug 29, 2012 10:29 pm

That's a valid point. There's an ongoing debate on over this exact issue. Tim's already implemented a decrease in the headshot hitbox (I believe it's at 80% original size), but other solutions are being explored if the weapons still aren't balanced. Some of the suggestions include a lower rate of fire, and limited ammo.
User avatar
Walder Frey
Posts: 1653
Joined: Tue Dec 13, 2011 7:48 pm

Re: UTProMod (a.k.a., NewNet)

Postby TimTim » Mon Sep 03, 2012 1:44 pm

Change log and todo list have been updated.
User avatar
Posts: 1613
Joined: Thu Jun 14, 2012 9:36 pm

Re: UTProMod (a.k.a., NewNet)

Postby InfamousRaider » Mon Sep 03, 2012 2:37 pm

Posts: 1249
Joined: Mon Dec 12, 2011 8:35 pm

Re: UTProMod (a.k.a., NewNet)

Postby TimTim » Mon Sep 03, 2012 3:00 pm

There are maps in TDM where people severely exploit certain spawn positions. I was planning on making something that server admins could toggle that would help reduce this exploitation.
User avatar
Posts: 1613
Joined: Thu Jun 14, 2012 9:36 pm

Re: UTProMod (a.k.a., NewNet)

Postby vitz^ » Tue Sep 04, 2012 7:09 am

i disagree with messing with spawns, in any mod under any circumstance. i wouldnt want to have any influence in the game or even someone else having it. bad spawn? tough luck!
User avatar
Posts: 1255
Joined: Fri Dec 09, 2011 10:49 pm
Location: Portugal

Re: UTProMod (a.k.a., NewNet)

Postby Carras » Tue Sep 04, 2012 10:03 am

make that happen on ec2?
maybe that will help somewhat?
Maybe Next Time...
Posts: 1407
Joined: Sun Oct 30, 2011 3:22 pm
Location: Sunny So-Cal


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 2 guests