Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2007-11-25

リフティング100回達成

画像の説明

昨日も500以上蹴った。 今朝は娘を塾に送っていった帰りに、玄関でやってみたら、2回目に78回、3回目に80回と調子良し。

9時50分に買い物に出かけることになっていたのだけど、例によって妻がなかなか出てこなくって、玄関で暇つぶしをかねてリフティング。

ふと思ったんだ。今まで10回、20回できることがすごいことだと思ってたけど、よくよく考えてみればボールを落とすことのほうがおかしい。ずっと右足だけで(一度も地面に右足をつけずに)、つま先よりちょっと甲よりのところで蹴り上げるんだけど、理想的なポイントから半径2センチくらいの場所に当てればよい。つまりけっこうな誤差が許される。だから落とすほうがおかしい。手でやってみると、練習しなくてもボールは落とさないんだから。

と思いつつ、10分くらいやってたら103回達成。

その後も妻が来なくって、ちょっと小さいフットサルボールで挑戦したら、158回できた。それでも妻は来なくって、一度家に戻って、結局出発したのは10時20分だった。

100回超えるのに2年半以上かかったな。

2007-11-24

[プラポケ]グレード昇格

今期からグレード昇格が発生するように調整。今日の結果を見ると10名がグレード昇格。ちょうどいいバランスかな。

2007-11-24

[プラポケ]日付更新処理でこけてた

何故か日付更新処理が行われていない。普通は日付更新中にエラーで止まると、ロックがかかってメンテナンス状態となり、ログインも出来なくなるはずなのに、ログインはできた。ただ更新処理だけ行われていない感じ。

調べると、更新処理がロックかける前に落ちていて、ぜんぜんプログラムが走ってない。原因を調べると、昨日テスト用にインストールしたRubyの最新版(1.9)が、インストールパスを間違えてて運用用のRubyを上書きしてた。ヘッドじゃRailsは走らんよな。(本当はRubyプロセスを起動する前にロックファイルを作成して、Rubyスクリプトの最後でそれを消すべきか。)

tempに残っていた1.8.5のコンパイル済みRubyをmake installして、gem入れて、sqlite3-rubyを入れて、環境を再構築。6:30ころに手動で日付更新処理を走らせた。

Railsサーバー(WEBrick + production)は起動しちゃったら、Rubyの実行ファイルがなくなっても大丈夫なのね……。

2007-11-23

リフティング100回への道

画像の説明

リフティング100回への挑戦。残念ながら80回が1回、78回が2回でただけ。でも80回は過去最高記録。最近は家に入る前に30回成功させなきゃいけない、とかやっててちょっとうまくなった。

去年は15回やるのに1時間以上かかって、汗だくになったのだけど、だいぶ慣れてきたので、涼しいこの時期だと汗はかかない。たぶん今日はリフティングを合計で1000回以上やった。フットサルをほぼ毎週、2〜4時間やっているから、これくらいでは疲れない。足腰が丈夫になったもんだ。

2007-11-23

[栽培日誌]バジルと大根の収穫

ここ数日冷え込んできたせいか、バジルの葉が少し茶色がかってきた。 天気が良かったので、枯れる前に全部引っこ抜いた。 シャワーで洗って洗濯物と一緒に干しておく。ぱりぱりに乾燥したら、粉にしてビンに詰める。乾燥させたバジルはパンやパスタに欠かせない。時間がたつと香りが飛ぶので、毎年作らなくてはいけない。

大根の葉っぱの勢いが良いので、どれくらい育っているのか気になって、一番大きそうなやつを引っこ抜いてみた。まだ25センチくらいしかなかった。これは三浦大根だから、このまま育てていれば、きっと50センチ以上の巨大大根になったはず。もったいない。

画像の説明画像の説明

2007-11-23

[アイデア]アーチャーと機械兵

そもそも攻撃は大きく2つにわかれて、STR派とINT派。 で、遠距離攻撃を行うジョブが2つあって、機械兵とアーチャーがある。 機械兵がINT派で、アーチャーがSTR派。 INTというのはメカを扱う能力である。

ちなみに前衛では、STR+INTのメカ戦士と、純STRの軽戦士がいる。

2007-11-23

[アイデア]占い師と精霊使い

精霊使いに必要なのは、精霊とお話する能力。重要なのは正しい精霊語で話すこと、そして何よりも礼儀作法。精霊使いのレベルはどれ だけ高位の精霊とお話できるかという地位を表す。

占い師(預言者)は、少し先の未来を予測したり、はなれた場所を霊視したりする。 また精霊使いと同様にテレパシーによる会話が可能。 精霊使いがテレパシーを精霊との話術に特化させるのに対して、占い師はその念能力自体を強化し物質にわずかな力学的作用を与える ことが可能。 占い師の上級職はその遠視能力と遠隔操作能力により、専用の戦闘兵器を扱うことができる。 この魔法使い用の武器や防具を装備することで……

2007-11-23

シナリオ打ち合わせ

一昨日、シナリオ君とマックで打ち合わせ。Web掲載用のストーリーが上がったので、それについて感想をいろいろ伝える。

シナリオ君は硬派なSFでやりたいみたいだったけど、MMORPGにおける剣や魔法、弓、召喚等の必要性を説いて、いろいろ入れてもらう ことにした。

2007-11-22

ララアのまわりをまわっているビームでる武器なんていうの?

どうやって操作してるんだろう。

追記

そう、ララアのまわりというより、エルメスのまわりでした(笑)

Wikipediaでエルメス、ビットの辺りを見たらだいたいわかりました。 ファンネルもファンネル・ビットというんですね。

2007-11-21

[アイデア]ジョブ一覧

  • 重戦士(仮) STR (最強。戦闘兵器のプロ)
    • →ロード STR+INT(前衛を回復させる)
    • →穴掘り屋 STR(謎)
  • 軽戦士(仮) STR+MAG(太古より伝わる武術・剣術。芸術。精神)
    • →侍 STR+MAG
    • →忍者 STR+MAG
  • 機械兵(仮) STR+INT (メカ武器を駆使して攻撃。アビリティー:メカニックはINT系上級職に必須)
  • シーフ STR (探索惑星に仕掛けられたトラップを解除する者)
    • →アーチャー STR
  • メンテナー(仮) INT(回復役)
    • →ドクター(仮) INT(ハカセ。最高の修理屋)
  • 預言者 MAG (摩訶不思議な術で前衛を支援する)
    • →マジックユーザー STR+INT+MAG(重装備の魔法戦士。ファンネル、ララアのビーム出るやつ)
    • →ビショップ(仮) MAG(信仰心。魔力による回復術)
  • 精霊使い MAG (エレメントの力を操って、魔法による攻撃その他を行う)
    • →ウィザード MAG (魔法使いの上級職)
  • ?
    • →召喚士 INT MAG(特殊な装置と次元超プログラムを扱う)

能力値の意味。

  • STR …… 肉体的な強靭さ。攻撃力とHPに影響する
  • INT …… 知力。化学兵器を操るために必要な演算・計算能力。メカ系武器の攻撃力(命中率)に影響
  • AGI …… 素早さ・反応速度。戦闘中の行動順序を決定する
  • MAG …… 魔力。上記3つがカード依存なのに対して、MAGはゴースト依存。成長はしない

攻撃の種類は主に3つ。

  • 兵器攻撃 …… 銃やビームライフルライフル、その他ドリルとか何でもありの化学兵器による攻撃。銃器の威力はINT依存、ドリルにはSTRが必要
  • 武術攻撃 …… 剣(実剣、光剣)等を用いた人間の歴史が生み出した武道、クラシカルな武術による物理攻撃。弓矢もある。太古の武器とは素材や形状が異なる。この時代の科学力と職人技(刀鍛冶)が融合して作られた武器。これを扱う上級職は侍と忍者。彼らは魔力も使う
  • 魔法攻撃 …… ファイアーボールを投げつけるとか、電撃を食らわすとか

基本職と上級職の関係

マジックユーザーは軽戦士を継承してもいいかも。

画像の説明

2007-11-21

[プラポケ]スケジュールがバグってた

スケジュールを直したついでに、ランキングの過去の成績のリンクを直して、あとグレード昇格が発生するように昇格に必要なポイントを調整した。

期間も少し延ばしてあって、今ステージは9試合で行われます。

2007-11-21

[プラポケ]ステージ2終了

優勝はazaさん。ただひとり全勝。おめでとうございます。ちなみにステージ1の優勝者はtowaさんでした。

今日からステージ3がスタート。次のステージからはグレード昇格が発生するようにバランスを変更しないと。

2007-11-20

[プラポケ]あれ

スケジュール画面のコモンボーナス(得点のうしろの括弧内)がちゃんと表示されていない気がする。全部0になってる?

2007-11-17

[プラポケ]ステージ長さと昇格に必要なポイント

次の更新でステージが機能がちゃんと動くことが確認できたら、次は適切なポイントを定めて、中期的なバランスを踏まえて調整しないと。

今はグレードが上がらないから、賞金が安くて、アイテムあんまり買えないんだよね。

2007-11-17

[栽培日誌]葉野菜が育つようになってきた

画像の説明

相変わらず無農薬、有機栽培で頑張っている。今年は葉野菜の調子がいい。小松菜は2年前から成功していたのだけど、今年は白菜がちゃんと育っている。結球しないタイプを選んだのが良かったんだろうと思う。

葉野菜系

白菜や春菊がよく育っている。

画像の説明画像の説明画像の説明画像の説明

夏野菜系

ミニトマトは東の通路に植えてあるので、実験的に液肥(化成肥料)を投入してみた。するとこの時期でも少量の実がつく。

画像の説明画像の説明画像の説明

冬野菜系

大根、ネギは鍋の主役に。

画像の説明画像の説明画像の説明

ハーブ系1

パセリは今の時期に植えておくと、来年の春に食べきれないほど採れる。

画像の説明画像の説明画像の説明画像の説明画像の説明

ハーブ系2

いわゆるハーブ。今年は初めてパイナップルミントが夏を越した。ミツバは庭に自生していて、意外なところからでてくる。

画像の説明画像の説明画像の説明

ハーブ系3

これらもハーブといえばハーブ。ソード型の葉はニンニク。今年はところどころの空いているところに植えたので、来年は30個くらい採れるのではないか。枯れているのは葉シソの種。

画像の説明 画像の説明 画像の説明

2007-11-13

[プラポケ]ステージ更新失敗

更新処理がこけて今朝はサーバーにロックがかかった。 とりあえず手を入れておいた。最新のランキングがおかしいけど、たぶん明日の更新で直る。

2007-11-12

[プラポケ]今日でステージ1が終わり

成績がリセットされて、明日から新しいステージが始まるはず……です。

2007-11-10

[プラポケ]テスト中

今のところ初日の更新処理で一度RSSの書き出しに失敗(パスの問題)して止まっただけ。 それ以降は順調に動いている。参加者は12名。

あと2日で今ステージが終了するから、ステージ切り替えを確認すれば広くプレイヤーを募集できるかな。

今回はカードのパラメータがいじってあって、一番大きな違いはカンナビスの弱体化。ライフを9から3に下げた。基本パラメータが最速最強のウィザードなのに、 ライフが高いから成長しちゃうわ、先制攻撃の布陣が安定しすぎだわで、強すぎたので。この修正で、スピード8や7のキャラの利用価値もでてくるはず。これでバランスも相当変わったんじゃないかなあ。

2007-11-09

テスト

テストです。

2007-11-07

ところで

バカ征くの中の人はRSSリーダー使っているのかな。 自分のところではRSSやってないからどうなのかなと思って。

2007-11-07

パラッパラッパーのカエル先生

カエル先生の中の人は誰ですか?

さっき車乗っててラジオからカエル先生らしき人の歌が聞こえてきました。前にも聞こえてきたことがあります。CDがほしいです。パラッパ、カエル先生でぐぐってみたけど正体がわかりませんでした。

2007-11-07

[プラポケ]RSSの配信テスト

昨日の夜以降のページビューがすでに500を超えてる。

軽くテストするつもりがもう参加者9名に。参加者が多いのはうれしい限りです。

実験的に簡単なRSSの配信をはじめた。 RSSリーダーを毎日使用する人なら、これで接続し忘れを防げるのでないかと思って。

ほんとはメール告知がいいのだろうけど、送信はいいとして、登録のUI作るのが大変そう。

2007-11-07

C++

久々に仕事でC++を使う。数年ぶりにすごーく低レベルなハードウェアから解放されたから。組み込み系のゲームだとC++はあんまり使われないんだよね。最近はそんなこともないのかもしれないけど。自分の場合は9年前からゲーム開発にC++とオブジェクト指向を取り入れていたけど、そのころはコンパイラがまともに動かないこともあった。

しばらくC++を使って、数々のバグを乗り越えるうちに、だんだんC++が嫌になって、Rubyistになった。

C++、たまに書いてみると楽しい。でもやっぱり複雑すぎる気もする。C++はオレには制御しきれない。便利なんだけど。C++使わずにCでオブジェクト指向やるのもそれはそれで好き。

9年前、それはこの本が発売されたときで、オレのオブジェクト指向はそのとき始まった。この本を読んでいなかったらRubyを今みたいに好きになってなかっただろう。その時歴史が動いた、だよ。

憂鬱なプログラマのためのオブジェクト指向開発講座—C++による実践的ソフトウェア構築入門 (DDJ Selection)(Tucker)

2007-11-06

しかし

プラポケ、もうすぐとかいってすっごく時間かかった。最近ほんとに仕事が遅い。 ようやくここまでこれてよかった。これでタスクがひとつ片付く……。

2007-11-06

[プラポケ]テスト公開

DBをSQLite3にして、ステージ機能を引き下げて帰ってきました。 とりあえずちゃんと動くか不安なのでこっそりテスト公開します。 以前のユーザー登録は情報は引き継いでいないので、全員新規登録が必要です。興味のある方がいらっしゃいましたら試してみてくれると嬉しいです。 あ、プラポケというのは一日5分で遊べる対戦型カードゲームです(本気で勝ちを狙うと5分じゃすまなくなるけど。遊び方についてはこの辺を参考にしてください。

http://dgames.or.tp:23002/

このまま本稼動に移行するか、どこかでDBをリセットするかは、まだわかりません。

以下で最新版のソースを入手できます。

svn co http://dev.moriq.com/svn/rails/pockets/

moriq さんありがとうございます><

2007-11-06

正攻法

結局一挙にタスクを片付ける方法はないので、ひとつつずつコツコツ進めてゆくしかない。

2007-11-05

遅い

しかし、やるべきことが進んでなくてまずい。すごくゆっくりは進んでいるけどあまりに遅い。職場が変わっても仕事量は変わらなかったのだけど、家庭の事情で去年より格段に忙しくなってしまった。

今週は頭を仕事モードにして、集中して厄介なところを一気に片付けてしまいたいなあ。

2007-11-04

犬夜叉

すごいと思う漫画家が2人いる。高橋留美子とあだち充。 昔から同じようなマンガを描いているように見えるのに、時代が変わっても人気が衰えない。

最近、犬夜叉を読んでいるのだけど、18巻が面白い。 めぞん一刻では死んだ昔の男と生きた主人公の男がいたけど、犬夜叉もこの構図に似ている。違うのは男ひとりに女が2人。500年前の巫女と現代の女子高生なんだけど、ややこしいことに過去の女である巫女の桔梗(ききょう)が途中で生き返ってしまう。

こうやって並べてみると絵も変わってないなあ。高橋留美子、何十年第一線で描くんだろう。

犬夜叉 (18)(高橋 留美子) めぞん一刻 1 新装版 (1)(高橋 留美子)

2007-11-03

[プラポケ]ステージ機能を実装した

やっと実装できた。結局1年くらいかかったなあ。最近仕事が遅いのはいろんなことに手を出しているせいだろうな。信じられないほど時間がかかるけど、でも止まっているわけじゃないんだよね。

サービス再開のタイミングといい方法を考えないとな。

2007-11-03

[Rails]デバッグのアイデア

ゲーム業界でデバッグというと、プログラマーではないプロのテストプレイヤーに 実機で動くROMなりを渡してバグを探してもらう作業の事をいう。 ちにみに、このテストプレイヤーのことをデバッガーという。 デバッグ会社というのもいくつかあって、前日の18時までに連絡すれば次の日からプロの人がきてくれます。

というわけでデバッグという言葉から感じるニュアンスが他の人と違うかもしれない。 というのは余談。

Railsアプリのデバッグをするときにこんな機能があったら便利じゃないだろうか。

  • いつでもDBの状態をセーブできる
  • セーブした状態はリストとして表示される
  • いつでも任意のセーブポイントに戻すことができる
  • いつでもDBを初期状態に戻せる
  • これらの操作はすべてWebから行える

DBを使った開発では、なにかこういったことを便利にやるノウハウがあるのかな。

2007-11-03

[Rails][プラポケ]ステージ機能実装方針

ステージ機能というのは、ランキングを集計する期間に区切りを作って、 期が変わればまた気分を一新して頑張れるよ、という仕組み。 他にも上位をキープするプレイヤーのプレッシャーを開放するという作用もある。 で、やっぱりこれがないと、エンドレスなわけでほんと辛いんで、 この機能が入るまでは長期運用はできないと思っている。

前置きはさておき、実装方針。 とにかく少ない修正で実現したい。

  • テーブルgame_environmentsにカラムnum_remainder_gamesを追加
    • ステージの残りゲーム数をカウントダウン
    • num_remainder_gamesが0になったときにステージ切り替え処理を行う
  • 切り替え処理
    • ランキングを計算してDBに突っ込む。1ステージ分のデータ(2次元配列)を1レコードに突っ込む(切り替え処理のときではなく毎
    • ステージ数をインクリメント
    • スケジュール、試合結果データをすべて削除
  • あとは通常のスケジュール作成処理を行えばOK
  • 過去のランキングを見れるようにする
    • そうかステージランキングを毎日更新すればいいわけだ
    • で最新のランキングもDBから引っ張ってくるようにする
    • 新しくrankingsテーブルを作成
  • ステージ切り替えのお知らせメッセージを追加
2007-11-03

[Rails][プラポケ]MySQL→SQLite3(解決編)

MySQLのインストールがうまくいかないのは、HDDが一杯だからだったorz。

MySQLを入れてSQLite版と比べたら、 SQLiteでうまく動かない原因もわかった。

models.find(:first, :conditions => "flag = 0")

flagはboolean型。上記の書き方はMySQLに依存している。 SQLiteだとfalseは"f"として登録されるらしい。 アホなバグ。十数か所を修正。 たぶん正しい書き方がわからなくて痛い目を見るのを覚悟で書いたコードだと思う。

次のような書き方が正しい。

models.find(:first, :conditions => ["flag = ?", false])

この調査と修正、確認作業で2時間を失う。 自業自得でくだらなくてやや腹が立つ。

もうひとつ問題があった。 あとmigrationで次のように書いたときに、

t.column "flag", :boolean, :default => true

MySQLだとflagに1が入るけど、SQLite3だと"f"が入る。 つまりSQLite3だとcreateしたときにfalseになる(バージョンは1.1.6)。 とりあえずモデルに以下を追加しおいた。

before_create {|e| e.flag = true }

これでSQLite3でも動くようになったぽい。 もしかしたら他にもなんか違いが出てるかもしれないけど。

2007-11-02

[Rails][プラポケ]MySQL→SQLite3

今までDBはすべてMySQLを使っていたけど、少し前から各サービスをSQLite3へ移行させていて、 昨日、公開用サーバーのMySQLを落とした。

で、今日プラポケのステージ機能を実装してしまおうと思って作業してたら、 一見ちゃんと動いているかと思いきや、スケジュールまわりがなんかおかしい。 SQLite3にしたのがいけないのかなと思って、開発環境にMySQLを入れようとしたらうまくいかない。

apt-get install mysql-server

を実行すると、下記メッセージのまま固まってしまう。

Stopping MySQL database server: mysqld.

4.1を入れようとしてもやっぱり同じメッセージで止まる。 困った。

SQLite3が原因なのかどうかはっきりさせたいんだけどなあ。 さくっとステージ機能を実装するのは無理だった……。

2007-11-01

[Rails]Railsでケータイ対応をやりたいのだけど

いままでまったくやったことがないもんで、まず何から手を出せばいいのやら。 定番のプラグインとかありますか?

この手のプラグインは浮き沈みが激しそうなので、いまどきのやつを使いたい。

--

勉強中。

--

コントローラの中でlayouts/application.rhtmlを切ったり、差し替えたりするにはどうしたらいいんだろう。

→jpmobileを使うと、ケータイからのアクセス用のrhtml(application_mobile.rhtml)を用意できる。

--

Firefoxの拡張でケータイからの接続が確認できるやつとかないのかなあ。