1976年生まれのプログラミング初心者のゲーム制作日記

ひょんなことからJavaでゲームを作ることになり、その過程を記しています。

テキストアドベンチャーゲーム完成

 

Javaの勉強を始めたのが今年(2015年)の3月初め。

そしてほぼ1ヶ月後となる4月の初めにコマンドプロンプトで動くテキストアドベンチャーゲーム「Raindia」が完成しました。

f:id:ryisnow:20150619125222j:plain

(タイトル画面)

 

 

f:id:ryisnow:20150619125336j:plain

f:id:ryisnow:20150619125359j:plain

f:id:ryisnow:20150619125426j:plain

(最初の衛兵との会話。町に入れてもらうためにクエストを受けるという形に)

 

 

主人公は難民で、町に入ろうとするが門番に条件として賊の討伐を依頼される…というストーリー。


その場その場で思いつきで書いていったらなんかそんな話になった、という感じですが。当時戦争や難民関連の本を読んでいたので、その影響がそのまま出てます。

 

<主に使ったプログラミング技術>
・「String」、「If」構文、「Scanner」で選択肢やアイテムのあるなし、クエストのオン/オフを管理。
・「int」という整数を管理する器を使って所持している金貨の枚数を収納。
java.util.Random() でランダムな数値を算出(ダイス代わり)

f:id:ryisnow:20150619130627j:plain

(金貨を手に入れると、所持している枚数が変化する)

 

f:id:ryisnow:20150619125528j:plain

ゲームブックには定番の十字路)

 

f:id:ryisnow:20150619143143j:plain

f:id:ryisnow:20150619142948j:plain

f:id:ryisnow:20150619143212j:plain


賊を討伐して戻ってくるとクリア。
30分もあれば終わるのですが、テキスト選択肢だけと考えていたのに、やっている内にいろいろなことができることがわかってきて、アイテムを追加したりHPや攻撃力の要素を入れたりと、当初考えていたものよりシステム的に凝ったものになりました。


f:id:ryisnow:20150619143428j:plain

f:id:ryisnow:20150619143349j:plain

(賊との対面)

 

戦闘シーンも作りました。

f:id:ryisnow:20150619143500j:plain

f:id:ryisnow:20150619143558j:plain


「int」でHPを管理し、「java.util.Random()」という、ランダムな数字をはじき出す機能を使ってダメージを算出しています(ゲームブックにおけるダイスのようなものですね)。

自分の知識で戦闘が作れるとは思ってなかったので、ちょっと発想を変えれば少ない知識でもいろいろできるのだなあと思いました。

さらに「キャンプ」をすることで装備の変更や休息もできるように。

f:id:ryisnow:20150619143718j:plain

ウィザードリィが好きなので、やはりステータス画面と言えば「キャンプ」。

 

f:id:ryisnow:20150619143724j:plain

f:id:ryisnow:20150619143744j:plain

(装備が変更されると攻撃力も変化)

こんな感じで初めてのテキストアドベンチャーゲームはなんとか完成しました。

こんなこともできそうだ、これもできるのかも、と可能性が広がっていく行程は楽しかったです。