ラベル 復讐 の投稿を表示しています。 すべての投稿を表示
ラベル 復讐 の投稿を表示しています。 すべての投稿を表示

2009/03/10

今日のクロックアップ

・シューティング作成

・スクリプトいじり

第2回3時間コンテストということで、「アイテムをとってゲームスピードを上げて、早くクリアすることで得点を荒稼ぎ」というコンセプトの横STGを作ってみた。しかし、まともなシューティングの土台を作るのに1.5時間以上かかって、まともにゲームとして成立しなかった。コンセプト的にもあまり自分の趣味に合わないのでお蔵入り。ランクを能動的に調整できて、それに毛が生えたという程度。

復讐のスクリプトをいじっていた。だいぶいい実装が出来そうになったのだが、最後の壁として型情報が立ちはだかって詰んだ。型の情報を保存する型、というものでもあればよかったのだが見つからない。sizeofやstringofプロパティが取れるのに、型は型ではないというのは、型とはいったい何なのか。Phobosで型情報を触っているモジュールがあり、それを参考にして、テンプレートとaliasとを組み合わせて乗り越えられるか、と思ったが越えられず。stringofプロパティを利用してコンパイル時にコードを生成する、というようなことも考えたのだが、ややこしかったのでやめた。

それで結局妥協して、関数を呼び出すためのラップ関数を一つずつ作って、それへのデリゲートを連想配列に格納する、という方法での実装にした。ラップ関数を作った労力のリターンとして、関数を呼び出すときに引数をどうするのかを意識せずとも使えるようになったので、これで妥協。その実装の進行具合は、構文解析のあたりで機嫌が悪くなっていて、ごく単純な命令しか実行できないという状況。

2009/03/09

今日の下絵

・絵
特に何かやったと言うわけでもないが、ドット絵の本を図書館から借りてきた。やはり下絵のデザインもちゃんとしていないと厳しい、と思ってみたり。

ゲームの画面サイズは小さいと情報量が減って不快だと思ったので復讐の画面サイズをやはり640*480にしようかと思い始めている

2009/03/07

今日の混迷

・スクリプト

・XNA

テンプレートと可変個引数の項目を読んでみたら、昨日当たりかと思ったのは別に使えなかった。それでもう少しコードを書きながらいろいろと試してみたりもしたのだが、やはり手段がなさそう。

それで仕方なくコードを手書きしていくことにしたのだが、それがまた混迷している。さすがに一つ一つの関数ごとに愚直に書く様なことは避けたいので、引数の数ごとに関数を分類する、ということをやっている。そのときに関数の引数として任意の型の関数ポインタを渡すようにしているのだが、それをどう渡すかで詰んでいる。Phobosにもそのようなことをしているものがあって、それを参考にしてはいるのだが上手くいかない。テンプレートで何とかしたいのに上手くいかない。あんまり上手くいかなくて憂鬱。

 

XNAの本を買ってきた。飛行シューティングを作る前に物理ゲームが大量の壁として立ちはだかっていたことを思い出して、それもまた憂鬱の種。Poseidonが不機嫌なのも憂鬱の種。

2009/03/06

今日の事前

・XNAさわり
・スクリプト
XNAを触っていた。頂点としてベクトルの配列を指定してそれを描画する、というクラスを実装しようとしていたら既に存在していた。XNAは何かやろうとすると既にそれが準備されている、という感じがして変な気分。慣れれば便利なのだろうけど。

スクリプトの課題となっている、関数の呼び出しらしきものがD言語のページに書かれていることに気がついた。問題は、まだろくに使ったことのないテンプレートや可変個引数がコアに使われていて、そのコードの理解が上手く行かないこと。

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を利用してスクリプト風に使うする、という手があるそうなのだが設計が難しい。結局どうするかが決まらない状況。メイン部分とスクリプトにしたい部分をコンパイルしわけて、スクリプト部分のコードをコンパイルしてリンクするだけで動かせるようにする、という手も考えたがメリットが薄そうで微妙。結局まだ解決していない。

2009/02/18

今日のりんご

・パラボラ製作

・復讐絵

今日は主にパラボラを作っていた。とはいっても暇すぎて積分を解いている暇がなかったのでシステムを組んでいた。重力といったらりんご、ということで、物体のクラスの名称をAppleにしてみた。本当はObjectとか使いたかったのだけれど、それは全ての根本クラスの名前として使われているから使えない。

で、マウスでの操作を作っていたら上手く動かないところがあって、原因を調査したらSDLではマウスホイール上下が宣言はされているけれども、実装がされていないらしいという事実が判明。SDLのソースをざっと見たがそれらしい部分も見つからない。なので自前で実装するか、それとも他の操作方法を考えるかしないといけない。

それと、気が向いたので復讐の絵をいじっていた。主人公の正面からの絵をとりあえず描き終えて、その他キャラクターの絵を微調整。ゲーム内では使う場所がないと思っているが原画として使うので形は細かく描き込んでいる。そしてさらに暇だったので会話窓用の大きい顔グラフィックを描き始めてみた。目は練習している成果かそれなりになってきたのだが、今度は小さいサイズでは全く気にしていなかった髪が問題として立ちはだかってきた。

2009/02/16

今日の上下

・蘇生バグ修正パッチ

・会話スクリプト強化

蘇生0.62パッチ。難易度が常に『小説』になる問題を修正。デバッグ用のコードが残っていたのが原因。正式な修正版のりリースはまた明日か明後日に。

復讐の会話スクリプトを微妙に強化。蘇生で作ろうと思っていながら諦めた、行ごとの色変えを実装した。あとは主人公の横顔を紙に書いてみたり。

2009/02/13

今日の鎖

・会話機能製作中

・弾幕作成

会話機能を昨日書いてから、設計を特に考えずに書いていたということに気が付いて、設計を一度落ち着いて考えてから書き直した。それで設計段階で決めた、改ページ処理とイベントからの会話呼び出しを製作。あまり意味もないのに再帰を使って遊んでみた。

以前書き留めてあった弾幕のアイデアを思い出して、それをアレンジして作った。レーザーを乱用しすぎている今日この頃。

 

復讐のToDoがもはや絵を描くぐらいしか残っていない。いまだに主人公のデザインが確定していない困った状況。

2009/02/12

今日の制御

・ピストンコラージュD言語対応
・パラボラ曲試作
・文字列描画強化
・復讐会話スクリプト試作
昨日日記を書いた後、WindowsAPIをいじったのだからピストンコラージュのDLLのインポートヘッダをD用に書くぐらい簡単ではないかと思ってやってみた。以前やってみようとしたときはLPSTRとかのWindows関係の型を見て嫌になったのだが、耐性が付いて無事に書けて実際に動かすことにも成功。

更に昨晩深夜、眠れなかったので妄想をしていたら曲のような物が浮かんできたので打ち込んでみた。頭の中にある短いフレーズを実際に鳴らすというだけで苦労したので、やはり向いていないのだと改めて思った。昔習った音楽理論もすっかり頭から抜け落ちているし。

今日の作業はここから。
物理ゲームはどうにもモチベーションが湧かないので久しぶりに復讐をいじっていた。
まずは前々から作ろうと思っていたが放置されていた文字列描画の強化。改行のある文字列を簡単に扱えるようにした。その際にフォント周りも一緒にいじっていたら、書き間違えて文字サイズが小さくなるというバグを作ってしまった。文字描画には地雷があるというような話を聞いていたせいで、バグの原因がそれにあると思い込んで大変な目にあった。
それが済んだ後本題であった会話スクリプトの実装を開始。文法を決めて、それを読み込む部分と、読み込んだ文字列をとりあえず描画する機能を作成。蘇生の文章管理の方法がかなり酷く、シナリオを書くのから遠ざかる一因にまでなっているので、その二の舞にならないように力を入れている。

D1.040がリリースされていた。MacOSXについに対応したらしいが、Macは使ったことがない。

2009/02/04

今日の輪郭

・Re:Action構想いろいろ

・絵作成

アイデアが降っては来ないが、暇があったのでどうすればバランスが取れるかを考えてみた。およびその案を実装している。その案だとシステムの車輪の片方が崩れてきて、それとフィーチャーとして考えているアクションの存在意義が薄れてきそうな見込み。その案の一部は採用して、他のアイデアが降って来るのを待つということになりそう。

それで時間を持て余したので復讐の絵を描いていた。今までは紙にはほとんど書き出さず直接ドット絵を描いていたのを、趣向を変えて紙に下絵をある程度書いたあとその輪郭をドットで打って塗るという方式に変えてみた。それで今は水のボスを描いた。主人公は横顔問題含めて絶賛放置中。横顔も紙に書き出したりすれば何とかなると楽観視している。

2009/02/02

今日の模様替え

・サイト模様替え

・Re:Action進行

・復讐絵制作

数日前に書いた、模様替えを適用。フレームを廃止して、CSSを使ったデザインにした。HTML,CSSは手書き。あまり変な事をやろうとしなければ、HTMLはあまり覚えることがなくて楽。メニューの項目を毎回コピーして書いているのだが、それを外部ファイルにまとめるようなことはできないものか。出来るのであれば教えてもらいたい。あと、地味にディレクトリの区切り文字がローカルのものと違っていて嵌った。

Re:Actionもちまちまと。壁との衝突処理で、テストとして書いた部分を直していなかった場所があったのでそれを直して、それと演算子オーバーロードの間違いを修正。画面がさびしかったので内トロコイドを使って背景を作ってみたが、背景としては主張が強すぎるのが悩み。そのまま弾幕になりそうな感じの背景。

昨日いろいろとやっていたので今日も結構絵を描いていた。主人公の横顔を書いていてどうにも上手く描けなかったので、思い切って正面からも新しく描き直して見た。しかし締まりがなくて困ったので放置した。

その代わりに、二転三転していた土属性のボスを描いた。結局虚数方向へと転んで天使だかシスターだか死神だかわからないものへと落ち着いた。それで残るは水属性のボスだけとなり、描いてみたが思ったように描けない。実際の設定と脳内設定で矛盾しているのが原因かもしれない。

2009/02/01

今日の崩し

・絵いろいろ

どうもプログラムを書く気がおきなかったので絵を描いていた。プログラムを書かなかった一日というのは何日ぶりか。JOIまであと1週間だというのに。

前から溜めてあったキャラを実際にゲーム中で使うために、横を向いた姿を描こうとしたのだが全く描き方がわからない。特に横顔にどうパーツを配置すればいいのかがかなりきつい。ゲーム中としては正面向きよりも横向きのほうが見る機会が圧倒的に多いため、まともに描けないといけないので困った問題。

描けない理由の分析。

・人間の顔は横から見ることよりも正面から見ることのほうが多い。横から見る場合よりも正面から見るほうがまじめに見ている。その結果横顔についてのデータベースが自分に不足している

・リアル以外の人間の顔も真横から描かれることが少ない。やはりこれも横顔のほうが印象が薄い。

・Z軸のない世界に生きている。そのためX-Y方向から見てばかりでZ-Y方向から見ないし、見えない。

解決策

・髪などで全部隠す。-表情が見えない。アニメーションさせるときに髪をいちいち揺らさないと不自然なので描くのに手間がかかる

・そもそも描かない。-開き直ってZ軸なしにするということ。つまりみんなペラペラ。見分けをつけにくい。

・常にカメラ目線のキャラクターたち。-キャラクターが自意識過剰になりすぎる

・常にややカメラ目線のキャラクターたち。-斜め前を向いている。微妙に描きにくい。微妙に自意識過剰。

4番目をとりあえず採用してみることにする。

 

あと、気晴らしに蘇生の5面の雑魚敵を描いて見ている。小さなサイズでそれなりに描き込む必要性があるので、デフォルメをどうするのか考えている。デフォルメは苦手なのでこれもまた難しい。

2009/01/31

今日の三角

・復讐いろいろ強化

・Re:Action再開

復讐の主にキャラクター関連の機能を強化した。それでキャラクターの向いている向きを取得したり、穴に落ちたときの処理を作ったりした。

デストラクタバグがゲーム中に発生するようになったがGCを手動制御したら起こらなくなった。起きてもそのまま例外を無視して動くようにしてみたが、弊害があるかもしれない。

 

物理ゲーム製作のモチベーションが急に上がってきたのでとりあえず手をつけられるRe:Actionの製作を再開した。それでボスとして使う予定のフラクタルを実装。適当にやったら面白くなったのでスクリーンショットもつけておく。

reaction

2009/01/30

今日の無効

・復讐バグ修正
・復讐敵管理作成
・蘇生ラスボス絵作成
このところ続いているバグと決別。デストラクタのバグは何故かゲーム中では発生せず、エディタ上での発生もGCを動かすタイミングを手動管理することで、落ちても問題のないところで発生するように管理できるようになったので、これ以上調べたところで時間の無駄と放置することにした。そう決めたとたん、GCによって、まだ使用しているメモリが開放されるという怪事件が起きたが無視。スタティックデストラクタを使えば落ちてもデータのバックアップは可能なのかもしれないし。
もう一方の敵の配置のバグは単なる書き間違いが原因だった。前々から紛らわしいとは思いつつも、変えずにおいた場所で間違えた。
バグと決別したので、ようやく本来進めている所であった敵の管理を実装できた。だいぶステージをロードするときの処理量が大きくなってきている。そのうちマルチスレッドの学習も兼ねてNow Loading表示を作ることになるかもしれない。

ソファに座りながら、平らな場所がなくてもマウスを使う方法を編み出したのでその技術を使って、暖かい部屋で寛ぎながら絵を描けるようになった。それで描いてみたのが蘇生のラスボス。描いたはいいが絵のサイズが小さいために、細かい部分がくっついて見た目が悪いのでまだまだ修正が必要。

2009/01/29

今日のGC

・復讐バグ修正中
全然取れない。大量にtry-catchを張り巡らせて、それでより調べてみたところ、デストラクタが呼び出されるときにアクセス違反が発生することを確認。そこでdelete文を全部消してGCに全て任せてみたり、GCを動かすタイミングを手動で変えてみたりと、色々と試したのだがやはり例外が発生する。OpenGLのテクスチャを開放するときに何か間違いがあるかとも思ったが、関係のない場所でも落ちる。そろそろ手詰まり感が漂ってきた。
そしてもう一つ取れないバグが、マップエディタで配置した敵の記録と読み込みでずれること。こちらは直さないと先に進めない問題なのだが、これも原因が不明。デストラクタのバグとは多分関係はない。

バグのせいというわけでもないだろうが、ここ一週間程度ずっと体調が悪い。症状的には徹夜明けのような症状なので寝不足のように感じるが、特に睡眠時間が減った自覚もなく、周りで風邪が流行っているのに自分には影響がないと、これも原因不明のバグ。