Unreal Engine Multiplayer Online Deep Dive #UE4DD まとめ
次はRPCの話。まずは各形式をC++とBPでどう書くか。Multicast, Owing Client, Server #ue4dd
2017-07-02 13:16:18RunOnServerではUFunction()に、WithValidation をつけないといけない。 #ue4dd
2017-07-02 13:18:14C++。Run on Serverを使ってサーバーで実行する際にWithValidationアトリビュートを必ずつける必要あり。バリデーション機能が自動で働くようになっているのはすばらしい。 #UE4DD
2017-07-02 13:18:18Run On Serverを使用する際のWidhValidationについて。RPCで呼び出される関数を実行する前に検証用の関数を実行。falseを返したら、RPCで呼び出された関数は実行されない。サーバー・ゲームの状態に応じた処理わけが簡単にできそう! #ue4dd
2017-07-02 13:18:21Reliableを使うことで通信の信頼性を向上させる。ただし、通信負荷などの問題が発生するので注意。詳しくは次のバイキングさんの講演で #ue4dd
2017-07-02 13:20:17たしかにUE4のネットワークプログラミングを知らないとなかなかつらい…この辺りは先ほども紹介した僕の過去にやった講演のスライドが多少役にたつかと思います。 #UE4DD
2017-07-02 13:21:11そうそうActorの所有権ややこしいよね。でもここを理解しないとただしくネットワークプログラミングできない。 #UE4DD
2017-07-02 13:21:38GameModeがサーバーにしか存在しないということも理解しておかないとこのへんは難しい。 #UE4DD
2017-07-02 13:26:34ServerOnly, ServerClient, ServerOwingClient の特性に応じて、Actorの Role, RemoteRole, bReplicates, bOnlyRelevantToOwnerのパラメータを設定する必要がある #ue4dd
2017-07-02 13:30:35プラットフォーム毎に中身は異なるが、機能別に定義されたインターフェイスを継承するクラスを実装する形。もしOnlineSubsystem側で機能が足りなかった場合は、その設計に従う形で追加すれば実装は簡単 #ue4dd
2017-07-02 13:33:05オンラインサブシステム。各種プラットフォームAPIを抽象化して同様の機能を提供。これもよくできてるけど、プラットフォームが存在していないと、NAT越えするのがとても難しいのがつらい… #UE4DD
2017-07-02 13:33:05そういえばオンラインサブシステムでボイスチャットもできるはずなんだけど、全然情報がないんだよなぁ… #UE4DD
2017-07-02 13:33:49まずはPIEでのテストについて。Number of Playerを変更することで、一台のPCで複数の画面を立ち上げての確認が可能 #ue4dd
2017-07-02 13:36:09Editor設定のAuto Connect To Serverを有効にすることで、PIE起動時に自動でマッチングされた状態にする。デフォルトはON #ue4dd
2017-07-02 13:36:55