現在、c#オンラインマルチプレーヤーゲームにリアルタイムで取り組んでいます。目的は、UDPプロトコルを使用してクライアント/サーバーベースの接続を確立することです。これまでのところ、サーバーに接続されているすべてのプレーヤーにデータが届くようにする必要があるため、プレーヤーの動きにはUDPを使用し、イベント(プレーヤーの射撃、プレーヤーの命を失う)にはTCPを使用しました。UDPは「信頼できない」と言われ、一部のパケットが失われる可能性があることを知っています。しかし、接続に影響を与える可能性があるので、TCPとUDPを混在させないようにあらゆる場所を読んでいます。
主な質問は、ネットワークをどのように整理すればよいかということです。
UDPはコネクションレスですが、誰が誰であるかをどのように保存すればよいですか?クライアントのIPアドレスをリストに保存する必要がありますか?
重要なイベントにTCPを使用するか、UDPを使用する必要がありますか?UDPを使用する必要がある場合、データが失われないようにするにはどうすればよいですか?
TCPとUDPの両方を使用することで、各プレーヤーのIPをリスト(UDPの場合)と別のリスト(UDPの場合)に接続されているTcpClientに保存する必要があります。どうすればより効果的に変更できますか?