FPSを作ってみる@wiki
02)
最終更新:
slice
-
view
(2012/02/26)
進捗(web編)
アコーディオンメニューは実際作ってみたら
正直言って操作性と視認性に疑問を感じたので止めた.入れ子にした所で重いしやはり見づらい.
そもそも当サイトでは項目を畳む程のコンテンツがないという(ログぐらいか?)
という訳でポップアップメニューに切り替え.
最初は既存のソースを参考にしようと探したが慣れないHTML+CSS+Javascriptというのもあってか
読んでもいまいちピンと来なかったのと
大した行数でもなし自分で1から書かなきゃ頭に入らない気がしたので,そうした.
楔形は出来たので後は組み込むだけ.クラス化は・・・するまでもないか.
正直言って操作性と視認性に疑問を感じたので止めた.入れ子にした所で重いしやはり見づらい.
そもそも当サイトでは項目を畳む程のコンテンツがないという(ログぐらいか?)
という訳でポップアップメニューに切り替え.
最初は既存のソースを参考にしようと探したが慣れないHTML+CSS+Javascriptというのもあってか
読んでもいまいちピンと来なかったのと
大した行数でもなし自分で1から書かなきゃ頭に入らない気がしたので,そうした.
楔形は出来たので後は組み込むだけ.クラス化は・・・するまでもないか.
アクセスカウンタはページビューとユニーク訪問者数を表示させ,更に今日,昨日,週間で集計させる物が出来た.
まぁ普通なので特記事項は無し.
まぁ普通なので特記事項は無し.
自前web拍手的についてはまだ着手していない.
どうせ作るんなら5段階評価も入れたいよね.
似たようなシステムで投票も出来そうだな.Googleの円グラフAPIでも使ってみようか
等とメモ帳に書き込んでいる段階.
どうせ作るんなら5段階評価も入れたいよね.
似たようなシステムで投票も出来そうだな.Googleの円グラフAPIでも使ってみようか
等とメモ帳に書き込んでいる段階.
日本語・英語対応についてはHTMLに両方の文面をそれぞれ異なったクラス指定で書き込んでおき
例えばHTMLがこうだとすると
<div class="Japanese">日本語テキスト</div>
<div class="English">English Text</div>
JavaScript側で
$(".English").hide();
とかやって他方を非表示にすればいいんだろうか?
ページ分けるのは管理の手間の観点で避けたい.
デフォルトでどっちにするかはユーザーのブラウザ情報を使えば何とかなりそうだ.
PHPでは確認したがJavascriptでは・・まぁ出来るんだろう.
例えばHTMLがこうだとすると
<div class="Japanese">日本語テキスト</div>
<div class="English">English Text</div>
JavaScript側で
$(".English").hide();
とかやって他方を非表示にすればいいんだろうか?
ページ分けるのは管理の手間の観点で避けたい.
デフォルトでどっちにするかはユーザーのブラウザ情報を使えば何とかなりそうだ.
PHPでは確認したがJavascriptでは・・まぁ出来るんだろう.
そしてスクリーンショットギャラリー.
巷ではLightbox2というのが流行のようだが
如何せん自分様がお気に召さないのでサムネイル一覧と詳細ウィンドウを並べた従来タイプ?にする,
現時点で恐らく半分程実装したんじゃないかと思う.詳しくは後ほどという事で.
巷ではLightbox2というのが流行のようだが
如何せん自分様がお気に召さないのでサムネイル一覧と詳細ウィンドウを並べた従来タイプ?にする,
現時点で恐らく半分程実装したんじゃないかと思う.詳しくは後ほどという事で.
(2012/02/21)
迷走
ここ最近迷走してるようにしか見えないが,実際そうだろう.
前回「CSSだのjQueryだのAjaxだの沢山あってヤバイ」
と言っておいてアレだが,結局全部手をつけてしまった.だって互いに関連してるから・・
流石にNode.jsだけは止めておく.あれまでやってたらもう一ヶ月吹っ飛ぶ.
ついでに習得したweb関連の技術で作ろうと思っている物リスト.
と言っておいてアレだが,結局全部手をつけてしまった.だって互いに関連してるから・・
流石にNode.jsだけは止めておく.あれまでやってたらもう一ヶ月吹っ飛ぶ.
ついでに習得したweb関連の技術で作ろうと思っている物リスト.
- スクリーンショットギャラリー
- アクセスカウンタ
- web拍手的な物
- アコーディオンメニュー又はポップアップメニュー
- 日本語と英語切り替え
どの言語や機能を使えばいいかは目星ついてるつもり.
正直これだけあったら新規にwebページ作った方がいいんじゃ?と思っている.
というか既にSQLとPHPが使える無料スペースを確保していたり.
本当に移行するかは別として.
正直これだけあったら新規にwebページ作った方がいいんじゃ?と思っている.
というか既にSQLとPHPが使える無料スペースを確保していたり.
本当に移行するかは別として.
ゲームの方も少し書いておこうか.例のRUDPだ.
まず,でかいパケットを自動的に分割して送受信できるようになった.
その際オプションでフラグを指定する事によりファイルをバイナリで送れ,受信側は一時ファイルに保存するようにした.
幾つか数キロバイトのファイルで動作確認したら上手く動いているようだった.
まず,でかいパケットを自動的に分割して送受信できるようになった.
その際オプションでフラグを指定する事によりファイルをバイナリで送れ,受信側は一時ファイルに保存するようにした.
幾つか数キロバイトのファイルで動作確認したら上手く動いているようだった.
対戦プログラムの方は.
各々の操作を受け付けて同期しつつ2Dスプライトを動かす所まで.
折角だからちゃんとゲームとして動くのかタイルベースのマップを表示して弾でも飛ばしたい(今やってる)
各々の操作を受け付けて同期しつつ2Dスプライトを動かす所まで.
折角だからちゃんとゲームとして動くのかタイルベースのマップを表示して弾でも飛ばしたい(今やってる)
あとこれはゲームとは関係ないがVisualStudio2010に変えてから早速右辺値参照やラムダ関数やauto変数を堪能中.便利の一言.
しかし時たまシンボル検索か何かの処理がハマッってしまってメモリを食い尽くす謎現象が発生するのは何故.
しかし時たまシンボル検索か何かの処理がハマッってしまってメモリを食い尽くす謎現象が発生するのは何故.
(2012/02/12)
現状
最近,WindowsよりUbuntuの起動時間が長いな・・
さてMySQL, PHPが一段落した所で
昔流行ってたCGIチャットをこさえて懐かしんでみたりした(こんなシンプルに作れたのか!)
とりあえずC++からMySQLに繋ぐ方法がわかれば,今のスキルでオンラインスコアボード位は作れるかもしれない.
逆にwebから何か情報を入力してゲーム側に反映させても面白いかもね.
その他SQL自体は複雑なデータベースから欲しい情報を効率よくクエリする物なんでSQLiteを使えばweb関係なく
ゲームでも使えそうだなあ・・・などと夢は膨らむ.
昔流行ってたCGIチャットをこさえて懐かしんでみたりした(こんなシンプルに作れたのか!)
とりあえずC++からMySQLに繋ぐ方法がわかれば,今のスキルでオンラインスコアボード位は作れるかもしれない.
逆にwebから何か情報を入力してゲーム側に反映させても面白いかもね.
その他SQL自体は複雑なデータベースから欲しい情報を効率よくクエリする物なんでSQLiteを使えばweb関係なく
ゲームでも使えそうだなあ・・・などと夢は膨らむ.
最早ゲーム作りたいのか何がしたいのかわからんと突っ込まれそうだが折角PHP覚えたのだから
何かwebページを・・と思った時に,PHPだけではどうしても華がないというか.
基本的にサーバから読み出したらリロードかページ移動まで情報変わらないもんなあ.
これも勉強して初めて知ったのだけど.
と言うわけで今度はJavaScriptをやっている.ちょこっと触ってみたらCSSだのjQueryだのAjaxだのと.
この辺はキリがなさそうなんでちょっとした自前のページ作る程度で切り上げないとマズそうだ.
スクリーンショットのギャラリーとアコーディオンスタイルのメニューが作れればそれでいい.
何かwebページを・・と思った時に,PHPだけではどうしても華がないというか.
基本的にサーバから読み出したらリロードかページ移動まで情報変わらないもんなあ.
これも勉強して初めて知ったのだけど.
と言うわけで今度はJavaScriptをやっている.ちょこっと触ってみたらCSSだのjQueryだのAjaxだのと.
この辺はキリがなさそうなんでちょっとした自前のページ作る程度で切り上げないとマズそうだ.
スクリーンショットのギャラリーとアコーディオンスタイルのメニューが作れればそれでいい.
話は変わってUDP通信クラス.大がかりなリファクタリングが終わり現在動作確認中.
web70%, C++30%くらいの力配分なので進行が非常に遅いとはいえソース書き直すだけでこんなに手間取るとは思わなんだ.
完成すればデカいファイルも送れるようになる,筈.(対戦サーバ接続時に持ってないマップを即席ダウンロードだとか)
web70%, C++30%くらいの力配分なので進行が非常に遅いとはいえソース書き直すだけでこんなに手間取るとは思わなんだ.
完成すればデカいファイルも送れるようになる,筈.(対戦サーバ接続時に持ってないマップを即席ダウンロードだとか)
今まで面倒くさがって開発環境はVC2008を使い続けていたが,ここに来てようやく2010へ.
インテリセンスがガンガン効くかと思いきや特に変わったことは無し.デバッガが若干軽くなったかもしれない.
あとはインクルードパスや参照ライブラリの設定方法が変わってて設定し直したくらいか?
そういやC++0xの右辺値参照とラムダ関数が使えるんだっけか.試してみよう.
インテリセンスがガンガン効くかと思いきや特に変わったことは無し.デバッガが若干軽くなったかもしれない.
あとはインクルードパスや参照ライブラリの設定方法が変わってて設定し直したくらいか?
そういやC++0xの右辺値参照とラムダ関数が使えるんだっけか.試してみよう.
(2012/02/05)
ネットワーク関係のあれこれ
取り組み中な事ばかりで
完了したと自信を持って言える項目は残念ながらないのだけど.
完了したと自信を持って言える項目は残念ながらないのだけど.
現在進行中リスト
- MySQL
とあるキッカケにより.オンライン要素のあるゲームを作る布石.
- PHP
これもSQLと関連して.触った感じLuaと似たような物かな.まだ基本的な構文と幾つかの関数を学んだ程度.
- UDPによる通信クラス
当然対戦したりcoopなゲームを作る為.
前回「ネットワーク関連の~」と書いたのがコレ.
前回「ネットワーク関連の~」と書いたのがコレ.
同じく前回「描画関連の~」と書いた物はここ2週間放置気味なので時期が来たら書く.
その他MySQLとPHPの練習のためにUbuntuをVirtualBoxに導入,
所謂LAMPスタックを構築したり文字のアンチエイリアスが気に食わんから切って
新UIのUnityも微妙だからgnome風味にしたり見よう見まねでカスタマイズ.などなど.
PHPを勉強してるとwikiじゃなくて自分でwebページ作りたくなるね.
所謂LAMPスタックを構築したり文字のアンチエイリアスが気に食わんから切って
新UIのUnityも微妙だからgnome風味にしたり見よう見まねでカスタマイズ.などなど.
PHPを勉強してるとwikiじゃなくて自分でwebページ作りたくなるね.
で,ネット対戦に使う通信クラスだけど
前はTCPで実装していたのをUDPで組み直している.UDPじゃないと駄目って事もないが
TCPではその仕様上「途中でデータをロストしたら再送し,確認が取れるまでは次のデータは送られない」から
さほど重要でないデータ(エフェクト類とか)を送りたい場合に不都合だから.
バイト単位で結合・分割される為にデータの切り分けが面倒だとかもある.
前はTCPで実装していたのをUDPで組み直している.UDPじゃないと駄目って事もないが
TCPではその仕様上「途中でデータをロストしたら再送し,確認が取れるまでは次のデータは送られない」から
さほど重要でないデータ(エフェクト類とか)を送りたい場合に不都合だから.
バイト単位で結合・分割される為にデータの切り分けが面倒だとかもある.
いやいや,尤もな意見を並べてみたが本当の所は「UDPで作ってみたいから」である.
勿論単なるUDPでは送ったら送りっ放し,届いたかの確認も何もあったもんではないのでそれなりの工夫をする.
そこで登場するのがReliable UDPという奴だ.
http://www.4gamer.net/games/105/G010549/20100905002/
実はこの記事を読んでたら実装してみたくてたまらなくなったというのが事の真相.
あんまり詳細については書いてないのだがそこは自分で補完しつつ,つい先日
「ホストに接続・切断」,「同期処理」,「復帰処理」と一通り動くとこまでは来た.
ちなみに通信の形態はP2P,格ゲーやシミュレーションゲームなんかで用いられるキー入力同期方式である.
そこで登場するのがReliable UDPという奴だ.
http://www.4gamer.net/games/105/G010549/20100905002/
実はこの記事を読んでたら実装してみたくてたまらなくなったというのが事の真相.
あんまり詳細については書いてないのだがそこは自分で補完しつつ,つい先日
「ホストに接続・切断」,「同期処理」,「復帰処理」と一通り動くとこまでは来た.
ちなみに通信の形態はP2P,格ゲーやシミュレーションゲームなんかで用いられるキー入力同期方式である.
だが作りながらの仕様変更が祟って案の定スパゲッティコードに.
あと1つ問題が.デカいデータを送れないのだった.
1つのUDPフレーム(一回のsend()で送るデータサイズ)は1500バイト程度に押さえないと経路の途中で分割されて効率が落ちてアレだし
そもそも8000バイト以上送ろうとしたらAPIに拒否される.
解決は単純で,複数のフレームに分けて送ればよいのだがこれがなかなか一筋縄ではいかない.
UDPは届く順序が保証されていないから届いたデータをソートする必要があるし,
前からある(分割されてない)フレームソートの部分はスパゲッティで触りたくないしで八方塞がり.
と言うわけで1から書き直す事にした.動作確認も含めもう2~3日かかるだろうか.
あと1つ問題が.デカいデータを送れないのだった.
1つのUDPフレーム(一回のsend()で送るデータサイズ)は1500バイト程度に押さえないと経路の途中で分割されて効率が落ちてアレだし
そもそも8000バイト以上送ろうとしたらAPIに拒否される.
解決は単純で,複数のフレームに分けて送ればよいのだがこれがなかなか一筋縄ではいかない.
UDPは届く順序が保証されていないから届いたデータをソートする必要があるし,
前からある(分割されてない)フレームソートの部分はスパゲッティで触りたくないしで八方塞がり.
と言うわけで1から書き直す事にした.動作確認も含めもう2~3日かかるだろうか.
ひととおり通信プレイが出来るようになったら固定画面,2人対戦の簡単なゲームを作る予定.
簡易的なゲームホスト列挙サーバをSQLとPHPで作れる気がしているのだが・・・
簡易的なゲームホスト列挙サーバをSQLとPHPで作れる気がしているのだが・・・