スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NetVisionMobile

ちまちまと東方らしきものと試験勉強に平行して携帯版NET VISIONつくってますが、ホントにできそうですw

ベースにしているのはもちろん
http://clc.sakura.ne.jp/vision/
NET VISIONさんのもの。

あくまで対戦アシストツールであるというのを意識してます。
ってか、カードゲームの進行をプログラム制御にするとかむずすぎる…

今のところできているのはメッセンジャーのようなチャット機能。
相手が文字を入力中の時は「入力中です」とでます。ラグも1秒程度なんでこれだけでもかなり使えるっぽい。で、中身がスクリプトデータいうか、命令も送れるので、カードをどうするかというのももちろん送れます。ってことは後はGUIを作って、デッキエディタ載せて、、サーブレットに部屋建て機能つけたら完成です。サーバーも用意できそうなので、一般公開もありかも。

実はカードの表示も成功していたりします。
NET VISIONさんのcardlist.iniを読み込んで、カードのレイアウトにして表示することに成功しています。
カードこんな感じです。優曇華のカードをプログラムで生成したものです~。まだ画像ファイルを使ってないので、使えばもうちょっと実際のカードっぽくできるかな、と(角を丸くしたり)。文字はいつもの方法での擬似TTF。単に縮小してるだけですがw見にくいことこの上ないので、レイアウトを崩してテキストを見やすくできるようにしておきます。一応、全種類のカードを表示できたんですが、文が長いのは全然収まりきりません(グンニグルとか)wそういうときのためにもテキスト化機能を…
おまけ程度にスキャン画像をSDから読み込んで使用できる機能もつけようかなと。

メインはチャットを使用しての対決です。が、いちいち文字撃つの大変なんでショートカット関連を充実させる必要あり。ドラッグでのカード移動は無理ですが、カーソルクリックでカードをどうするかのメニューを出す機能はつけたいと思います。(基本はサブメニューから「自分の場」を選択→カードを選択って感じの流れ)


考えるのは楽しいですなぁ。。。
いざ作るとなると大変なんですが。
東方アプリの方は敵のショット関連を強化。
複数の弾幕を同時に扱えるようになった。
(偶数弾+全方位、みたいな)
一見カードの方に時間かけてるようですが、実際は東方アプリの方が時間使ってます;
構造が複雑になってきて、難しい…


さーーーて、テスト勉強テスト勉強。
(テストは金曜が勝負です…)
スポンサーサイト

完全オンラインチャット

前回のを改良して、チャットにしてみた。
チャットはNetVisionの中核的な機能。

一応NetVisionのようなことができるように、文字列だけでなくて、操作内容の送受信もできるようにしてある。さらに以前の機構ではガンガンデータの取りこぼしがあったんですが、改良。ガンガン送ってガンガン受け取るのは変わらないが、相手との差を吸収すべく、サーバーで未送信データを可変長配列でためてれるようにして、取りこぼしをなくせるようにした。(突発的に電波が悪くなって数回更新できなくても復帰可能です。)
また送受信の周期も指定できるようにした。とりあえず1秒間隔でやってみた。
等間隔というだけでもちょっといい感じ。

エミュでの動作は重すぎて全然ためせなかったw
マルチスレッドのアプリを2個ですからね;;;
おかげでスクリーンショットはとれてませんorz
(白い背景に黒い文字、履歴数件の簡単なチャットです。)

実機での動作。
マルチスレッドの弊害というか、スレッド同期がうまいこととれず最初は送信がうまくいかないという自体が起こったが、強引に同期らしいことをやって見事解決。とりこぼしもなく、完全なチャットができるようになりました。(用検証)

レスポンスというかそういうのは、片方が送信をしたら早かったら2秒後程度で相手の端末にも反映されます。遅くて5秒といったくらい。前回のラグ5秒からは大きな進歩です。ほぼリアルタイム、と、いえなくもないかなw
といっても1秒に1回の通信がやっとな感じなんで、目標だった花映塚とかは完全な同期がなければゲームにならなそうなので無理そうです。
でもカードゲームとかなら全然快適に近い感じで再現できそうですね~。

サーバーサイドは一応部屋建て、観戦も想定したつくりにしている(つもり)だし、Visionだけでなく、いろいろなオンラインゲームも同一のプログラムでさばけるような感じ。

原因は胃にあった

前回の記事を書いた次の日あたりだるかったので15時間くらい寝ました。
寝れば体調もまぁ元に戻り、ヤル気もそこそこ戻るだろうと思ったんですが、
起きてしばらくしても、体調は変わらず。
で、気が付いたわけです。胃が悪い、と;

最初は疲れていたり、だるかったりが大きすぎて胃の悪さに気が付かなかっただけで、どうやらすべての原因は胃。ヤル気がでないのも胃がおかしいせい。

胃のあたり、痛いというか重いというかなんというか。
そしてゲップもでるという。これは、胃酸関係だろうか。

まぁとにかく今日胃薬をのんだところ、症状は割りと軽減されて、
なぜかヤル気がわいてきました;w(でも今はまたつらいorz)


■携帯でオンラインゲーム
今あるJavaの知識でもひょっとしたらケータイでの完全オンラインゲームをつくれるかもしれない、と、ふと思ったんで、折角だから復調の兆し記念に初のオンラインアプリをざざっと作ってみました。
非同期型鬼ごっこ携帯版花映塚つくるぜっという意気込みだったんで、送れるだけ相手に自分のキー状態を送信し続けるという簡単なアプリケーションです。受信したキー状態により■がそれぞれ動きます。■を二人でそれぞれ操作できるということですな。まぁ初オンラインなんでこれだけでもかなりおもしろかったですww

サーバーサイドはJAVAで使いやすそうだったんでSerbletを使用しています。Servletを使えるサーバーがなかったので、友人にPCにTomcatを入れてもらい、無料のドメインまでとってもらって実験しましたwドメインを取ってもらったのにも理由があって、.jamファイルのパッケージURLにIPアドレスを含ませることが出来ず、アプリのダウンロードが出来ませんでした。アプリはTomcatでアクセス可能なフォルダにいれそこからDLします。
クライアントサイドは2スレッドな簡単なもの。1スレッドは描画用、片方は無限ループでタイミングも計らずできるだけサーバーにキー状態を送る用。

同期とかまるでとってないので、相手と自分の画面の状態が同じということはまずありませんwwまた、使った感じですが、ラグは3~5秒で更新は1秒に1回といったところです。httpなんでいちいちconnect()、close()ですからね~、再接続に時間がかかってるというのは容易に想像できます;逆に再接続をなくせれば、ほぼ完璧なオンラインゲームの作成が可能です、多分。まぁ今のままでは花映塚は無理だなwwwFPS1とかありえないww

更新が1秒に1回ならば、1秒分のキー状態をまるまる記録して送信すれば無効なキー入力を減らせるのかな。


いや~、でもオンラインですよ~ww
リアルタイム、とはいかないもののNetVisionとか普通につくれそうだなぁww
(観戦機能とかもつけれます。)
wktkがとまらない!
(プレイには自宅鯖作成必須ってのが痛すぎるけどww内輪専用ならそれでいいや。)


■東方
次やることは敵の増量かも。
風神録にでてくるちょっと強い小さい妖精を描きます。
今の雑魚がいろいろ弾幕だしてると違和感が…
Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
metal_tsun@yahoo.co.jp

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。