Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2004-03-31

[開発ログ]更新処理のフローが必要

更新処理(一日の時間進行)が複雑なので、このときの全体の流れが読みとりやすいようにソースを作成する必要がある。

2004-03-31

[開発ログ]CardDealerクラス

今朝読みはじめた「プログラミング作法」のメソッド名は能動的な名前に、に触発されてDeliverCardsクラスの名前をCardDealerに変更。メソッド名は

DeliverCards.all_user  #旧
CardDealer.deal_to_all #新

とした。なるほど、このほうがいい。

2004-03-31

[開発ログ]MURASAMAリーグ作成

情報がオープンになるように。特にリーグ編成のグループ分け、順位付け、他ユーザの成績など。これらはユーザからのみとうしをよくしておかないと致命的なバグが発生しやすいし、また発見しにくい。

早い段階でリーグ一覧、順位順全チーム一覧、トータル成績順位表などを用意しておくべき。

2004-03-30

[開発ログ]MURASAMAリーグ順位ソート

処理の順序は、まずステージ終了時に順位表を作成。順位上位からリーグの参加数にユーザを振り分けていく。順位作成のアルゴリズムを変更するだけで柔軟に昇格システムを変更できる。

ショーンさんからも提案があった6ユーザで10戦、つまり同ユーザとの複数回対戦もマッチメイクシステムでサポートしておいたほうがいいかもしれない。

2004-03-29

[開発ログ]MURASAMAのDB設計

今日はDB設計とリーグ処理を実装開始。

2004-03-28

[開発ログ]MURASAMA場面構成

  • ログイン画面
    • ユーザ名とパスワードがないときは割り込み
      • クッキー
      • hidden
      • URL
  • 試合結果
    • 試合結果があるときは割り込み
  • 新カード入手
    • 新カードがあるときは割り込み
  • メイン画面
  • スケジュール
  • 順位
  • カードショップ
  • アイテムショップ
2004-03-27

[開発ログ]MURASAMA

ようやく昨日から開発を再開。

2004-03-26

Bカードゲーム

ジャンル   対戦型カードゲーム
人数       2人専用
対象年齢   小学生高学年以上
Ver        1.0 (2004-03-26)
製作       dGames

用意するもの

  • 選手カード(80枚)
  • ジュエルカード(16枚)
  • 勝敗表

ルール概要

  • 2人で対戦するカードゲーム
  • 手持ちの7枚の選手カードのうち5枚を使って試合を行う
  • 先に4勝した方が勝ち。最大7試合。勝ち星が同数なら得失点差で決める

プレイ手順

1. ジュエルカードを配る

ジュエルカードは全て相手に見えるように並べておく。

  • 10000J × 1
  • 5000J × 1
  • 1000J × 5
  • 0J × 1

また、ショップ用に3枚のカードを表にして並べる。

2. 選手カードを配る

双方に7枚の選手カードを配る。選手カードは相手には見せない。 残ったカードは山にしておく。

先手を決める。

3. カードを一枚引く

先手から順に山からカードを一枚引く。このときカードを種類は相手に見せない。 引いたカードを手持ちのカードと一緒にしてはいけない。

3.5. 先手を決める(初回のみ)

手持ちのカードを一枚ずつ出し合う。同時に表にして、リバウンド値が高かった方が先手。 リバウンド値が同じ場合は通し番号が低いほうが先手になる。

4. カードを捨てる

手持ちのカードが8枚以上あればカードを一枚捨てなければならない。 先手から順にカードを捨てる場合は表にして捨て場に並べていく。

捨てられたカードにはスカウトシステムあり。

5. カード購入

先手入札

先ず先手が自分のジュエルカードを全て手に持ち、 カード購入に消費する額のジュエルカードを並べる。 このときジュエルカードは裏にして並べ相手には何枚消費するかだけをわかるようにする。

後手入札

その後、後手が購入に使うジュエルカードを表にして並べる。

カード購入

並べ終わったら先手のカードを表にし、 金額が大きかったほうから順にショップから好きなカードを一枚ずつ手持ちに加える。

0Jのジュエルカード

0Jのジュエルカード一枚のみを使った場合はカードを買うことはできない。 ただし、0Jカードを一枚だけで使用した場合はそのカードを捨てなくてよい。

6. 試合用カード5枚を並べる

お互いに手持ちから選んだ5枚のカードを裏にして並べる。

7. 一枚目から順にめくって行く

BOLの試合ルールに従って両プレイヤーの得点を決める。得点が多いほうが勝ち。 同点なら引き分け。引き分けも一試合に数える。

8. カードの消滅

試合に出場したカードで

経過試合数 >= カードのスタミナ値

となっているカードは捨て場へ移動。

試合に出したカードのスタミナが残っている場合は、表にして自分の前に並べておく。

9. 繰り返し

試合結果を勝敗表へ記入。どちらかが4勝するか、7試合が終わるまで手順3へ戻る。

リバウンドを先に制したものが次回の先手。 5枚目までリバウンドが互角であった場合は5枚目のカードの通し番号が低いほうが先手。

2004-03-25

[個人的なインストールメモ]BMPファイルの解析

BMPをテキストでダンプ。Cソースあり。 <URL:http://www.kk.iij4u.or.jp/~kondo/bmp/>

2004-03-25

[個人的なインストールメモ]CVS

メモのメモ。信頼性低。

レポジトリの作成

cd
mkdir CVS_DB
cvs init

インポートのテスト

カレントにインポートしたいファイルを置いて

cvs import -m "" test-cvs vox start

チェックアウトのテスト

cvs checkout -d my_work_dir test-cvs
2004-03-24

病院

体調不良で昨日3年ぶりに病院へ行った。高熱が出たものの腹の薬だけもらって帰る。

2004-03-22

[個人的なインストールメモ]tmail-0.10.8をmswin32-Ruby1.8.1

ダウンロード<URL:http://i.loveruby.net/ja/prog/tmail.html> tmail<URL:http://www.loveruby.net/ja/man/tmail/>

ruby setup.rb config --prefix=D:/ruby-1.8.1-mswin32
ruby setup.rb setup
ruby setup.rb install

DOSプロンプトでVC++コンパイラをする前の環境設定

cd C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin
cd C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
vcvars32.bat

Rubyのコンパイル

cd D:\ruby-1.8.1\win32
configure.bat
nmake
2004-03-22

[アイデンティティ]40年後

このまま順調に行くと筆者が年金を受け取るのは40年後か50年後である。その未来の世の中の想像がつかない。50年が経てば誰もが想像のつかない世界になっていることだろう。想像のつかない未来においての年金はさらに想像がつかない。考えるほど不安でしかなく老後のあてにはしていない。

2004-03-22

[アイデンティティ]50年後

仕事や趣味は50年後も続けられものがいい。先月81歳で亡くなった祖父の生前を見ていてつくづく思っていた。植木や盆栽を仕事としていた祖父は亡くなる10日前まで、自分で車を運転して近くの畑へ、水をやりに行っていたという。筆者が小学生の頃87歳で亡くなった祖祖父も、同じように直前まで自転車で畑に行っていた、というのが身内での語りぐさになっていた。二人とも癌であった。祖父は一年前に癌を宣告されたが治療はせずに今の仕事を続けることを選んだ。 最後まで筆者の望むお手本のような死に方であった。ゲームマスターは50年後も務まるであろうか。野菜の方は地球が今のようなままであれば可能であろう。

2004-03-21

体重が必要

筆者は身長のわりに体重がひどく少ない。今も高校生になったときと同じ体重なのだが、一人暮らしを始めて3ヶ月の頃に8キロほど体重が増えたことがあった。それでも明らかな痩せすぎには変わりないのだが、体の調子のよさを実感できた。調子がよいというよりは体力がついて無理が利くといったほうがよい。最も体感できたのは睡眠時間が少なくてもなんとかなるということか。その後すぐに体重はもとに戻ってしまった。あの体重に戻りたいと思い何度か増量を試みたのだがどどうしてもうまくいかない。そういえば睡眠不足を続けて初めて金縛りにあったのもあの頃であったか。

2004-03-21

納骨

今日、納骨があったので一昨日から群馬入り。

2004-03-18

[アイデンティティ]

「おはようございます」

2004-03-17

ドラクエ5

ドラクエVはシリーズの中で最も好きなタイトルである。今回発売されるPS2版もPTメンバーは3人のままなのだろうか。あのシステムの場合4人でもいいのではないかと思ったものだ。そういえば当時堀井雄二氏に会う機会があった。しかしまだ20歳になったばかりの筆者は、さすがに氏になぜ4人出なく3人なのかと突っ込むことはできなかった。いや、今でももし会う機会があったとしても言えないだろう。

2004-03-16

[アイデンティティ]デジカメ

最近、デジカメがほしいと思っている。用途は野菜の撮影とかモリョファイのイメージ写真等が主である。ほしいのだが、実際買うと面倒ですぐに使わなくなることがわかっている。撮ること自体は簡単でいいが、電池を入れ替えたり、データをPCへ移したりそのデータを整理したりするのが駄目なのだ。

と思っている最中、モリトマン氏のページを見るときれいな写真が。ケータイで撮ったのだという。これだけの写真が撮れるならケータイでもいいかもしれない。電池交換は不要だし、データもネットを通して転送できそうだ。よくをいえば撮った写真が自動的に自分のPCのフォルダにコピーされるといいのだが。もしかしたらメールとかをうまく使えばこれに近いことはできるのかもしれない。

2004-03-16

[栽培日誌]日誌

去年植えた野菜を忙しくなる前に書きとめておかねばならない。去年は狭い土地にやたら多くの種類の野菜を植えたので、連作障害を避けるために作付け計画を立てる必要がある。

2004-03-15

[アイデンティティ][プログラム]アセンブラ

もうすこしプログラムの話を続ける。筆者は超低級言語であるアセンブラについて、まるで諸悪の根源であるかのようなイメージを持っていた。Rubyのような便利で楽な高級言語を使うことが自分のやりたいことを実現する近道であり、アプリ作成のための効率のよさを追求することこそが自分の求めるものだと思っていた。

しかし10年近くぶりにアセンブラを触ってみたが意外に楽しい。Rubyでプロトタイピングした素数を計算するプログラムも2、3時間ほどで作ることができた。アセンブラの面白さはパズルゲームを解くような面白さである。オブジェクト指向プログラミングの面白さとは違った、古きよきプログラミングの面白さかもしれない。この楽しい感覚を久々に感じた。Z80に触れたのは今回が初めてだったのでもう少し慣れれば30分でできる作業だろう。Rubyで10分、アセンブラで+30分というのは意外である。てっきりRuby:アセンブラの開発効率は100:1くらいではないかと思い込んでいたが、そんなことはないようだ。しかしこれはたまたま効率に差がでにくい課題だったのだろう。ともあれ今回の経験は開発効率を考える上で非常にいい体験であった。

2004-03-15

[Ruby]素数を求めよ

10000以下の素数を

2 3 5 7...

の形で標準出力に表示せよ。

ある人にC言語の宿題として出した問題だが、Rubyで書くとたとえばこうなる。所要時間10分。

def sosu?(n)
  (2..n-1).each{|i|
    return false if n%i == 0
  }
  true
end

def print_sosu(max)
  (2..max).each{|n|
    print n.to_s + ' ' if sosu?(n)
  }
end

print_sosu(10000)

アセンブラをイメージしてみる。所要時間5分。

def sosu?(n)
  i = 2
  while(i < n)
    a = n%i
    if a == 0
      return 0
    end
    i += 1
  end
  return 1
end

def print_sosu(max)
  n = 2
  while(n <= max)
    a = sosu?(n)
    if a != 0
      print n
      print ' '
    end
    n += 1
  end
end

手動でZ80のアセンブラにしてみる。以下はsosu?メソッドのみである。おそらく255とか127でオーバーフローしてしまう。それ以外にもバグがあるかも知れない。所要時間90分。

GL_SOSU:
        LD      D,2                             ;D = 2

LL_LOOP:
        LD      A,B                             ;while(D < B) => (B-D>0)
        SUB     A,D
        JR      Z,LL_LOOP_END                   

        PUSH    BC                              ;A = B%D
        LD      A,B
        LD      B,D
        CALL    GL_AMARI
        POP     BC

        XOR     A,0                             ;if A == 0
        JR      NZ,LL_IF_END
        LD      A,0                             ;rerutn 0
        RET

LL_IF_END:
        INC     D                               ;D += 1
        JR      LL_LOOP                         ;

LL_LOOP_END:
        LD      A,1                             ;rerutn 0
        RET

GL_AMARI:
        SUB     A,B                             ;%
        RET     Z
        JR      NC,GL_AMARI
        ADD     A,B
        RET

そしてマシン語。左側の二桁の数字の並びが機械語のプログラムである。すべてはここに行き着くわけで、まるで映画のマトリックスのように不思議だ。

0000 16 02                LD    D, 02
0002 78                   LD    A, B
0003 92                   SUB   A, D
0004 28 11                JR    Z, 0017
0006 C5                   PUSH  BC
0007 78                   LD    A, B
0008 42                   LD    B, D
0009 CD 1A 00             CALL  001A
000C C1                   POP   BC
000D EE 00                XOR   A, 00
000F 20 03                JR    NZ, 0014
0011 3E 00                LD    A, 00
0013 C9                   RET
0014 14                   INC   D
0015 18 EB                JR    02
0017 3E 01                LD    A, 01
0019 C9                   RET
001A 90                   SUB   A, B
001B C8                   RET   Z
001C 30 FC                JR    NC, 001A
001E 80                   ADD   A, B
001F C9                   RET

ちなみにCで書くと、

#include <stdio.h>

int is_sosu(int n)
{
  int i = 2;
  while(i < n) {
    if(n%i == 0)
      return 0;
    i++;
  }
  return 1;
}

void print_sosu(int max)
{
  int n = 2;
  while(n <= max) {
    if(is_sosu(n))
      printf("%d ",n);
    n++;
  }
}

int main()
{
  print_sosu(10000);
  return 0;
}

whileはforにしたほうがよりCらしい。

int is_sosu(int n)
{
  int i;
  for(i=2 ; i<n ; i++) {
    if(n%i == 0)
      return 0;
  }
  return 1;
}

void print_sosu(int max)
{
  int n;
  for(n=2 ; n<=max ; n++) {
    if(is_sosu(n))
      printf("%d ",n);
  }
}
2004-03-14

[アイデア]吟遊詩人がゲームを紹介

またひとつ思いついた。吟遊詩人にゲーム紹介の情報を書いてもらってサイトのアクセス数とか本家につれてきた人数とかをキャラクターレベルとしてしまう。 知らない人に対してこのゲームをいかに魅力的に語ることができるかを、そのキャラクタの強さとして評価するのである。吟遊詩人クラスのエクストラクラスとして面白そうだ。

2004-03-14

[アイデア][tDiary]吟遊詩人とtDiary

いいアイデアを思いついた。吟遊詩人システムとtDiaryの融合である。吟遊詩人システムとは、プレイヤーがゲーム内で起こった出来事を人に面白おかしく語り聞かせ、それに対する他人の評価(投票数)がクラスレベルになるというもの。詩の作成をtDiaryで行い、それをゲーム内にフィードバックできたり、tDiary上で投票させたりとプラグインがあるから簡単にいろんなシステムが作れそうだ。近々tDiaryレンタルテストを開始するかもしれない。もし参加希望者がいたら連絡を頂きたい。

2004-03-14

[OSS][開発ログ]ライセンス選び

ライセンス選びは難しい。既存のライセンスを理解するだけでも難しいのに、プロジェクトに最適なライセンスを選択するとなると実に大変だ。ここではライセンスを自作するは論外としておく。おそらくは今後dGamesで使うライセンスはGPLかLGPL。

はて、ライセンスは途中で変更できるのだろうか。

それすらもわからないので既存のライセンスを理解しなければならない。 当面は「将来他のライセンスに変更されるライセンス」で公開。これはライセンスになっているのだろうか。しかも論外といった俺ライセンスが初めから登場している。

2004-03-14

[アイデンティティ][tDiary]RD

RDを使い始めてから一年近くになるが本当に気に入っている。RDを覚えてから書く文章の量が飛躍的に増えた。10倍ほどになったかもしれない。tDiaryやWikiの効果とあわせると50倍かもしれない。それ以前に書いた文章が非常に少なかったからだが、それはしかしほとんど文章を書かない筆者のような人間にまで、これだけの量の文章を書かせてしまうほど優れたツールであることを示している。もっとも文章の内容が優れているかどうかは別の話。

ただ、これでも以前に比べると文章を書くのが圧倒的にうまくなった。昔は自分の書いた文書を後で読むと意味不明なことが多かったが、最近はそういうことが少ない。あくまで依然と比べての話であるからつっこみは勘弁頂きたい。 上達もツールのおかげだろう。

2004-03-14

[アイデンティティ]HTML

日記内の本文はRDなのでさくさくと思ったことを書いていけるのだが、トップ部はtDiaryのヘッダなので普通のhtmlで書いている。ブラウザからの編集ができる点はお手軽でいいのだが、RDに比べると記述速度が圧倒的に落ちる。表現力が違うのだからしょうがないが、オレはとにかく面倒なことが嫌いなのでついつい更新が滞ってしまう。

この作業を一手に任せられる有能なwebマスターが仲間にほしい。

2004-03-14

[dGames]トップ修正

構成がひどかったのでとりあえず再構成。まだまだアクセスもなく発展途上なのでどうでもいいといえばいいのだが、それでも伝えたいことが伝わらずに出会いのチャンスを逃すのはもったいないので修正した。

はて、これが一期一会か。

2004-03-13

[tDiary]custom_thema.rb

CSS変更プラグイン。外部のCSSファイルを指定することで訪問者がテーマを変更できる。

custom_thema.rb

使い方

ヘッダ・フッタに以下を追加すると外部CSS入力のフォームが出る。クッキーを使用。効果は一時間。

<%= custom_thema %>
2004-03-12

[開発ログ][くぐつ師]システム構成図追記

重要なパッケージが抜けていたので図を修正。 パッケージはゲーム内に登場する固有名詞(キャラ名、アイテム名、能力名、技名など)、NPCの台詞、絵を再定義するものである。パッケージは仕様が完全に公開されているので誰でも作ることができる。これによってこのゲームはMMORPGツクール的な雰囲気も持つことになる。

2004-03-12

[開発ログ][くぐつ師]システム構成図

システム構成図 拡大

システム構成図の暫定版。 オレンジ色が水色が汎用ツール、アプリケーション依存部分になる。

汎用ツール

  • MMOサーバ/MMOクライアント
  • CGIベース機能
  • ユーザ登録
  • Easy Rocket

アプリケーション依存

  • ムラサマ
  • 栽培
  • 生産
  • 本体(MMO)

これらをそれぞれ独立したシステムにしたい。たとえばムラサマだけを運営したければ ムラサマ+ユーザ登録+CGIベース機能を使用すればいい。

ムラサマ

幻の銘刀。そして妖刀。 BOLのシステムを継承したwebゲームの開発コード。 現在開発中。

2004-03-11

[News]dGames-devスタート

dGames-devはdGamesの開発用メーリングリストです。開発用といってもMLはこれ一つしかないので興味のある方は気軽にご参加ください。

<URL:http://groups.yahoo.co.jp/group/dgames-dev/>

2004-03-11

[tDiary]RDスタイル

非常に使いやすい。デフォルトのスタイルでもそれなりによかったのだが、ただリストが面倒だった。RDスタイルの導入でtDiaryがより快適になった。

2004-03-11

[OSS]すごいプログラマー

いまレイモンドの「伽藍とバザール」を再読(筆者の読書は電車の中のみなのですごく遅い)しているのだがこんな言葉が出てくる。

何を書けばいいかわかっているのがよいプログラマー。
何を書き直せば(そして何を使い回せば)いいかわかっているのが、すごいプログラマー。

これまでオレは多くのコードを書きすぎた。昔は標準ライブラリもほとんど知らなかったからstrlenすら自分で書いていた。趣味で書いているプログラムではなくてPSのゲームプログラムにである。すごいプログラマーからはほど遠い。この先も自分がすごいプログラマーになれるなんて思っていないが、それでも最近はほとんどコードを書かずにひたすら調べて、考えてばかりいるのは、いい傾向かもしれない。

もう一つ「伽藍とバザール」から。

賢いデータ構造と間抜けなコードの方が、その逆よりずっとまし。

これはMySQLを使うべきかということに大きなヒントを与えてくれている。MySQLを使えば少なくともデータ構造を明確にコードから切り離すことができる。やはりMySQLを使うべきか。昨日、ruby-listにWindowsでのMySQL/Rubyの使用について質問を投げたらMySQL/Rubyの作者とみた氏からRuby/MySQLを試したみたらどうかとのご教授をいただいた。基本的なことなのにMySQL/RubyとRuby/MySQLが別にあったなんて気づかなかった。まだ試していないがどうやら問題は容易に解決できそうだ。

さらに余談だが筆者はとみた氏と直接お話をしたことがある。Rubyの作者まつもと氏とも話したことがあるし、なんとMySQLの作者モンティ氏とも話したことがある。だた英語が駄目なのでMonty氏との間には通訳に入ってもらっていたが。こういう人たちに会うのは意外と簡単で、MLに流れるイベントにひょっこりと参加してしまえばいい。あとは近くに来たら思い切って話しかける勇気さえあれば何とかなるものである。

2004-03-11

[OSS]バージョンのナンバリング

近いうちにEasy Rocketを公開したいけど初期バーションはいくつにするのがいいのだろうか。よく一般的なナンバリング方法がありそうなので調べねば。これには安定バージョン、開発バージョン等のリリース方針にも関係するか。このあたりも考えてゆかねばならない。

2004-03-11

[dGames]コミュニティ

ショーンさんが考えを述べてくれたことでdGamesはただの独り言サイトからコミュニティサイトへと昇進した。しかしあのBBSだけでコミュニティを形成するのは辛い。いよいよMLの立ち上げ時か。

このサイトは今のところ次のようなシステムで構成されている。

  • tDiary
  • RWiki
  • BBS
  • 静的なHTML(ごく一部)
  • ML(立ち上げ予定)

それぞれの使い分けを明確にしておかないと非常にわかりにくい構成になってしまう。

考えているそれぞれの使い分け方を書いておく。

tDiary

  • 個人的なこと
  • danの考える方向性
  • ニュース、リリース情報、トップページ … これらはtDiaryでなくてもいいのだが管理の楽さゆえに

RWiki

  • 書籍となり得るような情報
  • 他と比べれば静的な情報ということもできる

ML

  • コミュニケーション(即時的な)

BBS

  • MLに参加するまでもないような話題

ゲストブック的なものは必要なのだろうか。あと誰かが新規に開発者として参加するとき、どこかのリストに追加されたりするのだろうか。少なくともコミット権限のあるなしでリスト化する必要があるか。これについては他のコミュニティを調べてみよう。

2004-03-10

[tDiary]RDスタイルへ移行

リスト表記が面倒なので念願のRDスタイルへ移行移行。

RD使いなのに今までRDスタイルを使ってなかったのもおかしな話だが。明日の書き込みから有効になるようなのでフライングで今日の分を明日の日付に書き込む。

2004-03-09

[アイデア]作りたいもの

  • カード対戦式のwebゲーム
  • Easy Rocketの最低限動作するもの
  • ゲーム本体
    • ログイン
    • チャット
    • MAP移動
  • このページのトップのデザイン
2004-03-09

[アイデア]MySQL依存

MySQL非依存と書いたものの非依存でのシステムを考えると実際それはそれで難しいと感じできた。いろいろ調べていたら混乱してきたので整理したい。 まず当初の予定はこうだった。
  • 本体サーバ
    • Linux
    • MySQL
    • Ruby
  • webゲーム(CGI)サーバ
    • Linux
    • MySQL
    • Apache
    • Ruby
    • eRuby
  • 本体クライアント
    • Windows
    • Ruby
    • Easy Rocet(自作:DirectX 9.0 + Luna + Ruby拡張モジュール)
  • webゲームクライアント
    • IE or Netscape
ここでバザール型の開発モデルを成功させるためにWindows環境だけでも開発できるようにしたくなった。手元で試したところApacheとRubyに関してはWindowsでも簡単に動作せせることができた。そしてMySQLをどうすべきかとここ一日悩んでいるわけである。 WindowsにMySQLをインストールするところも容易で全く問題なかった。こう整理してみると現時点で問題になっているのはMySQL/Rubyだけ。いやもうひとつ別の意味での問題はそもそもMySQLを使うか使わないかという根本的なところだ。となると思いつく選択肢はこの3つ。
  • MySQLを使わない
    開発環境の構築が楽。Windowsユーザでも手軽に開発環境を用意できるのでとにかく開発参加への敷居が低くなる。デメリットは今更データベースもどきを新たに用意するのは非常にばからしい。ただ探せば世の中にRubyだけで動く求めている機能があるかもしれない。
  • MySQL/RubyをWindowsで使用する
    これは十分可能なはず。ただちょっと調べた感じではRuby1.8.1で動作するMySQL/Rubyを発見できず、どうもMySQLのクライアントを自分でコンパイルする必要がありそう。もしかしたら簡単に解決する方法があるかもしれないが。デメリットは環境構築にMySQLが必要になってしまうこと。
  • 当初の予定通りサーバ側は運用も開発もLinuxのみでゆく
    もしかしたらこれが結局一番いいのかもしれない。もっとも一般的か。急がば回れ。だだしゲームのいちプレイヤーからすると開発参加への敷居が高い。その反面優秀な人材が協力してくれるようになるのだろうか。
    ショーンさんどう思います?
  • 2004-03-08

    [コンセプト]MySQL非依存

    これまでMySQLを使うことを前提にシステムを考えてきた。すでに公開しているユーザー登録システムもMySQLを使用している。しかしオープンソース化を考えているうちに、極力多くのシステムに依存しないほうがいい気がしてきた。例えばMySQLを使用すると最低限動作させるのにMySQLが動く環境をを用意してそれからMySQL/Rubyを用意しなければならない。これだけでも敷居が高くなってしまう。Windowsでも動作させたいからやはりシンプルな環境で動くというのは理想的だ。

    2004-03-08

    [tDiary]CSS変更プラグイン

    訪問者が自由にCSSを変更できるプラグインを開発。外部に置いてあるCSSのURLを入力れすばよい。これさえあらばアクセス元から場合分けしてどうこうするよりも幅広く対応できる。

    2004-03-07

    [プログラム]C言語入門

    C言語は新C言語入門 シニア編これで勉強した。10年ほど前の話。当時C言語に関する他の本も何冊か持っていたが役に立ったのはこの本一冊だったと思う。新C言語入門 ビギナー編というのもあるがこちらは易しすぎてあまり参考にならなかった気がする。

    2004-03-07

    Bオフライン第一回大会

    昨日Bオフライン第一回本戦が開催された。試合会場は渋谷、参加者は男6人女1の計7人。オンラインの本戦優勝者を初めとする屈指のバスケリストが集合。ファンサイトのオーナー2人やキャラデザインのイカラシ氏も参加した。会場ではゲームマスターのチーム名も公開され参加者を驚かせた。

    高度な戦略の話からくだらない裏話までBOLにまつわる話題が語られた。考えると6時間近くもひとつのお店で騒いでいたのだが、それでも個々のBOLに対する思いを語りつくすには時間が足りなかった。終盤はもうよく覚えていないのだが、先生からの限定グッズプレゼントなどもあって非常に盛り上がっていた模様。ともあれまたやりたい。

    2004-03-05

    [アイデア]Put2dスクリプトをeRubyで書く

    要考察。eRubyほかにも可能性を秘めているだろう。

    2004-03-05

    [tDiary]ハッキング

    最近tDiaryにはまっている。ソースを眺めたり書き換えたりしてハックしているのである。プラグインで何ができるのかを知りたくてハックしだしたら面白くて熱中してしまった。そのうちこういうプラグインが作りたいとうアイデアもどんどん沸いてきた。そうなると次にプラグインを書きたい衝動に駆られる。この衝動は非常に重要である。筆者は長い間コンシュマーゲーム開発という閉じた世界にいたせいかネット上を徘徊して人の書いたソースをハッキングするようなこともなかったし、自分の書いたソースを公開したこともない。しかしオープンソースの世界ではこの衝動が非常に大きな意味を持っているのだろう。しばしハッキングに熱中してオープンソースを肌で感じてみたい。この経験は今後のdGamesに大いに役立つことだろう。

    2004-03-03

    [tDiary][hide_theme]テスト開始

    tDiaryのプラグインhide_themeを開発中。基本部分はできた。しばらくテストした後公開したい。

    2004-03-02

    [tDiary]hide_theme.rb

    特定の場所からのアクセス時に別のスタイルシートを用いる。ヘッダとフッタの中身を隠すこともできる。他人には派手で個性的なページに見せたいが、編集するときは目立たずこっそりと…そんな人向けです。 使い方(書きかけ)
     〜に〜を追加
     <%=hide_begin>と<%=hide_end>が<!--と-->に置換されるのでその間を消える
    2004-03-01

    [tDiary]ダブルスタイル

    tDiaryのプラグインを思いついた。特定の場所からアクセスされた場合に別に用意したスタイルシートを適用するというもの。ヘッダーとフッターが非表示になってもいい。この機能と地味なスタイルシート併用するとtDiaryがもっと使いやするなるに違いない。似たような機能がないようならプラグイン作成の練習もかねて作ってみよう。