RPGを作ろう! - One Hour Quest -
我々はこれまで多くのロールプレイングゲームを開発して参りました。
社内にはRPG制作の様々な技術がありますが、
本コンテンツはソースコードをコピペで使うことはせず、
新規にゲームを作る流れで開発しており、
リアルなゲーム開発の過程をご覧頂けます。
制作過程
Ver0.2.3
【v023をダウンロード】
スタッフルームなど新たなマップを追加、全アイテムを配置しました。
Ver0.2.2
【v022をダウンロード】
ボスキャラを追加しました。
Ver0.2.1
【v021をダウンロード】
セーブ、ロード処理を追加しました。
Ver0.2.0
【v020をダウンロード】
乗り物、世界地図を追加しました。
Ver0.1.9
【v019をダウンロード】
アクセサリーの追加など、作り込みを進めています。
Ver0.1.8
【v018をダウンロード】
新MAP、敵のスキル攻撃など、作り込みを進めています。
Ver0.1.7
【v017をダウンロード】
戦闘シーンの作り込み。イベントを追加し仲間になる3人を正式に配置。
Ver0.1.6
【v016をダウンロード】
スキルの処理が入り、戦闘シーンの骨組みが完成。
Ver0.1.5
【v015をダウンロード】
レベルアップ処理など戦闘シーンを作り込み中。
Ver0.1.4
【v014をダウンロード】
戦闘処理を制作中。物理攻撃を実装。
Ver0.1.3
【v013をダウンロード】
戦闘の処理の制作を開始しました。
Ver0.1.2
【v012をダウンロード】
店を実装しました。行ける場所(マップ)が増えました。
Ver0.1.1
【v011をダウンロード】
宿屋を実装しました。家具類を配置できるようにしました。
オブジェクトのデータ(NPCやイベントなどの配置データ)が増えてきたので、それらのデータを整理しました。
Ver0.1.0
【v010をダウンロード】
道具が使えるようになりました。
イベントの実装を開始しました。
出発地点から北(画面上)のほうにあるダンジョンで確認できます。
「毒状態」を管理する変数(stsクラスのプロパティ)を追加しています。
RPGでは腕力や防御力以外に、ゲーム内容によって状態異常(毒、痺れ、眠りなど)を管理する変数も必要になります。
※確認用に、パーティメンバー全員が揃った状態でスタートします。
Ver0.0.9
【v009をダウンロード】
装備品の処理を実装しました。
メニュー → 能力 で武器や防具を装備できます。
どのキャラが何を装備しているかを管理する変数(stsクラスのプロパティ)を追加しています。
※確認用に、パーティメンバー全員が揃い、全ての道具がある状態でスタートします。
Ver0.0.8
【v008をダウンロード】
宝箱を開き中身を入手する処理を実装しました。
城内に入れるようになり、宝箱は城内にあります。
手に入れたものはメニューの道具で確認できます。
アイテムはitm[]という配列変数で管理しています。
Ver0.0.7
【v007をダウンロード】
城や町のマップが充実しました。
フラグを管理し、一度発生したイベントが繰り返し発生することが無くなりました。
姫の他に、もう一人、仲間になるキャラがいますので探してみて下さい。
Ver0.0.6
【v006をダウンロード】
城にいる姫を連れ出せるようになりました(仲間を加える処理)
姫を仲間にした後にメニューの能力を開くと、勇者と姫のパラメータを確認できます。
まだイベントをフラグ管理していませんので、城を出て再び入ると姫が再出現します(汗)
次のバージョンでフラグ管理を入れ、一度起こったイベントが起きないようにします。
Ver0.0.5
【v005をダウンロード】
メニュー画面の大枠が入りました。何もない場所で[SPC]を押すとメニューが開きます。
今のところ「能力」だけ確認でき、開発中のため能力値は0ですが、次のバージョンでパーティメンバーの能力値を設定し、各自を確認できるようにします。
また仮で城のマップを入れました。誰かいるので探してみて下さい。
それからプログラミングの話で、今回のバージョンでオブジェクト関連の変数を
クラス化しました。JavaScriptでのクラスの作り方はJavaやC系言語と少し違います(=関数として定義します)。興味をお持ちの方はソースコードをご覧下さい。
Ver0.0.4
【v004をダウンロード】
NPCの会話が入りました。
前回未実装だった
表示の前後関係を実装しました。
これは
ソート処理という方法で行います。
具体的にはY座標の大きさでソート(並べ替え)して表示順番を決め、Y座標の値が小さなオブジェクト(すなわち画面上部にあるもの)から順に描くことで
「主人公がNPCの頭を踏む」ようなおかしな表示にならないようにします。
このソート処理の実装に伴い、プレイヤーキャラの移動を管理する変数もオブジェクトとして処理するようにしました。
それからサウンドを仮実装しました。Sキーか画面右上のボタンでBGMが流れます。
Ver0.0.3
【v003をダウンロード】
町にNPC(一般人)を配置しました。
NPCはVer0.0.2で実装した町のシンボルと同様にオブジェクトとして定義しています。
オブジェクトデータは、町のシンボルなのか、人間なのかという値で定義できるようにしました。
また町のシンボルは
踏むと場所を移動するスイッチとして処理するようにしました。
主人公とNPCの表示の前後関係が未実装のため、主人公をNPCの真上に移動すると頭を踏んでしまいます(汗) ここは次回の実装で修正します。
Ver0.0.2
【v002をダウンロード】
町やダンジョンに出入りする処理です。
Ver0.0.1のマップデータはフィールドだけを定義していましたが、今回、町のデータを追加しました。
そして主人公がどのマップにいるのかを plZ という変数で、フィールドなら0、町なら1というように管理しています。
町のシンボルは
オブジェクト(※)として定義しています。
町のシンボルに載った時にどこに移動するか(どのマップデータを読み込むか)という値も定義し、それに基づいて場所移動を行っています。
※ゲームは一般的に背景(BG)とそこに存在する物体(オブジェクト)の2つのデータで世界を作り上げます。
Ver0.0.1
【v001をダウンロード】
まずは主人公キャラがフィールド上を歩く処理です。
キャラクターの位置を、マップチップの升目上の座標、キャンバスに表示するための座標の2つで管理します。
歩く速さは変更できるようにしてあり(定数PLMF)、ボタンを押し続けるとダッシュできる処理で使う予定です。