なんとなくオンラインアクションゲーム開発

投稿者:Material 315238 1 mini shainy 投稿日:2017/11/03 01:38

どうも、しゃいにーです
AI開発の合間に息抜きがてらオンラインアクションゲームシステム開発で遊んでいました

Rmakeでオンラインゲームとなるとsave/loadGameData関数が必要になるわけですが…
1秒に1回しか呼べないという弱点があります
アクションゲームのように常に処理し続けるゲームではどうしても使いにくいですね

なので1秒間の空白(正確にはセーブとロードで2秒間)のデータをどこかに溜めておいて、一気に送受信するプログラムが必要になります



できました

画像の試作段階のプログラムではプレイヤーの座標データ等を一旦サーバーに保存してからそれをロードして別プレイヤーとして表示させています
(赤が操作しているプレイヤーで、青がサーバーを経由させたプレイヤー)


離れてもちゃんと全プレイヤーが映る無駄なカメラワーク仕様


一応ジャンプも作った

…ていうか遅延云々以前にデータ容量のほうが深刻でした
x座標が3200、y座標が2400まで
これをそのまま保存して4桁+4桁+2桁(座標以外のデータ)=10桁
×60(30fps×2秒)=600

関数リファレンスを見るとsaveGameDataは500文字までしか保存できないとのこと
慌てて64進数変換プログラム作って保存文字列を500文字以内にしました


遅延も最短2秒あるし、実際にアクションゲームで使うのはまだ難しいかな…?

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2017/11/11 19:00, 履歴)
色々実験段階だとしても、
これだけの内容を作りこめることが
素晴らしいですね
Material 315238 1 mini shainy(投稿日:2017/11/13 11:22, 履歴)
ありがとうございます
まだRmake(Ruby)の構文に慣れてないので雑なプログラムになっていますが、とりあえず動く状態まで作れて一安心です