2007年9月26日水曜日

NO.2110 プログラミング3週目

僕はこのサイトでディスガイア日記を書いているのですが
コンテスト期間が始まったというのに
作成したいスクリプトの構想はだいたい固まっているというのに
スクリプトも書かず、サイトのネタ探しも含めて
ゲーム(ディスガイア)ばっかしていました
(本の感想を書くのは大変だし
 聞いている曲の感想を書くのは難しいので
 僕の場合、更新内容として、ゲーム日記を書くのが一番楽なのです)
ところが先日、PS2のメモリーカードの空き容量が足りなくなってきたので
昔買って一度も使用していない、PS2のバックアップ用USBで
使わないデータをバックアップしてたんですよ
ところが、途中までサクサクバックアップできるのに
ファントムブレイブのデータがバックアップできない!
データの(バックアップ用USBへの)移動ができなくて
コピー(バックアップ用USBへ)したらできた
で、コピー元のデータを削除したら、画面がフリーズ
電源オーフ!
そしたら・・・
メモリーカードのデータが全部破損データになりました
なんと!PLAY時間80時間のディスガイアのデータが破損データへ!
PLAY時間18時間のファントム・キングダムのデータも破損データへ!
りすとはPS2のメモリーカードは2枚で使い回しているのですが
PLAY時間75時間のファントムブレイブのデータが助かったのが
不幸中の幸い
SFCを卒業して
(まだ卒業してないけどw 聖戦の系譜とか バハムートラグーンとか)
PLAY STATIONをやるようになってからデータ消失とは無縁の生活を送っていたはず
昔はドラクエ4を最後のダンジョンまで行って、データが消えたり
FF4がSFCの故障でぶっこわれたり、したり
(壊れたので同級生にあげたら、データがよく消える。と
 イヤミを言われたりしたものです)
したけど、ずーっと、データが消えた記憶はない
あーあ PLAY時間80時間のデータが消えるなんて
レベル的にはクリアできたのにさ
早くクリアしないからこういうことになるのだろうか?
今は、また最初から初めて楽しめるからいいかな。とも思うけどさ

と、言うわけで
これは、(せめて)コンテスト期間中はスクリプト作成に集中しなさい。と
言うことかなぁ。と、思いつつ毎日のように、スクリプトを書いています
(こんなにスクリプト書くのいつ以来だろう?)
前回、日記に書いたToDoリストは
ToDoリスト兼フローチャートの作成と
長くなってしまったスクリプトのモジュールでの分割と
現在の目標は戦闘の処理
の3つなんですが
現在、やっていることは、長くなってしまったスクリプトのモジュールでの分割。です
今は3.1でスクリプトを書いているのですが
モジュールで分割している最中に
モジュール内のラベルにジャンプできないというバグを発見
(gotoは使わないけど、gosubでジャンプしたかった)
gosubを#deffuncで書く必要があるみたいです
gosubだと定義より上でも呼び出せるので
僕は#deffuncよりgosubをよく使うのですが
gosubを使えないとなると、定義の順序を考える必要があって
そこを調整するのがめんどくさそう
だいたいモジュールに分割したんだけど
モジュール内のラベルにジャンプできないというバグを一昨日発見して
開発メーリングリストの中で報告
これからgosubを#deffuncに書き換えるところです
というわけでモジュール分割にとまどって
戦闘の処理もまだ書いていない
ToDoリスト兼フローチャートの作成も先々週の火曜日に書くはずだったのに
まだ、書いていない
いまいち、やるべきことが具体的でない
ま、構想は2年くらいだし、作りかけのスクリプトもあったし
スクリプト書きの練習としてPROJECTすぅぃったという企画で
小さいゲームも作ったことだし
スクリプト作成の見通しは立っている
フローチャートは書かなくてもスクリプトは完成しそうです

現在のスクリプトの行数約2600行
進行のパーセンテージ20%

というわけでToDoリスト
モジュール分割を終了させる
gosubを#deffuncに書き換える
gosubが#deffuncになってもきちんと動くような順序に並べる
モジュール分割の完成を確かめるデバッグ
シナリオIDの文字列に区切り文字”|”を導入して効率的に分岐する
シナリオID、簡単な変数への入力、簡単な計算をログ出力させる
そろそろ、シナリオを書き始める
敵キャラ、味方キャラ、NPCの絵を書く
戦闘の処理を書く
戦闘の処理と本スクリプトを結びつける
スキルレベルアップの処理の実処理を書く

こんなにToDoリストがたまっているのに
コンテスト期間は約3分の1経過しましたね
はてさて期限内に完成するのでしょうか?

2007年9月11日火曜日

NO.2109 プログラミング1週目

先日、ブレイブストーリーも読破し
先週からHSPプログラミングコンテストに向け
少しづつプログラミングをしています

プログラミングしている作品は
連打!RPG、MP溜めゲームです
連打!RPGなのは、回復とか攻撃とか、コマンドを選択していると
よくコマンドミスするからです
本当は、普通のRPGみたいな戦闘システムを作れればいいんですけど
りすとの力量というより根気では
スムーズな戦闘システムを作れないことが予想されるので
戦闘はワンクリックで終わり!そして連打!連打!連打!なのです
時間待ちのないFFアドベンチャーみたいのを予想しなされ

システムのもうひとつの特徴のMP溜めシステムは
MPを溜めれば溜めるほど、攻略が有利になるシステムです
MPは雑魚敵との戦闘で溜め
強い敵との戦闘で大量に消費するシステムです
MP溜めるぞ!溜めるぞ!溜めるぞーーー!!!なのです

そして今までやってきたことは
実はかなり前にポツポツと2.61で作成していたスクリプトの
3.1への移植です
軸になるスクリプトはソースまま公開しようと思っていたので
2.61で作成していました
それを3.1に移植しようと思ったのは、BIGNUMの存在です
BIGNUMを使用するほど、激しくMPを溜めるゲームにしたる!と意気込んでいます
完成して余力があれば、BIGNUMを使用しなくていい程度に制限した
スクリプトを作成しようとも思っています

2.61から3.1への移植は案外、簡単でした
mrefとstrlenが関数になっていたこと
それと仕様の変更で、配列を2次元から1次元に直したところの
修正のし忘れくらいかな。HSPに怒られたのは

それと今やった部分は移植だけなんだけど
新しい処理は加えていなくて
新しい処理の追加ってエネルギー食うんですよね
まだ新しい処理の追加はしていないので
ちゃんと新しい処理を考えて記述できるか、少し心配です

明日はバイトが休みなので(歯医者あるけど)
ToDoリスト兼フローチャートでも作成しようかな
ToDoリスト兼フローチャートがあると
何を記述するべきか、考えなくてよくて
空いた時間に、仕事みたいに淡々と記述できるんですよね
それを書かないと休みの日くらいしかプログラミングできないですよね

現在の目標は戦闘の処理と、長くなってしまったスクリプトの
モジュールでの分割が目標です
さてさて、HSPコンテストの締め切りまでに
プログラムが完成するか否か、今からドキドキですね

2007年9月9日日曜日

NO.2108 ブレイブストーリー

最近、僕、wikiに書き込んでいないでしょ
それどころか自分のサイトもたいして更新してないでしょ
まあ、更新は前からたいしてしていなかったけど
日記もブログもたいして更新してないでしょ

理由はこの本です
宮部みゆき作:ブレイブストーリーにめちゃはまっていました
上下刊合わせて1300ページくらいある
りすとは、日記やブログを書く時間をこの本を読む時間にあてていた気がします
それが、先日、ようやく読み終わりました

なんかの広告でこの本を知って
ずっと読みたかったんだけど
ハードカバーだから高いんだろうなぁと思いつつ
文庫版も出てた頃に、図書館へ行くと
予約が30何人待ちという状況で
どうせ2週間でなんて読めっこないんだから
予約しなくても借りられるまで待っていようと思い
映画版を借りて観て
原作も読みたくなりつつ
wikiに書いてた企画がボロクソに中傷され
wikiに書きたい気持ちがガクンと下降した頃
その頃、この本を借りました

♪君はミツルで僕はワタル
♪共に運命の塔を目指せども
♪願いを叶えるのはどちらか一人~
そんなかんじで読んでいました

ネタバレになるかもしれないけれど
見事、運命の塔にたどり着いたワタルは
たった一つしか叶えられない願いで
ビジョンを救う選択をします
願いごとを一つ叶えてもらっても
ワタルの運命を叶えたいたびに
女神様に運命を叶えてもらうわけにはいきません。という台詞が印象的でした
(その台詞はうるおぼえですけど)
そうですよね。人は皆、運命を変えたいことはあるかもしれないけれど
そして、その運命は変えられるとしても
そうだとしたら何度も運命を変えなければなりません
だから、人は皆、変えられない運命と共に
自分で局面を切り開いていかなければならないのです
だって一つ願いを叶えてくれるドラゴンボールだって
悟空たちは何度も願いを叶えているでしょ

さて、前々から読みたかったブレイブストーリーも読破したことだし
プログラミングだーーー!!!
(もしくはサイトの更新だーーー!!!)
実はりすとは前々から作りたいプログラムがあって
それを完成させて、コンテストに応募したかったんだけど
他のことに気をとられているうちに応募期間が終わってたりして
なかなか本腰を入れてプログラミングできなかったんですよ
今回こそは完成させて応募したいです