Well i ask becuase BK warns not to use realtime all but with perf testing, and then doubts himself with that.
I am not on a MP mod team at this time, but am working on my own SP mod, based on the Nightfall game play engine that wrayith, and myself programmed. Adam --- Nick <[EMAIL PROTECTED]> wrote: > -- > [ Picked text/plain from multipart/alternative ] > try it, see how well it works for you... LOL > > On 5/14/06, Adam amckern Mckern <[EMAIL PROTECTED]> > wrote: > > > > So BK, > > > > It would be best for all of us working on MP based > > mod's to find and replace every instance of > realtime > > with curtime? > > > > Adam > > > > > > > > --- [EMAIL PROTECTED] wrote: > > > > > FYI all, since dumping ->realtime in favor of > > > ->curtime I have not seen the serious form of > this > > > repro. The bug was intermittent, so it could be > > > luck, but it's been about 2 weeks, so it's > looking > > > like that was the only bug. > > > > > > Just a heads-up to anyone thinking of using > realtime > > > for anything other than maybe perf testing, > don't. > > > (And even that use is questionable.) > > > > > > -bk > > > > > > At 2006/04/18 06:42 PM, > > > [EMAIL PROTECTED] wrote: > > > >No, I do not need real time accuracy. I just > need > > > to know how the game thinks time is advancing > each > > > tick. To give an example, I'm using > > > gpGlobals->realtime to set a stamp and change > the > > > weird feature where you can switch weapons over > and > > > over almost limitlessly fast in HL2 DM. > > > > > > > >I left it running overnight with curtime and > didn't > > > get any odd curtimes (well, except for the level > > > changes, but that's ok.) Thanks again - this > seems > > > resolve the second biggest SDK issue I know of, > > > which has been a source of user complaints for a > > > quite a while. > > > > > > > >-bk > > > > > > > >At 2006/04/17 11:36 PM, Yahn Bernier wrote: > > > >>Yes. Curtime is the server's clock, which is > > > bounded by the tick > > > >>interval and smoothly increases in each call > to > > > GameFrame. If the > > > >>actuall time for a frame takes longer than one > > > tick interval, then you > > > >>can have multiple calls to GameFrame (with > > > advancing curtime) but only > > > >>get a single update to gpGlobals->realtime. > If > > > you need sub-frame clock > > > >>accuracy (only useful for perf. Analysis > really), > > > then use > > > >>Plat_FloatTime() which is independent of > > > gpGlobals->realtime and > > > >>->curtime. Otherwise, if you need a clock, > > > ->curtime is good enough, > > > >>but does reset between levels. > > > gpGlobals->realtime does not, but, > > > >>again, it only gets advanced at the start of a > > > frame (as opposed to each > > > >>tick). > > > >> > > > >>Yahn > > > >> > > > >>-----Original Message----- > > > >>From: [EMAIL PROTECTED] > > > >>[mailto:[EMAIL PROTECTED] > On > > > Behalf Of > > > >>[EMAIL PROTECTED] > > > >>Sent: Monday, April 17, 2006 8:16 PM > > > >>To: [email protected] > > > >>Subject: RE: [hlcoders] gpGlobals->realtime > > > standing still > > > >> > > > >>Thanks much. When you say curtime "will > reflect > > > the 0.015 increments > > > >>per tick", it sounds like you're saying that > > > realtime is broken in this > > > >>regard and I should use curtime instead? > That's > > > ok, but please confirm, > > > >>as I will need to do a lot of search and > replace. > > > >> > > > >>I've run a few tests and curtime always seems > > > consistent and monotonic, > > > >>however it seems that curtime doesn't start > moving > > > until the map loads, > > > >>and is reset on map load. Is that the > expected > > > behavior? > > > >> > > > >>-bk > > > >> > > > >>At 2006/04/13 12:33 PM, Yahn Bernier wrote: > > > >>>gpGlobals->curtime will reflect the 0.015 > > > increments per tick. > > > >>>Plat_FloatTime() will resample the high perf > > > clock. > > > >>> > > > >>>Yahn > > > >>> > > > >>>-----Original Message----- > > > >>>From: [EMAIL PROTECTED] > > > > >>>[mailto:[EMAIL PROTECTED] On > > > Behalf Of Jay Stelly > > > >>>Sent: Thursday, April 13, 2006 10:21 AM > > > >>>To: [email protected] > > > >>>Subject: RE: [hlcoders] gpGlobals->realtime > > > standing still > > > >>> > > > >>>Yahn found this one - realtime is only > integrated > > > once per sever frame. > > > >>>Game frame is called once per server tick. > When > > > you run something that > > > >>>uses 100% CPU the server gets starved, then > tries > > > to make up the time > > > >>>all in one frame. It's a little more complex > > > than that because there's > > > >>>a cap on the sim time it will try to execute > in > > > one frame, but ignoring > > > >>>that: > > > >>> > > > >>>The first GameFrame() has the complete update > to > > > realtime, then the > > > >>>subsequent calls don't change because you're > > > still running ticks to > > > >>>catch up. > > > >>> > > > >>>So in this example: > > > >>>> >odd realtime 11168195898843186 105.437195 > > > 105.486000 0.015000 > > > >>>> >odd realtime 11168195901330214 105.486000 > > > 105.486000 0.015000 > > > >>>> >odd realtime 11168195904200006 105.486000 > > > 105.486000 0.015000 > > > >>> > > > >>>Frame 2 has a 49ms jump in realtime, and > frame 3 > > > has the realtime the > > > >>>same because each tick is 15 ms, so you need > to > > > run multiple ticks to > > > >>>catch up. > > > >>> > > > >>>We can change it to make it more incremental, > but > > > you're not actually > > > >>>losing any time (at least I can't see any in > this > > > data). > > > >>> > > > >>>Jay > > > >>> > > > >>> > > > >>>> -----Original Message----- > > > >>>> From: [EMAIL PROTECTED] > > > >>>> > [mailto:[EMAIL PROTECTED] > > > On Behalf Of > > > >>>> [EMAIL PROTECTED] > > > >>>> Sent: Wednesday, April 12, 2006 9:06 PM > > > >>>> To: [email protected] > > > >>>> Subject: RE: [hlcoders] gpGlobals->realtime > > > standing still > > > >>>> > > > >>>> Oh yea forgot to say it's an intel p4 > single > > > proc with HT enabled. > > > >>>> > > > >>>> Here's one that repeated 6 times lasting 5 > > > ms... > > > >>>> > > > >>>> odd realtime 11172032919604142 1479.026855 > > > 1479.368408 0.015000 > > > >>>> odd realtime 11172032923627014 1479.368408 > > > 1479.368408 0.015000 > > > >>>> odd realtime 11172032926027614 1479.368408 > > > 1479.368408 0.015000 > > > >>>> odd realtime 11172032930865690 1479.368408 > > > 1479.368408 0.015000 > > > >>>> odd realtime 11172032932857506 1479.368408 > > > 1479.368408 0.015000 > > > >>>> odd realtime 11172032936032430 1479.368408 > > > 1479.368408 0.015000 > > > >>>> odd realtime 11172032937616626 1479.368408 > > > 1479.368408 0.015000 > > > >>>> > > > >>>> At 2006/04/12 10:45 PM, > > > [EMAIL PROTECTED] wrote: > > > >>>> >Using the 100% cpu method that always > breaks > > > rather easily, > > > >>>> I get results as follows, from the code > below. > > > It usually > > > >>>> occurs in groups of 2 or 3. The long-term > > > slowdown may take > > > >>>> several days to repro again. In this case > you > > > see realtime > > > >>>> being frozen for 2 milliseconds, calling > > > GameFrame 3 times > > > >>>> with the same value: > > > >>>> > > > > >>>> >odd realtime 11168195898843186 105.437195 > > > 105.486000 0.015000 > > > >>>> >odd realtime 11168195901330214 105.486000 > > > 105.486000 0.015000 > > > >>>> >odd realtime 11168195904200006 105.486000 > > > 105.486000 0.015000 > > > >>>> > > > > >>>> >----- > > > >>>> > > > > >>>> >void CServerGameDLL::GameFrame( bool > > > simulating ) > > > >>>> >{ > > > >>>> >#if defined(DEBUG) > > > >>>> > static float last_realtime = 0; > > > >>>> > if ( > > > >>>> > (gpGlobals->realtime - > > > last_realtime < > > > >>>> gpGlobals->frametime / 3) > > > >>>> > || (gpGlobals->realtime - > > > last_realtime > > > > >>>> gpGlobals->frametime * 3) > > > >>>> > ) { > > > >>>> > LARGE_INTEGER PerformanceCount; > > > >>>> > > > > > assert(QueryPerformanceCounter(&PerformanceCount)); > > > >>>> > Msg("odd realtime %I64d %f %f > %f\n", > > > >>>> PerformanceCount, last_realtime, > > > gpGlobals->realtime, > > > >>>> gpGlobals->frametime); > > > >>>> > } > > > >>>> > assert(gpGlobals->frametime >= 0.0); > > > >>>> > assert(gpGlobals->frametime < .03); > > > >>>> > last_realtime = gpGlobals->realtime; > > > >>>> >#endif > > > >>>> > > > > >>>> >At 2006/04/12 12:14 PM, Jay Stelly wrote: > > > >>>> >>The master game clock is driven by > > > >>>> QueryPerformanceCounter() on win32 > > > >>>> >>and gettimeofday() on linux. > > > >>>> >> > > > >>>> >>Still, we have had reports of clock > issues > > > with QPC() (not this > > > >>>> >>particular issue however) on AMD x2 > systems > > > that were fixed > > > >>>> by forcing > > > >>>> >>affinity. Also, for winxp/xp64 there is > a > > > chipset driver > > > >>>> update that > > > >>>> >>AMD recommends installing to address some > > > timing issues. I > > > >>>> don't have > > > >>>> >>the info from AMD handy, but someone has > > > written about it here (and > > > >>>> >>provides links to downloads): > > > >>>> > > > > > > >>http://ucguides.savagehelp.com/Quake4/FAQ_DualCore.htm#AMD > > > >>>> >> > > > >>>> >>RDTSC is used for the +showbudget panel. > > > There are some issues > > > >>with > > > >>>> >>that on AMD x2 systems, but that is > limited > > > to the profiling code. > > > >>>> >> > > > >>>> >>Jay > > > >>>> >> > > > >>>> >> > > > >>>> >>> -----Original Message----- > > > >>>> >>> From: > [EMAIL PROTECTED] > > > >>>> >>> > > > [mailto:[EMAIL PROTECTED] > On > > > Behalf Of > > > >>>> >>> Jeffrey "botman" Broome > > > >>>> >>> Sent: Wednesday, April 12, 2006 6:36 AM > > > >>>> >>> To: [email protected] > > > >>>> >>> Subject: Re: [hlcoders] > gpGlobals->realtime > > > standing still > > > >>>> >>> > > > >>>> >>> Jay Stelly wrote: > > > >>>> >>> > What platform? (linux/win32)? On > linux > > > realtime is just > > > >>>> >>> accumulating > > > >>>> >>> > changes from repeated calls to > > > gettimeofday() Have you compared > > > >>>> >>> > gpGlobals->realtime to the output of > > > Plat_FloatTime() ? > > > >>>> >>> Are they both > > > >>>> >>> > slow/stopped or just realtime? > > > >>>> >>> > > > > >>>> >>> > Has anyone else encountered this > problem? > > > >>>> >>> > > > >>>> >>> ...also, what CPU (Intel or AMD)? Are > you > > > running multiple > > > >>>> >>> cores and/or CPUs? I remember recently > > > reading about an AMD > > > >>>> >>> problem with multiple cores (or was it > > > multiple CPUs) where > > > >>>> >>> the RDTSC instruction's time wasn't > > > syncronized between > > > >>>> >>> CPUs/cores so when called once by code, > it > > > would return the > > > >>>> >>> ticks from core 0, when called again, > it > > > would return the > > > >>>> >>> ticks from core 1 (which could be > > > different). This would > > > >>>> >>> make the system appear to jump ahead in > > > time and/or go back > > > >>>> >>> in time. If HL2 is using RDTSC instead > of > > > >>>> >>> QueryPerformanceCounter(), it could get > odd > > > results on AMD > > > >>>> >>> multi-CPU systems. If memory serves > > > correctly, Windows > > > >>>> >>> forces QueryPerformanceCounter() to > always > > > run on CPU 0, so > > > >>>> >>> you don't get any discrepancy between > > > calls. > > > >>>> >>> > > > >>>> >>> -- > > > >>>> >>> Jeffrey "botman" Broome > > > >>>> >>> > > > >>>> >>> > > > _______________________________________________ > > > >>>> >>> To unsubscribe, edit your list > preferences, > > > or view the list > > > >>>> >>> archives, please visit: > > > >>>> >>> > > > > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >>>> >>> > > > >>>> >>> > > > >>>> >> > > > >>>> > > > > >>_______________________________________________ > > > >>>> >>To unsubscribe, edit your list > preferences, > > > or view the > > > >>>> list archives, please visit: > > > >>>> > > > > > > >>http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >>>> > > > > >>>> > > > >_______________________________________________ > > > >>>> >To unsubscribe, edit your list > preferences, or > > > view the list > > > >>>> archives, please visit: > > > >>>> > > > > > > >http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >>>> > > > >>>> > _______________________________________________ > > > >>>> To unsubscribe, edit your list preferences, > or > > > view the list > > > >>>> archives, please visit: > > > >>>> > > > > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >>>> > > > >>>> > > > >>> > > > > >>>_______________________________________________ > > > >>>To unsubscribe, edit your list preferences, > or > > > view the list archives, > > > >>>please visit: > > > > > > >>>http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >>> > > > >>> > > > > >>>_______________________________________________ > > > >>>To unsubscribe, edit your list preferences, > or > > > view the list archives, > > > >>please visit: > > > > > > >>>http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >> > > > > >>_______________________________________________ > > > >>To unsubscribe, edit your list preferences, or > > > view the list archives, > > > >>please visit: > > > > > > >>http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > >> > > > >> > > > > >>_______________________________________________ > > > >>To unsubscribe, edit your list preferences, or > > > view the list archives, please visit: > > > > > > >>http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > > >_______________________________________________ > > > >To unsubscribe, edit your list preferences, or > view > > > the list archives, please visit: > > > > > > >http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > _______________________________________________ > > > To unsubscribe, edit your list preferences, or > view > > > the list archives, please visit: > > > > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > > > > > -------- > > My Website http://www.ammahls.com > > Lead Programer NightFall > http://www.nightfallmod.net > > Developer of CST and ZHLT 3.0 > http://www.zhlt.info > > Team Lead - Prime - > http://www.nigredostudios.com > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > > > _______________________________________________ > > To unsubscribe, edit your list preferences, or > view the list archives, > > please visit: > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > -- > > _______________________________________________ > To unsubscribe, edit your list preferences, or view > the list archives, please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > -------- My Website http://www.ammahls.com Lead Programer NightFall http://www.nightfallmod.net Developer of CST and ZHLT 3.0 http://www.zhlt.info Team Lead - Prime - http://www.nigredostudios.com __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

