Re: [Alephmodular-devel] Copy-on-write in practice
Status: Pre-Alpha
Brought to you by:
brefin
From: Br'fin <br...@ma...> - 2003-01-16 01:41:25
|
On Monday, January 13, 2003, at 11:36 PM, Woody Zenfell, III wrote: > I'd like to take one idea from my monstrous idea dump, copy-on-write > (COW) game objects, and talk a little more about it. > > Remember, the goal is to be able to split off into a fake (predicted) > game-state for one or more ticks, then later return to the original > (real) game-state, with the game-update logic being essentially the > same for predictive updates and real updates (and as similar to the > current code as possible, for practical reasons). > > (Sounds could be sticky, but I'll put that problem off till later.) > Hsm. I admit that I'm having trouble following the discussion of Copy-on-write. This might be due to lack of sleep or the minutiae that these discussions are going into. Also, we don't necessarily have to keep it similar to the current code. Prime importance is having a clear description of how networking ties in with input and game core. How does the GUI layer and the core layer work together? How does the network layer and the core layer work together? What scenarios do you see happening? If we assumed an 'animation layer' was appropriate, would the following be acceptable User enters input Input is sent to other servers (Send to network) Other players inputs are accumulated (Receive from network) Update game core with new info Game core overwrites the animation layer's dynamic data with new info. Go back to process user's input The animation layer itself runs faster than the game core. It's information tends to keep track of a simple subset of Game Core info. (Game core decides that a player is at x,y and is turning/firing, monster x is charging in a particular vector) Game Core does all the heavy lifting of AI and the animation layer would just do fluff based on last known info to add frames between decisions. I should emphasize that this is one possibility. I would like to see the discussion a little higher level in description right now. you're speaking of copy on write, but which side of the code is responsible for that? In retrospect what I'm thinking of as an 'animation layer' might just be a different way of expressing the same issues. Then again, it's also trying to address decoupling framerate from the game's current ~30fps game running (I don't currently know the feasibility of having the world itself be actively managed over 30 fps, would we have to make sure that M2 style monster aren't allowed to readjust their AI except every 1/30th of a second?) -Jeremy Parsons |