Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://komiuji.blog7.fc2.com/tb.php/24-0240b468

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Eden3の開発過程で培った(と言うか知った)、B2+で利用されている技術

技術と呼べるほどのものでもないですが…

B2+での各種処理ページ(戦闘やフロア移動→敵出現など)は、B2の処理と表面上同じに見えますが、内部動作が著しく異なります。

【B2】
1. データベースからテーブルをあれこれ結合して取得
2. 取得オブジェクトを逐一配列に取得し、内容を更新
3. 情報の更新は、データベースにUPDATE文を投げる
   複雑な情報の更新も、ダメージ計算とかで無い限りはSQLで計算させる
4. 戦闘などの再帰が必要な処理では、再度SELECT文でデータを取得し直す

【B2+】
1. データベースからデータをテーブル単位で取得、結合は極力使わない
2. 複数レコードからなるデータは配列に受け渡して、Foreach文で扱いやすくする(共通関数利用)
3. 例えば特定の1つのオブジェクト(アイテムやモンスター等)が複数のテーブルから
   構成されている場合には、1.で呼び出したレコードの配列をひとつの配列に突っ込み、
   構造体感覚で利用
4. 情報の更新は、ページ内での全ての処理が終わった後、結果の配列データから
   UPDATE文を構築して一括更新

 どちらがDBに与える負荷が軽いか、歴然です。
 前回の開発では、なにぶんPHPでの初開発だったので、勝手が効かなかった…とか言い訳してみたり。

 後者の方法は、どちらかと言えばAP側(Apache,PHP)に負荷が若干増しますが、
今までのやり方で起きていたディスク連続書込・読込による処理遅延は確実に回避出来、
前者の方法より格段に速いと信じています。検証してないけど。有識者いれば意見求む。

081223_001.png

 今日の開発では、アイテム合成処理を完成させました。
 上記にある、配列でデータをいじくる方法を用いる事によって、いちいち負荷の高くてめんどくさいSQLを
ゴリゴリ書く必要も無くなり、コーディングも簡略化されて開発速度自体も速くなっています。

 まだまだ作らないといけない機能やデータ作成作業が残っているので、すぐに公開は出来ないですが、
年明け…くらい、には…多分…おそらく… 公開、できたらいいなぁ~?…みたいな。


 そういえば、B2の公開も今年の2月頃(2月9日)でしたね。
 その時期に合わせて公開するのも、1周年記念って感じでちょうどいいかも?間に合えば、だけど。



01:51追記
 ブログ上部からUji Game(nussyのブラゲポータルサイトと思ってください)のトップへリンクしました。
 また、併せてサーバの自動再起動諸々設定して、毎週火曜日3:00~6:00の間を自動メンテナンス時間とします。

 余談ですが、8月頃からずっと1時間おきのB2のログイン人数/登録人数のログを取っていたのですが
今回のバックアップ時間は、4ヶ月間の実績から最も人の少ない時間帯をメンテナンス期間として設けています。
 また、登録人数も確認してみたのですが、8/10~12/10の間にユーザ数が1291人増えていました。
 本当にありがとうございます…
スポンサーサイト
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://komiuji.blog7.fc2.com/tb.php/24-0240b468

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

カウンタ

プロフィール

nussy

  • Author:nussy
  • Mail: komiuji@gmail.com
    Language:
    ASP(VBS,IIS) & MDB
    PHP(Apache) & MySQL
    VB2005

カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

IT用語辞典


Powered by IT用語辞典e-Words
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。