122 lines
2.1 KiB
Text
122 lines
2.1 KiB
Text
|
registered clients will auto-kick unregistered clients
|
||
|
|
||
|
central clearingghouse for active servers
|
||
|
|
||
|
server logon messages
|
||
|
|
||
|
problem with reconnect to same server out of order packets
|
||
|
|
||
|
acknowledge all command line parameters
|
||
|
|
||
|
annoying pause on intermission screen
|
||
|
|
||
|
seperate accept/reject list for server packets and client packets
|
||
|
|
||
|
server compile time should be part of connect message and status
|
||
|
|
||
|
allocate new cvars during file parse
|
||
|
|
||
|
remote console should be able to do cvar setting/reading
|
||
|
|
||
|
make punchangle a client side operation
|
||
|
|
||
|
remove sys_printf
|
||
|
remove host_client
|
||
|
|
||
|
packet filter list
|
||
|
client move by test final pos and test 1/16 down
|
||
|
simulate world first, then clients, clients explicitly sim weapon projectiles
|
||
|
allow remote locations to subscribe to console output
|
||
|
|
||
|
|
||
|
|
||
|
client zombie state?
|
||
|
seperate command ques for client and server?
|
||
|
worry about partial connection during level change
|
||
|
worry about zombie state for if(!state) constructs
|
||
|
|
||
|
make sound/ and models/ implicit in data types
|
||
|
|
||
|
int sequence
|
||
|
int reliable_sequence;
|
||
|
bit reliable_payload;
|
||
|
|
||
|
consumption
|
||
|
renewable resources
|
||
|
depletable resources
|
||
|
rate of extraction
|
||
|
|
||
|
|
||
|
how can you influence other characters
|
||
|
how can you communicate
|
||
|
|
||
|
|
||
|
login
|
||
|
logoff
|
||
|
disconnection
|
||
|
|
||
|
client to server
|
||
|
----------------
|
||
|
last good received server time
|
||
|
milliseconds since last move frame
|
||
|
angles
|
||
|
movement
|
||
|
buttonstates
|
||
|
impulse
|
||
|
|
||
|
|
||
|
server to client
|
||
|
----------------
|
||
|
last movemessage received
|
||
|
origin
|
||
|
velocity
|
||
|
|
||
|
|
||
|
build movement
|
||
|
send movement packet to server
|
||
|
set player position to last known good
|
||
|
execute all unaknowledged movement packets
|
||
|
|
||
|
|
||
|
needs to know all things that can effect movement
|
||
|
|
||
|
movement context
|
||
|
----------------
|
||
|
origin
|
||
|
velocity
|
||
|
size
|
||
|
|
||
|
run move command (context, move)
|
||
|
|
||
|
|
||
|
|
||
|
#define MAX_MOVEMESSAGES 64
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
double time; // client time when sent
|
||
|
byte milliseconds;
|
||
|
} movemessage_t;
|
||
|
|
||
|
int ack_movemessage;
|
||
|
int current_movemessage;
|
||
|
|
||
|
movemessage_t movemessages[MAX_MOVEMESSAGES];
|
||
|
|
||
|
void CL_Frame (void)
|
||
|
{
|
||
|
get all pending server messages
|
||
|
|
||
|
latency = cl.time - movemessage[last].time;
|
||
|
|
||
|
movetime = cl.time - cl.oldtime;
|
||
|
get movemessage
|
||
|
|
||
|
send packet to server
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
does not adress interpolating other object's movement
|