日記

7月 1日 (金)

1. 吉里吉里

いろいろ晒してみました。内容の正しさについては保証できませんけどね。

2. スタイル

スタイルシートをちょっとだけ変更してみました。

7月 2日 (土)

1. 次世代脱衣麻雀

だーくぱれすにて、おまたせ!雀バラや♪という素敵な麻雀ゲームが紹介されています。何がどう素敵なのかは、

を読んでいただければわかります。リーチが存在しない、門前ツモであがるとフリテンになる、フリテンしまくると勝てる、等々、独自のローカルルールを採用しているようです。麻雀の常識を覆す、画期的な仕様ですね。

7月 3日 (日)

1. サイケ?

ゆめにっきをクリアしました。現実と夢の中を往復するゲームですが、非常にコメントしづらいです。何というか、こう、暗鬱とした気分になります。

7月 7日 (木)

1. 買い物

七夕ですが、アルテアとベガの密会には興味ありません。アキバです。

OSたんファンブックとか、みんな大好き塊魂などを買ってきました。「OSたん〜」は、店で手にとってからレジに持って行く時に、ものすごい勇気が要りました。これだけで一日分の勇気を使い果たした感じでした(←キャパシティ少なすぎるんちゃうか?)

新しいデジカメも欲しかったのですが、今使っているもので特に不自由しているわけでもないので、今回は見送りました。

7月 9日 (土)

1. 塊魂

クリアしました。巻き込むって、楽しいですねえ。

2. THE お姉チャンプルゥ

買ってません。買った人のレビューを見ると、前作と内容が同じらしいですね。単に、プレイヤーキャラが追加されただけとか。買わなくてよかったかも。

7月 12日 (火)

1. 散財

デジカメとかRaidersSphereSecondとか、その他諸々を買ってきました。

最近のデジカメって、ちゃんと光学ズームがあるんですね。私が持ってる古いやつにはありませんでしたよ。ズームと言えばデジタルズーム(2倍)だけで、しかもほとんど実用にならないものでした。まあ、6年前の製品ですけどね。

7月 14日 (木)

1. TJS2 Engine

TJS2エンジンのDLLをDLL Export Viewerで覗いてみると、重複してエクスポートされているものがいくつもあることがわかりました。エクスポートする関数を実装するときに、プロトタイプ宣言をせずにextern "C" TYPE __declspec(dllexport) __stdcallで定義すると、ダブって登録されてしまうようです。bcc32.exe。なんでだろう。

2. KAG

リストマネージャを作り始めました。KAGには物理レベルのタグが多いため、どうしてもスクリプトが物理レベルでの記述になってしまいます。いい例がリスト(箇条書き)で、KAGでは改行で表現するしかありません。これをHTMLのOL/UL〜LIと似たような考え方で表現できないか、ということで、プラグインとして鋭意作成中。

7月 15日 (金)

1. アキバ

先日買い忘れたSDカードを買ってきました。あと、某店で105円(税込み)で叩き売りにされていたVantage Master V2を確保しました。Windows 95用のゲームなんですが、はたしてWindows 2000で動くのでしょうか。

7月 16日 (土)

1. KAG

リストマネージャはとりあえずこんなもんかな、ということでリリース。ドキュメントを書くのが結構大変です。

あと、もやもやと頭の中で渦巻いている、フレックスダイアログ計画。単純なYes/No+メッセージだけでなく、もっとフレキシブルで、アグレッシブで、ダイナミックなダイアログ…って、何だかよくわかりません。

7月 20日 (水)

1. KAG FlexDialog

あまりフレキシブルでないFlexDialogを作成中です。

禁則処理機能を組み込んだので、メッセージテキストがそれなりに綺麗に表示されます。分離禁止文字列に対する処理も組み込まれているため、'0x8080FF'や'-\12,345,678'などは、行末でも切れずに表示されます(追い出し処理)。

今のところ、以下の機能があります。

  • テキスト(ダイアログとボタン)の文字揃え
  • ダイアログウィンドウの背景画像指定
  • ダイアログウィンドウサイズ変更&自動調整
  • ボタンのサイズ変更&自動調整
  • ボタンの数を変更
  • ボタンの自動整列(横方向だけ)
  • 半透明ボタン表示
  • グラフィカルボタンでもラベル文字列を追加表示
  • その他、無駄に充実

ボタンはKAGのButtonLayerを継承したもので、一応上位互換にはなっているはずです。

これ以外に実装しておきたい機能としては、

  • グラフィカルボタン:キーボードフォーカス時のパターンに対応
  • 禁則処理:ぶら下げ処理対応

あたりでしょうか。当初予定していた縦書きダイアログは見送ります。追い込み禁則処理は面倒くさそうなのでやりたくないです。文字間隔変更がちょっと嫌クサ…

7月 21日 (木)

1. KAG3 Lex

ふと思い立って、KAG3のレキシカルアナライザを作りました。明日からパーサに取りかかる予定ですが、予定は未定です。

7月 23日 (土)

1. 地震

揺れましたねー。幸い、本棚も機器棚も倒れず、上から何も落ちてきませんでした。うちの免震(?)棚は意外と丈夫ですね。

都心の交通機関は軒並み麻痺していたようです。震度4で麻痺ですか…

7月 24日 (日)

1. KAG3

リストマネージャ。sprintf()のフォーマットを使えば、プレフィックス指定もサフィックス指定も要りませんね。しかも、もっと柔軟な表現が可能になります。なに今頃気づいてるんだ、ばかばかばか。

そんなわけで、機能拡張しました。上位互換にはなっているはず。

7月 25日 (月)

1. KAG3

パーサ。人や文献によってはパーザ(濁る)となってますが、語学上はどちらでも良いです。

知っているようで知らない、KAG3の文法を整理してみます。以下、かなり適当です。とりあえず表記法のみ。正しいかどうかは知らん。

KAG3Script     = *KAG3Line
KAG3Line       = EmptyLine
               | CommentLine
               | iscript
               | endscript
               | LabelLine
               | CommandLine
               | TagMixedLine

EmptyLine      = CRLF

CommentLine    = ";" *WCHAR CRLF

iscript        = "@iscript" | "[iscript]"

endscript      = "@endscript" | "[endscript]"

LabelLine      = "*" LabelName [ "|" [ LabelTitle ] ] CRLF
LabelName      = IDENT
LabelTitle     = 1*( PRINTABLE )

CommandLine    = "@" TagName *( WS AttrName "=" AttrValue ) WS CRLF
TagName        = IDENT
AttrName       = IDENT
AttrValue      = ( <"> *( ( "`" <"> ) | < <">を除くPRINTABLE> ) <"> )
               | ( "'" *( ( "`" "'" ) | < "'"を除くPRINTABLE> ) "'" )
               | ( < <">と"'"とSPを除くPRINTABLE> *<SPを除くPRINTABLE> )

TagMixedLine   = 1*( PlainText | Tag ) CRLF
PlainText      = 1*( ( "[" "[" ) | <"["を除くPRINTABLE> )
Tag            = "[" TagName *( WS AttrName "=" AttrValue ) WS "]"

IDENT          = LOJLETTERF *( LOJLETTER )  ; 識別子
PRINTABLE      = ( LETTER | WCHAR )         ; 表示できるもの全て

LOJLETTERF     = ( LOALPHA | "_" | WCHAR )  ; 英小文字、アンスコ、JIS
LOJLETTER      = ( LOJLETTERF | DIGIT )     ; 数字含む
JLETTER        = ( LOJLETTER | UPALPHA )    ; 英大文字含む

CRLF           = CR LF
WS             = 1*( SP | HT )

CHAR           = <すべての文字 (8 ビットバイト 0 - 127>
UPALPHA        = <すべての US-ASCII 大文字 "A".."Z">
LOALPHA        = <すべての US-ASCII 小文字 "a".."z">
ALPHA          = UPALPHA | LOALPHA
DIGIT          = <すべての US-ASCII 数字 "0".."9">
WCHAR          = <JIS X 0208(?) で規定される全ての2オクテット printable 文字>
CTL            = <すべての US-ASCII 制御文字
                 (8 ビットバイト 0 - 31) と DEL (127)>
LETTER         = <CTLを除くすべてのCHAR>
CR             = <US-ASCII CR, キャリッジリターン (13)>
LF             = <US-ASCII LF, ラインフィード (10)>
SP             = <US-ASCII SP, スペース (32)>
HT             = <US-ASCII HT, 水平タブ (9)>
<">            = <US-ASCII ダブルクォート記号 (34)>

もっと綺麗にまとめたいところ。

7月 29日 (金)

1. 夏風邪

風邪気味です。のどが痛くて頭も痛い。夏バテでしょうか?

7月 30日 (土)

1. 夏風邪

風邪です。確定です。頭痛い。

2. 地球防衛軍2

届いたので、早速プレイしました。プレイヤーは当然(?)、今作の目玉(?)であるペイルウィングです。アーマードコアで言うところの、「エネルギー系軽量二脚」ですね。

一日中やって、EASYのみクリアしました。長い…長すぎるよこのゲーム。

7月 31日 (日)

1. 吉里吉里

今年中には本体の2.26stableが出るだろう、と勝手に想像しながら、2.26系用の作業をしました。2.25〜2.26系の目玉機能である(と、勝手に思っている)「プラグインでネイティブクラス」を楽に使える機構を整えたり、Subversionのブランチを作ったり、いろいろ。

2.26系用でやりたいのは、SQLiteインターフェースの作り直し(ネイティブクラスに差し替え)と、ソケットクラスの実装です。ソケットについては、以前途中まで作って放置してある(というか忘れてた)ものを使うか、ソケットプログラミングの勉強も兼ねて一から作るか、二択になりそうです。Windows環境限定ということでWinsock2を使います。非同期モードの勉強しないとなー。

2. 地球防衛軍2

これまでプレイしていて気づいた、前作との違い。

  • アイテムが万有引力の法則に従う(ちゃんと落下する)ため、回収しやすくなった。
  • 起きあがり後の無敵時間が極端に短いため、無敵時間を利用した自爆技は使えない。
  • 敵の死骸、残骸に当たり判定があるため、通行の邪魔、攻撃の邪魔。
  • アーマーの増加量が非常に小さい。陸戦兵が1.5、ペイルウィングが1.0かな?
  • ステージ当たりの敵の数が多め。マップも広め。
  • ステージ数が大幅に増えた。ていうか、増えすぎ。確認したものだけでも71ステージ。
  • 地底マップ、夜景マップ追加。
  • 渓谷にあるトンネルに入れない。
  • ペイルウィングでアーマードコアごっこ。

こうしてみると、プレイヤーが不利になる変更が多いのがわかります。「起きあがり自爆」は、私はあまり使わないのでさほど影響はありませんが、「死骸の当たり判定」は勘弁して欲しいです。歩行の邪魔になるわ、こちらの攻撃は遮られるわ。もしかしたら、盾代わりに使える…のか?

敵の数もかなり多い上に、こちらのアーマーがあまり増えないため、体力に任せて押し切ることもできません。また、地底マップは夜景マップは暗くて視界が悪いため、それだけで(理不尽に)難易度が上がります。

要するに、前作よりも難しいということです。