93 lines
2.0 KiB
Plaintext
93 lines
2.0 KiB
Plaintext
Client:
|
|
SceneManager:
|
|
TCPSocket
|
|
end
|
|
end
|
|
|
|
Server:
|
|
TCPServerSocket
|
|
SocketList --list of all client sockets if one is closed, remove it.
|
|
end
|
|
|
|
When the player enters the lobby, they can choose what server to connect to. When they connect to the server, they'll enter a sort of character creation screen. Once that is done, they will enter the game world proper.
|
|
|
|
This is controlled through the config files for now.
|
|
|
|
using ';' delimited commands, how can I get it to work?
|
|
|
|
-------------------------
|
|
|
|
UDPNetworkUtility:
|
|
void Open(port, packSize)
|
|
void Close()
|
|
|
|
//bind to an available channel
|
|
int Bind(ip, port)
|
|
int Bind(address)
|
|
|
|
//bind to a certain channel
|
|
int Bind(ip, port, channel)
|
|
int Bind(address, channel)
|
|
void Unbind(channel)
|
|
|
|
int Send(channel, data, len)
|
|
int Receive()
|
|
|
|
GetIPAddress(channel)
|
|
|
|
GetOutData()
|
|
GetInData()
|
|
|
|
GetOutPacket()
|
|
GetInPacket()
|
|
|
|
UDPsocket socket
|
|
UDPpacket packOut
|
|
UDPpacket packIn
|
|
end
|
|
|
|
-------------------------
|
|
|
|
packet_list.hpp:
|
|
Ping:
|
|
end
|
|
Pong:
|
|
end
|
|
JoinRequest:
|
|
avatarName
|
|
...
|
|
end
|
|
JoinConfirm:
|
|
yourID
|
|
end
|
|
NewPlayer:
|
|
id
|
|
position
|
|
motion
|
|
avatarName
|
|
end
|
|
MotionUpdate:
|
|
id
|
|
position
|
|
motion
|
|
end
|
|
union Packet:
|
|
MotionUpdate
|
|
end
|
|
end
|
|
|
|
-------------------------
|
|
|
|
Networking protocol:
|
|
//connections
|
|
ping - ping the server
|
|
pong - a response to a ping, carries the server name
|
|
join request - from client to server, this is the initial contact the client makes. it carries all of the client's information, like the handle, avatar, etc.
|
|
join confirm - the response to a join request, this makes the client enter the game proper, and carries the client's playerID.
|
|
disconnect - from either the client or server, his officially ends communications between the two programs
|
|
|
|
//player controls
|
|
new player - a new player enters the world. carries all player info
|
|
delete player - a player leaves the world, carries the player ID
|
|
movement - this is the initial position and motion of a player in the world. it is relayed to all clients, and progresses using delta progression
|