ゲーム製作日記 その1
見切り発車かもしれません。
不定期更新となりますが、よかったらお付き合いをよろしくお願いします。
プログラム歴三ヶ月(授業にて)の俺が、何を思ったか羽毛のような軽い気持ちで軽いゲームを作成してみようと思う。
使う言語はjava言語。
英語に似たような構成でかけて比較的アレルギーが少ないと思う。
ここには、闘いの記録として俺のプログラミング過程を書いていきたい。
どんな風になるか、今からかなり楽しみだ。
☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
一日目
まず、何をしたいかをはっきりさせよう。
そんな複雑なことは出来ないことは、わかりきっている。
主な流れは、
探索→戦闘→魔王遭遇→倒す→エンディング
それから、魔王を倒すまで、死んでも生き返るように。
死亡回数もちゃんと数える。
このあたりだろう。
はなから絵を入れるつもりはない。
不可能だ。
必然的に、文字だけになる。
…………面白くなるか、不安になってきた。
コマンドは、"戦う"だけでいいだろう。
コマンド選択作れる気が全くしない。
それに、俺は"戦う"を連打して全てを済ますタイプだ。
魔法?アイテム?
仲間に任せっきりだったが、なにか。
でも、全部機械任せもなんだから、スタミナを使って、威力は自分で決められるようにしよう。
それだけじゃあ面白くないから、乱数を使って、運にもよるようにしてみよう。
乱数ができれば、モンスターもランダムに出てくるようになる。
まあ、複数だすのは出来ないだろうから、一体づつで……
ちょっと待てよ、別に数字の上だけだから、複数出すのも不可能ではないかもしれない。
夢は広がるが、まずは、モンスターをランダムに選出して、戦闘が出来ることが一段階だ。
if構文と乱数をつかえば、モンスターだけでなく、宝箱を拾うことも可能だ。
……アイテムにエロ本とか入れたい。
あとは、フェアリーとか。
いや、ものじゃあないけどさ。
アイテムを使うなら、回復アイテムも入れなければ。
ステータスも戦闘に関与するように設定できれば面白くなる。
戦闘後にもアイテムを拾いたい。
アイテムは、スタミナ、ヒットポイント回復くらいだろう。
不発弾をひろった!も面白そうだ。
……いろいろ仕込みたい。
ステージも変えられたらいい。
ステージごとに出てくるモンスターを変えるまでやったら、どのくらい時間がかかるだろうか……。
何メートル以上進んだら、ステージが変わるみたいな。
ランダムにステージを決めよう。
モンスターの強さはステージの変わった回数によって変わるとか。
魔王城より、草原の方がモンスターが強いとかありえる。
あ、必殺技入れたい。
それこそ中二病バリバリのやつ。
魔王の攻撃に7回耐えられたらという発動条件で。
その分、魔王を化け物みたいなステータスにしよう。
……倒せる気がしない。
よし、死亡回数に制限をつけよう。
じゃないと、いつまでも終わらない。
モンスターナンバーを採用しよう。
で、666,444,222,888のときだけ、魔王出現。
えっと、4÷(9×9×9)×100=0.548〜%
……もっと増やそう。
あ、特別な番号で特別なモンスターが出てくるとか。
ムンムンサキュバスとか、有休(悠久)の邪神とか、絶対に勝てないようなやつ。
ユニークモンスターとしてさ。
構成としては、
モンスターナンバー作成
モンスターの数を決める。
これは魔王か?
Yesなら、魔王戦用のクラスへ。
これはユニークモンスターか?
これはいくつのナンバーのモンスターか?
それぞれのステータスを読み込み、モンスターを作成。
数列を利用し、モンスターの数がゼロになるまでモンスターを作成、できたらいいのになぁー。
それから、戦闘用クラスへ移動して、戦闘。
ステータスは、
素早さ:速いほうが攻撃出来る。
攻撃力:どれだけダメージを与えられるか。
防御力:どれだけ守れるか。
スタミナ:力配分。
速さが大きい方が攻撃可能。
一緒ならば、相打ち。
引数の要領でやれば出来る。
経験値も導入して、レベルアップごとにランダムにステータス増加とか、名前だけの技が使える様になるとか!
後者は難しそうだが、前者は多分いける。
ここまでの方針は、
1,移動メソッド
2,モンスター、魔王、ユニークモンスター作成、並びに戦闘メソッド
3,自身のステータス並びに経験値、各種回数記録メソッド
くらい。
ここまでで使うつもりのは、
乱数、スイッチ、プリントメソッド、ストレングスメソッド、キーボードスキャナ
くらいだろう。
最終目標は、普遍的にできる簡単アプリ作成!
まずは、Javaプログラム作成ソフト、Ecliposを入れねば。
……こんなことやっているが、明日は英語のテストだ。
大丈夫か、俺?
☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
二日目
長かった……。
Ecliposをダウンロードするまではよかった。
ただ、ここから、英語版を日本語版にするまでが、とてつもなく長かった。
実際、二日目どころか、何週間かかかってしまっている。
しかし、やっとスタートラインということで、今日を二日目とする。
ついでにいうと、俺の英語力は皆無だ。
文章を何となくで読むことはできるが、いかんせん単語、文法が覚えられない。
というか、記憶力が壊滅的なのだ。
……正直、一週間前の出来事すら危うい。
高校までのクラスメートの10%くらいしか、名前を覚えていない。
(しかも、だいたいが名前だけとか。)
と、いうことで、日本語版にできなければまず始められないのだ。
今日もググりまくって、試行錯誤し、頭をかきむしること2時間。
ようやく、日本語版になった。
思わず、ガッツポーズでよっしゃー!と一人叫んでしまった。
……叫んだ後のむなしさは、どうしようもない。
それから、教科書を見ながら初期設定。
念のため、”Hello world”を作成して、ちゃんと起動するか確かめる。
よし、準備完了。
俺たちのたたかいはこれからだ!
〜Fin〜
いやいや、まだスタート地点だから。
とりあえず、勇者(笑)が移動するメソッドを作ってしまおう。
…………メソッド作りづらい。
移動に座標を使わないから、扱いにくい。
いっそのこと、メインメソッドだけで作ってみっか。
えっと、まず乱数をつかって移動距離を決めて、それからそのステージをわたりきるのにかかる道のりも同じ用に決める。
んで、引いていって、これがゼロ以下になるまで繰り返させる……っと。
さあ、実行、実行っと……。
ん?
う ご か な い
これはどういうことだ。
うんともすんともいわない。
どこが間違えた?
……あ、繰り返しの条件間違えた。
そして、再試行。
よっしゃあ、うまくいった!
「おじいさん、ク○ラが、クラ○が立った!」
気分的にはこんな感じです。
ひとりでテンション上がってもしょうがない。
まあ、とにかくどんどんいっちまおうぜ!
ただいま AM1:27 。
あしたも1限目があるはずだが、もう誰も、俺を止められないぜ!
〜現在状況〜
勇者は始まりの地を35M 移動した。
モンスターが現れた!
勇者は始まりの地を21M 移動した。
モンスターが現れた!
勇者は始まりの地を36M 移動した。
モンスターが現れた!
勇者は始まりの地を通過した。
このステージを通過するのにかかった移動距離87M
勇者は名もなき原っぱに突入した。
用語解説。
※主人公も作者もプログラミングに関してド初心者です。
ですので、これらの用語は、あくまで主人公の認識となります。
決して正確ではありません。
こんなもんかなぁという感じでゆる〜く読んでくださるとありがたいです。
☆プログラム構成☆
1.フィールド こんな数を使うと宣言するところ。 どんな数を使うかによって修飾子(文字ですよとか数字ですよと修飾する)が変わる。 認識としては数学でいうxやyってところかな?
2.メソッド プログラムの命令文の集合。
3.メインメソッド 略してメイン。 ここにメソッドや命令を入れることにより、プログラムが動くようになる。 実際にプログラム組み立てて動かす部分でいいかな?
途中に出てくる乱数やスイッチはもうすでにソフトの中に出来上がっているもので、そのままつかうことができるメソッドです。