Unless I'm missing something, it sounds
like you're describing a system that will only run as fast as the
slowest client. Such a system would be fine on a LAN but probably
not over the internet...
Re determinism, in theory it's simple
to playback a level based on the recorded key presses (which is somewhat
equivalent to what you're suggesting), but in practice this can turn out
to be really quite tricky since there are a lot of subtle ways that non-determinism
can be introduced. You need to be particularly careful to ensure
any PRNGs you use don't diverge (I've seen games which use separate graphics
and game play PRNGs for this reason). For the PC platform, can you
trust floating point maths to be deterministic across all the different
CPUs out there?
Alex Clarke
sweng-gamedev-bounces <at> lists.midnightryder.com wrote
on 22/02/2008 12:27:59:
> I would like to gather opinion/experience on deterministic simulation,
> especially as it relates to networking/multiplayer.
>
> Has anybody here implemented multiplayer as a fully determinstic
> process? i.e. sync every frame, server main authority, client fires
> but doesnt do so until the server acknowledges it's happened etc.
So,
> no client side prediction, clients just send commands to the server
> and wait to receive command streams back before triggering any
> actions. In order for this approach to work the game has to be
> completely deterministic. More lag is suffered than with client-side
> prediction schemes, or peer to peer, but there are benefits too;
> easier test during development and from a QA point of view being the
> biggest.
>
> The server would have to time stamp all commands, so all clients
> execute them in the same order (to remain deterministic). Clients
will
> stutter if starved of command packets, and be forced to wait for the
> packets to come in and get processed in order to get back on track.
>
> I've heard some recent console titles employed this scheme to simplify
> testing, but have not found anything concrete in the form of
> articles/papers covering their experiences.
>
> And some discussion on what can affect the determinism of your
> simulation? Here's a start:
>
> - threaded jobs need to officially complete on schedule instead of
as
> and when they are actually done, to remain deterministic..
> - maths must be deterministic (so favour instruction set vs. C++/trust
> the chip/compiler - is this entirely possible if you are careful?)
> (leads to deterministic physics)
> - no game logic affecting game state to rely on non-deterministic
> behaviour (i.e. anything frame rate dependant) ... real world
> possible? implications? experiences?
>
> -scott
> _______________________________________________
> Sweng-Gamedev mailing list
> Sweng-Gamedev <at> lists.midnightryder.com
> http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
**********************************************************************
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify postmaster <at> scee.net
This footnote also confirms that this email message has been checked for all known viruses.
Sony Computer Entertainment Europe Limited
Registered Office: 10 Great Marlborough Street, London W1F 7LP, United Kingdom
Registered in England: 3277793
**********************************************************************