The thing is, that most thing gamestudio users use cant be
used.

No c_move, no physics, no events no "wait(1)" in all core functions.
Not even the way you use entities normally.
(or making shure they always result in exactly exactly the same result)

The core game-play needs to run in
a seperate routine with fixed time command cycles.
There should be only a single "wait(1)" in the core loop, to
avoid any desync. (actually not a wait(1), but a waitfunction
that waits for the next command cycle to be processed)
Random numbers must be assured to be taken in exact order.
using seeding or even a manually controlled random generator.

Other things like the visualization, graphical effect etc
can run seperately, as long as they dont affect the core gameplay (only receive data from it)

Anything that runs differently on different machines
would result in a desyncronized simulation, and thus
make such a system impossible.
So framerate dependant calculations should only affect
the visualization part.

--

Its also not a typical client-server approach.
There is no server wich calculated the gameplay, but
its rather just a simple command-packed proxy,
to make shure everyone has all info at the correct time.

The full game itself is run on each client seperately.