[過去ログ]
Javaで作るスタンドアローンゲーム (484レス)
Javaで作るスタンドアローンゲーム http://mevius.5ch.net/test/read.cgi/gamedev/1356591858/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
353: 名前は開発中のものです。 [sage] 2014/11/22(土) 05:43:04.14 ID:YsbIPryz 自分も同じような段階なので非常に興味があります 僕の場合は通信にはプロトコルを定めて4バイト以下でやり取りしているので、オブジェクトの送受信は今ちょっと調べただけですが…… ハッキリとは分かりませんが、ObjectOutputStream自体がブロッキングするioなんじゃないでしょうか? 調べてみたところ以下の実装が綺麗な気がします http://stackoverflow.com/questions/5862971/java-readobject-with-nio ByteArrayOutputStreamでラップしてデータの長さを調べて、さらにByteBufferでラップして先頭に長さを埋め込んでおきます 受け取る側ではまず先頭の長さ情報(4バイト)を読み込みます 続いて長さ分確保したbufferに本体を読み込み、あとは逆順にObjectInputStreamに落とし込みます 僕も簡単なフレームワークがあったらなあとも思いますが、お互い頑張りましょう http://mevius.5ch.net/test/read.cgi/gamedev/1356591858/353
357: 名前は開発中のものです。 [sage] 2014/11/23(日) 00:38:44.67 ID:UddT0/lz >>353 提示されたソースを参照しながら色々と試しております。 とりあえずシンプルチャットの文字列のマルチキャストはできましたが、インスタンスのやり取りはまだうまく行っていません。 ObjectOutputStreamについては仰るとおり、ブロッキングが発生するストリームです。 ブロッキングを回避するためにマルチスレッドにして、受信したメッセージとインスタンスをプールして一元的に処理しようとして・・・ などとやっているうちにデッドロックが発生して頭を抱えておりました。 Webアプリケーションフレームワークでもそうであるように、通信部分はほぼ共通の処理だろうし、 C/S型MOGの実装とて大きな違いがあるとは思えないのですが、ないものですかね・・・ 一応、Jogreとか言うゲームエンジンがC/S型を想定したものらしいのですが、使い方がまるで判らず オープンソースだからせめてどこか参考にできないかと見てみましたが私の頭では理解できませんでした。 >>354 ゲームの根幹となるシステムはサーバ側で実装しようと考えており、その際にクライアントの通信待ちでブロックされてしまうと処理が進まなくなってしまうので、初めからノンブロッキングで行くつもりです。 前述の通りマルチスレッド化の段階でうまく行かなくなってしまいました。 >>355 通信方式には特にこだわっているわけではないのですが、今後内輪で一人複数キャラ起動で20〜100程の同時接続を想定しており、 そうなると今後はUDPでないとまずいのかな、などと漠然と考えておりますが、実装が楽なはずのTCPですら躓いている状態です。 http://mevius.5ch.net/test/read.cgi/gamedev/1356591858/357
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s