ゲームを作りたい初心者が完成させるために大事なこと
こんにちは。継続の錬金術士なおキーヌです。
ブログ毎日更新は161日目になります。
プチコンBIGで全28回のゲーム講座を通して1画面RPGを完成させました。
細かい荒は目立ちますが、一通りゲーム作りを完成させたということが重要だと思います。
今回は計画せず作りたいものを行き当たりばったりで作りながら講座も作ったわけですが、
意外と気合いで何とかなるもんだなとは思ったのですが、途中からああしとけばよかった!
っていうのが多くなってきました。
モンスターの数や宝箱の数、変数や使う配列の数をある程度洗い出しておいた方が良いでしょう。
しかし、全くゲームを作ったことのない人だと何が必要なのかわかりませんね。
結論を言っておくと、考えるよりも行き当たりばったりで作って挫折したほうが経験値になります。
しかし、やっておいてなんですがいきなりRPGを作ろうとするのは正直やめておいた方が良いかなと思いました(笑)
その理由も含めて今回初心者がゲームプログラミングをするときに気を付けるべきことを紹介します。
- 作るジャンルと着地点をしっかりと決めること
- 作るものはステージクリア型にするべき
- 楽しいと思えるものを作るのがモチベ維持になる
- 完成品を部品に分けて作っていく
- ゲーム作り初心者が気を付けることまとめ
- 謝辞
作るジャンルと着地点をしっかりと決めること
最初に結論を言っておくと、明確なジャンルを決めておかないと作り上げることは困難です。
それと、着地点……つまりここまで作り上げることが出来たら完成という明確なイメージを持つべきです。
ゲームを作るとき、まず決めるのはジャンルでしょう。
RPG・RPG・STG・ADV・SLGなど様々なジャンルはそれぞれ好き嫌いがあるかと思います。
私の場合、シンプルなRPGが好きなので今回の講座はRPGを選択しました。
今回RPGを作ろうと思ったのには2つの理由があります。
1つは先ほども言ったRPGが好きだからという極々シンプルな理由です。
世代的にDQ・FFを時系列的にやってきています。(FFは13からやらなくなりましたけど)
好きなゲームと同じジャンルを作りたいと思うのは自然の流れでしょう。
もう1つはRPG制作講座を開いている人が思ったよりも少ないし、
あっても古かったりわかり辛い(私の理解力が低い)ということです。
ツクールなどのコンストラクションツールを使わず1からプログラミングでゲームとその制作講座を同時に作っていてわかったのですが、
解説するのも作り上げるのも物凄く面倒なので誰もやりたくないのだと思います(笑)
今回の私の着地点は講座を作り上げたら完成ということにしました。
なので防御が殆ど意味をなしてなかったり、攻撃と回復だけしか意味がなかったりお粗末なものでした。
改善点を残しておけば、講座をやった人でもそこから改良したりオリジナリティを加えることも出来るので
あえて未完成な感じで講座を終えました。
RPGを作るのに必要な基本的な仕組みを解説するのが本来の目的だったというわけです。
なので今回私が作ったのはジャンルは大好きなRPGで、
着地点はRPGを作るために必要な仕組みの解説を最初から最後までするということです。
作るものはステージクリア型にするべき
画面スクロールを実装すると、作成難易度がめちゃくちゃあがります。
私もRPGを最初作ろうとしたときはFFやドラクエのような画面がスクロールするRPGを作ろうとして
実装はできたのですが、そこから先どうするかわからず挫折を繰り返しました。
シューティングのような自動で横スクロールしてくれるタイプのものだと、
ループで背景をスクロールするだけなので意外と簡単です。
RPGの場合は画面中央にキャラを維持して、
尚且つ端っこまで行ったらスクロールを停止してキャラクターを動かすという面倒くさい処理があります。
一度作ってしまえば楽ですが、そこにたどり着くまでに挫折する人が多いです。
なので私が今回RPGでも1画面だけで構成されたRPGを作ったように難易度を下げて作ると
ゲームを完成させられる確率がグンとあがります。
アクションRPGでもゼルダの伝説FC版かGB版のタイプにすればエリア型に出来るので楽になります。
神々のトライフォースのように画面スクロールを導入すると先ほども言った通り難易度が上昇します。
その分ゲームとしては面白くなりますが、
ゲームプログラミング初心者としては挑むのはやめておいた方が良いでしょう。
完全初心者の方はRPGを作る前に倉庫番のようなゲームを作ってみることをオススメします。
倉庫番は今回作った1画面RPGの基礎の部分がぎゅっとつまっていますので、
1画面RPGで講座を見てもよくわからないという人はまだそのレベルに達していないということです。
倉庫番を作ることがある意味RPGを作るために必須条件かもしれません。
しかし私は倉庫番なんて作ったこともありませんが、
RPGツクールのおかげである程度の挙動を理解していたのでショートカット出来たという感じでしょうか。
楽しいと思えるものを作るのがモチベ維持になる
ジャンルと着地を決める時にも言ったように楽しい・好きだと思えるゲームを作らないとモチベが続きません。
ゲーム制作……というか何かを生み出すという行為はモチベーションが8割です。
あとの2割は継続力と技術力ですね。
モチベがあれば技術力が無くても継続しなくてもある程度完成させられます。
私の場合はRPGが好きだというシンプルな理由で作り上げることが出来ました。
しかしここまで何度も挫折しています。
RPGを作るのではなく仕組みを作っていたため、モチベが維持できませんでした。
今回はRPGを作るのがメインではなく制作講座を作るのが目的だったためモチベを維持できたわけです。
ぶっちゃけると後半、精神的な問題もあり完成間際になってきたらモチベがかなり下がっていました。
というのも後半はプログラミングというよりもただの調整だったからです。
ここで耐えられたのは今年から培ってきた継続力と、
ここ10年で身に付いたしょぼい技術力のお陰です。
私自身あんまり調整の部分は好きじゃないのかもしれませんが、
ゲーム制作は調整で面白さが左右されるのでゲームクリエイターとしてはここがダメだと結構致命的ですね……
しかし調整は後からでもできるので、とにかく完成させることが大事です。
もう一度言いますが、完成させるためにはモチベ維持が必須です。
そのモチベ維持には楽しいという感情が何よりも大切ですね。
完成品を部品に分けて作っていく
これはゲーム制作というよりもプログラミング全てに共通することだと思います。
講座を見て作ってくれた人にはわかると思いますが、シーン別に関数を作っていたと思います。
ああいった感じに部品を作って完成品を作り上げるのがプログラミングの基本となっています。
部品ごとに作っておくと修正も基本的にはそこだけで完結しますので他に影響を及ぼさなくなります。
しかし、グローバル変数を多数使って制御していると部品で作る意味があんまりなくなります。
プチコンのようなクラスがないプログラミング言語の場合凝ったゲームを作るには
グローバル変数を多数使うことになります。
なので正直プチコンではRPGを作るのには向いていないんですよね。
ゲーム作りに一番良いのは処理速度的にC++ですが、流行りの言語としてはC#でしょうか。
ゲームプログラミングはシンプルなゲームでは1つのファイルで作ることが出来ますが、
データベースが必要となるようなゲームになるとファイルを分けて管理しないとどんどん大変になります。
今回のRPG講座でも1000行を軽く超えてしまったので本来ならファイルを分けて作るべきでしたが、
初心者向けということでファイル読み込みはマップデータ以外では使いませんでした。
ゲーム作り初心者が気を付けることまとめ
もう一度言いますが、ゲーム作りに大切なのは
- ジャンルと着地点をしっかりと決める
- ゲーム作り初体験ならステージクリア型にする
- 楽しいと思えるゲームを作る
- 部品別に作る
と説明しました。
この中でも特にモチベーション維持と楽しいと思えるゲーム作りが大切になります。
モチベーションが低いと作り上げることは困難になりますし、
楽しくないと完成しても何のためにやったんだろう……という悲しい状態になります。
そんなゲームを作ってもプレイヤーが喜ぶはずもありません。
作っていても楽しくないゲームは商業で仕方なく生み出されるクソゲーで十分でしょう。
しかし完成させたという結果は残るので挫折するよりかは幾分良いです。
挫折も何度か味わっておいた方が良いかもしれません。
後になって挫折を味わうとその分壁が高くなるので、
スキルが低いうちに挫折を味わいまくっておくのも1つの手です。
謝辞
ここまでの記事を読んでいただいている方には何度か言っていますが、
今回自力でRPGを完成させられたのは幾度の挫折と下記の他者様のRPGの作り方講座のお陰です。
Javaでゲーム作りますが何か?
http://aidiary.hatenablog.com/entry/20040918/1251373370
プログラミング講座 JavaでRPGを作ろう!
https://www.harukitchen.com/rpg_programming/
主に参考にさせていただいたRPG作成講座です。
参考にしたのは6年以上前ですが、確実に私の血肉となっております。
私の今回使った言語はJavaScriptとプチコン(SmileBasic ver3)です。
この講座はどちらもJavaですが記述方法以外は基本的なプログラミングの構文なので
言語をある程度使いこなせるのであればどの言語でもある程度流用出来ます。
今回、講座とRPGを完成させられたのはこの2つのサイトのおかげでもあります。
この場をお借りしてお礼を申し上げます。