Like how the game works?
eg.
client cycle at (0,0) on grid
client turns right at 14.924 seconds
message sent to server ("client turned right at 14.924 seconds")
server sends reply ("roger")
I guess it's more complicated than that. I remember z-man saying the grid was made of triangles, though I don't really understand why the grid needs to be spanned by anything.
Just curious, I did a bit of work on finite element methods a while back and this seems related.
Is there a description of the mechanics of the game anywhere
-
- Adjust Outside Corner Grinder
- Posts: 2003
- Joined: Tue Nov 07, 2006 6:02 pm
- Location: paris
- Contact:
Re: Is there a description of the mechanics of the game anyw
The grid is made out of triangles only for rendering. (So is any surface in any 3D world.) It matches every wall a player/map designer has laid.
And yeah that's essentially how cycles are controlled (src/tron/gCycle.cpp), with both client and server predicting everything considering the events they know happened. Unlike Quake 3 we don't send the whole gamestate in one packet and do next to nothing else, but instead use separated messages for each event. The server/client will push for these events to come to the other end until the other party acknowledges it though.
And yeah that's essentially how cycles are controlled (src/tron/gCycle.cpp), with both client and server predicting everything considering the events they know happened. Unlike Quake 3 we don't send the whole gamestate in one packet and do next to nothing else, but instead use separated messages for each event. The server/client will push for these events to come to the other end until the other party acknowledges it though.
Re: Is there a description of the mechanics of the game anyw
Ok, thanks,
My second question is, the timings are absolute rather than relative? By relative I mean the client might say "cycle turns left 0.3 seconds after previous turn", instead of saying "cycle turns left at 1832.293 seconds" (measured from the round start, for example).
Because I've sometimes experienced a slide that moves one turn, but I make another turn soon after that doesn't appear to have changed. As a result I've got a cycle delay of less than the server minimum, because the first turn has been delayed and the second turn hasn't.
(don't know much about cpp... Im guessing its c++)
My second question is, the timings are absolute rather than relative? By relative I mean the client might say "cycle turns left 0.3 seconds after previous turn", instead of saying "cycle turns left at 1832.293 seconds" (measured from the round start, for example).
Because I've sometimes experienced a slide that moves one turn, but I make another turn soon after that doesn't appear to have changed. As a result I've got a cycle delay of less than the server minimum, because the first turn has been delayed and the second turn hasn't.
(don't know much about cpp... Im guessing its c++)
pLxDari - Challenge us!
-
- Adjust Outside Corner Grinder
- Posts: 2003
- Joined: Tue Nov 07, 2006 6:02 pm
- Location: paris
- Contact:
Re: Is there a description of the mechanics of the game anyw
CPP indeed stands for CPlusPlus. (I guess.)
Timings are for the most part relative to round start, with 0 matching the moment cycles start moving.
Timings are for the most part relative to round start, with 0 matching the moment cycles start moving.
- Jonathan
- A Brave Victim
- Posts: 3391
- Joined: Thu Feb 03, 2005 12:50 am
- Location: Not really lurking anymore
Re: Is there a description of the mechanics of the game anyw
CPP is backmasking to make you buy PowerPC processors. Subliminal messages are totally working!
Seriously though, the triangles you're probably referring to are what the grid data structure is made of. It's one way to allow the game to check only the local area for walls, instead of checking every single wall every time it wants to check for collisions.
Seriously though, the triangles you're probably referring to are what the grid data structure is made of. It's one way to allow the game to check only the local area for walls, instead of checking every single wall every time it wants to check for collisions.
ˌɑrməˈɡɛˌtrɑn