
Graf Zahl Razes EDuke32 game code from his fork
#212 Posted 05 March 2020 - 08:14 AM
Phredreeke, on 05 March 2020 - 07:17 AM, said:
Not sure what your argument is?
#213 Posted 05 March 2020 - 08:32 AM
Phredreeke, on 05 March 2020 - 06:15 AM, said:
icecoldduke, on 05 March 2020 - 06:27 AM, said:
Phredreeke, on 05 March 2020 - 07:17 AM, said:
icecoldduke, on 05 March 2020 - 08:14 AM, said:
#215 Posted 05 March 2020 - 08:51 AM
2 frames of lag at 144 FPS is 14ms
That's what I was getting at
#216 Posted 05 March 2020 - 09:01 AM
LeoD, on 05 March 2020 - 08:32 AM, said:
I see what your saying but that’s not quite my argument.
Grafs system lowers frame time which is good, but at a huge cost. So say if I push up on the controller, the result of that action won’t show up until two frames later. So for two frames the game will render him standing still, because the game is still rendering two frames prior.
Is that a better explanation?
Phredreeke, on 05 March 2020 - 08:51 AM, said:
2 frames of lag at 144 FPS is 14ms
That's what I was getting at
I get that but I’m sure how that benefits your case. 8ms is better then 14ms. When your playing at faster refresh, the amount of perceived lag becomes more of an issue.
This post has been edited by icecoldduke: 05 March 2020 - 09:17 AM
#217 Posted 05 March 2020 - 09:08 AM
This post has been edited by icecoldduke: 05 March 2020 - 09:18 AM
#218 Posted 05 March 2020 - 09:53 AM
If your refresh rate is 60fps aka 16ms your input delay is 32 to 48ms under Grafs purposal.
At 144fps aka 8ms your at 16 to 24ms of delay, because it’s delay frames x adversge frame time. Even though the delay is less, the perceived delay is higher because your running at a faster refresh rate.
As stated above, my timings are a range because you need to factor in the variable delay in USB input devices.
This post has been edited by icecoldduke: 05 March 2020 - 09:57 AM
#219 Posted 05 March 2020 - 10:31 AM

#220 Posted 05 March 2020 - 11:20 AM
icecoldduke, on 05 March 2020 - 09:53 AM, said:
If your refresh rate is 60fps aka 16ms your input delay is 32 to 48ms under Grafs purposal.
At 144fps aka 8ms your at 16 to 24ms of delay, because it’s delay frames x adversge frame time. Even though the delay is less, the perceived delay is higher because your running at a faster refresh rate.
As stated above, my timings are a range because you need to factor in the variable delay in USB input devices.
I'm not comparing Graf's proposal at 144fps to Graf's proposal at 60fps.
The comparison was between Graf's proposal at 144fps vs running the engine without it at 60fps.
If you get 144fps regardless there is no point to it.
#221 Posted 05 March 2020 - 11:30 AM
Phredreeke, on 05 March 2020 - 11:20 AM, said:
The comparison was between Graf's proposal at 144fps vs running the engine without it at 60fps.
If you get 144fps regardless there is no point to it.
Then your missing my argument which is comparing Grafs purposal at 60 vs 144 because if he designs his engine the way he’s purposing, gamers across the performance spectrum are going to have a bad experience.
I agree with you Grafs idea is pointless

This post has been edited by icecoldduke: 05 March 2020 - 11:32 AM
#222 Posted 05 March 2020 - 12:24 PM
#223 Posted 05 March 2020 - 12:59 PM

#224 Posted 05 March 2020 - 01:39 PM
Phredreeke, on 05 March 2020 - 12:59 PM, said:

It’s really not worth it, and I’ll explain we’re the extra lag comes from.
If you have your game and render jobs on the main thread, then you dont have any input lag(except for the usb delay).
If you move the render work to another thread you get one frame of delay. This is because your game thread does it’s work, passes it over to the render thread, then the game thread prepares its work for the next frame, while the render thread is preparing the last frame. The end result is the frame you see on screen, is last frames simulation.
Now Graf wants to add a extra layer of complexity into this, were you move the occlusion detection stuff to yet another thread, this means you either have to stall the render thread(which defeats the purpose of moving it to another thread in the first place) or you have to setup yet another queuing mechanism, which gives you the extra frame of delay. The net result is, the stuff you see on screen is actually from two frames ago.
The best way to do multi threading in games is to design your engine to do work in parallel, and have the core game and core render bits in the main thread, but it kicks off work to other threads. But with the build engine, I haven’t found a way to do that.
This post has been edited by icecoldduke: 05 March 2020 - 01:44 PM
#225 Posted 05 March 2020 - 02:21 PM
#226 Posted 05 March 2020 - 02:32 PM
icecoldduke, on 04 March 2020 - 04:48 PM, said:
You could always attempt a new version of PolymerNG.
And FWIW, he has a Vulcan renderer in GZDoom. He is aware of the benefits of Vulkan and I'd be surprised if he didn't eventually have Vulkan rendering in Raze.
#227 Posted 05 March 2020 - 02:46 PM
My worries here lie elsewhere. Raze - being true to its name - ripped out a good part of code some mods may rely upon. It surely works great for the original games and old mods but with anything more recent the experience was less thrilling. I wonder if this can be resolved. Two mods I had major problems with were Duke TM and Nuclear Showdown.
#228 Posted 05 March 2020 - 02:54 PM
enderandrew, on 05 March 2020 - 02:32 PM, said:
And FWIW, he has a Vulcan renderer in GZDoom. He is aware of the benefits of Vulkan and I'd be surprised if he didn't eventually have Vulkan rendering in Raze.
Maybe at some point I’ll port some of my icedtech work over to Build. I’ve got a version of Doom 3 with virtual texturing, megatexture DirectX 12 raytraced lightmapper, PBR and a bunch of other stuff, and now I’m moving my Quake 3 AI recast Navmesh work over to IcedTech and making a arena shooter. Maybe when that’s done I’ll move that stuff over to build.
Anyway I digress. I hope his project succeeds, but atleast with the technical choices he told me about a week ago, I think this will go through a few rewrites before this becomes anything worthwhile. And it’s a shame really, he could just make the correct tech choices from the start.
This post has been edited by icecoldduke: 05 March 2020 - 03:25 PM
#229 Posted 05 March 2020 - 04:21 PM
Hendricks266, on 05 March 2020 - 12:24 PM, said:
I didn’t say mutlthreading was pointless, I said how he’s doing it is wrong, his method will lead to a pointless and unplayable result.
Ideally you would have a core game and rendering driver in your main thread. You want your work wide and long, basically saturating all cores and having your engine designed so work can be parallel as much as possible.
For example: The core game driver would kick off n number of jobs to deal with con script execution. Then you would have physics jobs that could all be executed in parrael. But the main thread is stalled or doing work for the game driver, and then when everything completes, the render core driver start and it kicks off parallel work. Then the frame is done. The concept is the game and render drivers fully saturate all cores on the CPU, but the drivers run sequentially on the main thread.
Ideally in the renderer you would have work that could be done in parralel. but in build everting has to be down in sequential order, your forced to do multi threading the wrong old fashioned way.
The wrong old fashioned way, you have a game thread and a render thread. He also wants to add a third layer for occlusion. This is were you get something I think will be unplayable. This method is wrong for the reasons I stated above. Users will have a better, smoother experience using the method i described above.
This post has been edited by icecoldduke: 05 March 2020 - 04:39 PM
#230 Posted 06 March 2020 - 05:50 AM
Ursa Major, on 05 March 2020 - 02:46 PM, said:
I still would say : Too early to worry about these things. They even haven't get every classic games totally working and still in Alpha phase...
And you still have EDuke32 and other ports, Raze is just other port.
EDIT : Also, Graf runs into some problems with DNTM and Ion Fury(also some mods like AMC TC changes some internal keybind functions) and he's try to investigate how to resolve them.
This post has been edited by Player Lin: 06 March 2020 - 06:10 AM
#231 Posted 06 March 2020 - 06:46 AM
#232 Posted 06 March 2020 - 11:55 AM

This post has been edited by icecoldduke: 06 March 2020 - 02:47 PM
#233 Posted 06 March 2020 - 01:07 PM
icecoldduke, on 06 March 2020 - 11:55 AM, said:
Apparently he started years before Doom and Duke Nukem were released.
What a lucky coincidence that he just posted this today!

https://www.doomworl...um/post/2091443
A picture with proof can be found here: https://www.abandonw...ogical&gid=1245
So the question goes back: Have YOU ever released a game?
And this should also be required reading for you: https://forum.zdoom....p?f=347&t=67741
#234 Posted 06 March 2020 - 01:59 PM
Ursa Major, on 06 March 2020 - 01:07 PM, said:
Ive shipped quite a few different games in the past 12 years

I hope I’m wrong about him and Raze that’s we’re I’m going to leave it.
This post has been edited by icecoldduke: 06 March 2020 - 02:29 PM
#235 Posted 06 March 2020 - 03:11 PM
Eduke32 450+ (Polymost)
Raze 150, barely (Opengl, no fps cap)
This post has been edited by Lazy Dog: 06 March 2020 - 03:14 PM
#236 Posted 06 March 2020 - 03:26 PM
icecoldduke, on 06 March 2020 - 11:55 AM, said:
While he may sound condescending, he does have a point. Using gamecode from Ken "demo" is very amateurish.
#237 Posted 06 March 2020 - 03:42 PM
Lazy Dog, on 06 March 2020 - 03:11 PM, said:
Eduke32 450+ (Polymost)
Raze 150, barely (Opengl, no fps cap)
I get around 450-600 in Raze with FPS unlocked, while testing in EDuke32 I got 2500-3300 FPS (which is higher than I remember getting before... was there any recent optimisations?)
#238 Posted 06 March 2020 - 03:49 PM
Fox, on 06 March 2020 - 03:26 PM, said:
How so? I’ve worked on quite a few engines in the industry at this point. If the engine developer supplies me code I’ll take it and use it.
The code in ken demo may or may not have had bugs, but it was a good sample project to get you up and running. Why rewrite something if your paying someone else to give you something of quality? If there’s was bugs in the code those, to your point, should have been flushed out during development. But to say it was amateurish to use that code is frankly insulting to the devs that worked on Duke3D.
This post has been edited by icecoldduke: 06 March 2020 - 04:13 PM
#239 Posted 06 March 2020 - 03:58 PM

#240 Posted 06 March 2020 - 07:30 PM
>required very little dev-time after 3D Realms scooped it up
>all costs furthering development recouped by licensing the engine to others
>three of the greatest FPS games ever made were on the BUILD engine + a handful of decent ones
Wow what a big fucking mistake. These clowns have their heads very far up their asses.