2009/03/05

今日の入力

・飛行ゲーム考察
昨日から考えている飛行ゲームの入力について考えていた。少なくとも上下左右の舵と、加減速のキー、それと攻撃をするためのキーが最低限必要で、それをやるには普通の2Dシューティングのキー配置では出来ない。かといってアルファベットのキーに色々役割を振り当てるのは自分の好みではなく、テンキーを使うことも考えたが、ノートPCにはテンキーがないことがほとんどなのでそれも出来ない。残る手段としてマウスがあるのだが直感的に分かりやすい操作体系がなかなか浮かばない。ジョイパッドを使えばいいのだろうがジョイパッドが好きではない。Wiiリモコンなんかは舵の操作にかなりよさそうだがそれだと遊べる環境がほとんどない。
やはり、全ての軸に自由な3Dゲームを作ろうと思うとどうしても入力の面で壁にぶつかる。分かりやすい3D用入力装置が普及すればPCゲームの世界は大きく広がるのではないか、といつも思う。

2009/03/04

今日の束縛

・スクリプト
・作りたいもの
スクリプトを作るうえで、ホスト側のプログラムの関数をどう呼び出すかが一番の課題となっていて、それについて考えていた。昨日書いた、関数ポインタを連想配列を使って選択するというのは悪くないと思っているのだが、それにどうやって引数を渡すのかが問題になっている。Phobosにbindというモジュールがあって、それとタプルを組み合わせれば上手く行きそうだと思って試してみたのだが、bindモジュールにバグがあるそうで使えない。タプルを上手く使えばbindなしでいけないか、と解決法を模索しているところ。
上手く行かなくても、関数ポインタの型ごとに関数呼び出しをラッピングする関数を一つ一つ作っていけば、難しく考えなくても済むし、実用的にも現在想定している範囲内において問題は発生しないのだが、それは美しさ的に納得できないので行き詰るまでは粘ってみる。

小説を読んでいて飛行機にあこがれたので、この頃無性に作りたくなっている横スクロールSTGと組み合わせて妄想してみたり。発想して、すぐに作れる時間が無いことは不幸。

2009/03/03

今日の危険

・絵
・スクリプト関数呼び出し作成開始
大量の裏紙が提供されたので紙を贅沢に使って色々な絵を試していた。主に目の表現。その成果で目に感情をこめることが少しずつ出来るようになってきた。しかし相変わらずネックとなるのは髪の毛。

スクリプトについては今日はほとんど考えていなかったのだが、プログラミングがしたかったので、とりあえず考えてる実装が可能であるかの実験を行った。関数のポインタをBox型の、スクリプトでの関数の名前の文字列をキーとする連想配列に登録。Boxから直接関数ポインタ型へのunboxが出来なかったので、一旦voidポインタとして取り出してそれをキャストして関数を呼び出す。この手法でスクリプト上から引数1つでのwritefln関数の呼び出しに成功した。

昨晩よさそうな短編小説のネタを思いついたのだが、そのネタを生かす枠組みをどう構築するかがなかなか浮かばないので保留。そのうち書く。

2009/03/02

今日のトップダウン

・スクリプト設計

・復讐キャラ設定妄想

関数を実装する前に、ちゃんと言語の設計と実行の仕方は決めておくべきだと思って細かい設計を考えていた。大体のことは決まったが、まだはっきりしない場所が残っているので完全に固まるまでは実装しないつもり。

あとは復讐の主要キャラの設定をいろいろと妄想。ご都合主義的な流れになる気配が少なからずあるが、ご都合主義となることの正当な理由をゲーム中に盛り込めば許される、と思う。もしくはストーリーの時間的広がりを大きく拡張して、天文学的な確率が当たるようにするとか。

2009/03/01

今日の括弧

・トップ絵更新

・スクリプト構文解析

先日まで描いていた絵を日記の2000Hit記念と言う名目にして公開。復讐では全主要キャラにあんな感じの立ち絵が付くかもしれない、付かないかもしれない。

スクリプトの構文解析を作った。ソースを一つ一つの式にツリー構造を持たせて分解。次にやるべきは、式の解釈と制御構文の実装。

2009/02/28

今日の自前

・スクリプト構想

スクリプトのことを考えていたら、自前で新しいスクリプトエンジン実装する、という虚数解が導かれてきた。せっかくD言語というマイナー言語を使っているのだから、「ないものは作るしかない」の精神で自作。どういう言語にするか考えて、作りやすそうなLispのような設計にすることに暫定決定。Gimpのスクリプトをいじっていてだいぶ慣れてきたことが影響している。現在の進行状況はファイルを開いてコメント行を処理する機能を作ったところ。

ここ2日間、夢に弾幕が出るようになってきている。たまたま夢に出てきたので記録することもろくに出来ずにほとんど忘れてしまって、覚えているのが弾源が画面端を回りながら弾を撃ってきているという光景だけ。今晩見たら今度こそ記録する。

今日の分離

・絵

・スクリプト調べ

先日からの絵の仕上げ。気になる部分にアンチエイリアスをかけて完成。明日にでも公開予定。

復讐に使うスクリプトについて考えていた。Pythonは既存のものは古くて使えず、自前で作るのもC言語版ヘッダを見た限りでは難しそう。Luaは、新しいはドキュメントがややこしいサンプルコード一本でわからず、古いものは自前でいじる必要がありそう。あと、Luaに馴染めない。D言語をDLLを利用してスクリプト風に使うする、という手があるそうなのだが設計が難しい。結局どうするかが決まらない状況。メイン部分とスクリプトにしたい部分をコンパイルしわけて、スクリプト部分のコードをコンパイルしてリンクするだけで動かせるようにする、という手も考えたがメリットが薄そうで微妙。結局まだ解決していない。