Re: [GD-General] time
Brought to you by:
vexxed72
From: Mike W. <mi...@ge...> - 2004-02-21 03:20:04
|
for multiplayer games like counter-strike or bf9142, i think that the=20 engine completely 'restarts itself' on every map change to help avoid=20 these types of errors. i recall a bug in quake that would crash it every 'x' hours on clockwork=20 if left running in 'demo mode' for example... for a massively multiplayer game though you would want to use something=20 more robust indeed. other than relying on the system clock itself (or a system-specific=20 high-performance multi-media timer), i'm not sure how i'd approach this. we use the windows internal clock for our own timing, and have routines=20 that check to see if we've 'fallen off the track' at any point, if so,=20 we do a sync between our internal game 'clock' and the windows system clo= ck. for multiplayer games, you may want all games (client or server) to rely=20 on the 'master server' clock possibly, not on a frame-by-frame basis,=20 but on a larger 'sync' basis, where you can make sure that all clients=20 are synced to the same timestamp? i'm not sure how else you'd approach this, aside from just forcing the=20 clients to sync to the server's time, whatever it happens to=20 be...clients would add or drop frames as neceessary to stay in sync... mike w www.gekidodesigns.com Brett Bibby wrote: > Howdy, I have been wrestling with time in my engine for some time now > (no pun intended). I wondered how other people are handling time? Our > game engine is specifically designed for PS2/Gcn, but it runs under > Windows too. Specifically... >=20 > What are the different components that people are using? We currently > have a single 32-bit time variable initialized to zero at startup and > that's it. Each frame we either count v-blanks, use system > ticks/timers or OS facilities custom for each platform to increment > the global time value, usually stored in microseconds and rounded up > to millisecond resolution for use in the engine. Works well and I > have done this for every game engine I have developed so far. >=20 > Feels like a change may be warranted though as online gaming becomes > more popular, since if the game was to run for many days it would > overflow and timestamping may be problematic. So now I'm thinking of > adding a time struct (different from ANSI C though) whereby we store > the year, month, day, hour and minute, and second and also a > conversion struct that says how many mins->hour->day->month->year so > we can convert "real" time into game time. I can pack this into > 64-bits, but then again a simple 64-bit timer using the old way to > simply count ticks would also eliminate the overflow problem anyway > and so I'm questioning the right thing to do. Also, I hoping to be > able to use absolute time for certain things where we used to use > delta times. What are people using for timestamps for online games? > Does each game session reset the server session time to prevent > eventual overflow? Or is a more robust timing mechanism used? Are > people using microseconds? milliseconds? >=20 > Thanks, Brett >=20 >=20 > ------------------------------------------------------- SF.Net is > sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps > & Web services for Linux with a free DVD software kit from IBM. Click > Now! http://ads.osdn.com/?ad_id=1356&alloc_id438&op=CCk=20 > _______________________________________________ Gamedevlists-general > mailing list Gam...@li...=20 > https://lists.sourceforge.net/lists/listinfo/gamedevlists-general=20 > Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU7 >=20 >=20 |