ゲームプログラミング独学ブログ

ゲームプログラミングを初心者・未経験から独学で身に着けるための情報をまとめていきます。Unityを使った2D・3Dゲームの開発方法やゲームクリエイターになるための情報もまとめていきます。

初代ドラクエのソースコードはC言語?行数や制作時の工夫や苦労を徹底調査!

大人気シリーズゲームの一つ、ドラゴンクエスト(通称:ドラクエ)。

今ではドラクエウォークのようなGPSと連携したゲームアプリも開発されています。

 

「こんなに面白いゲーム、どうやって作っているの?」とゲームを「する側」の視点ではなく、「作る側」の視点で考えたことのある人もいらっしゃるのではないでしょうか?

正体は「プログラミング」です。

プログラミングと一概に言っても外国語と同様、様々な言語が存在しています。

 

基本的に、時代や端末に応じた言語を使用していくため、シリーズごとに使用される言語は異なります。

その中でもやはり目を見張るのは「ドラゴンクエストI」でしょう。

理由は簡単、流行るかもわからない中作られた、つまり無から有を生み出すという一番難しいことを成し遂げているからです。

 

誰にでも身近なゲームを通して、「プログラミング面白そう!」と思っていただけるように、実際に初代ドラクエを参考にしながら解説していきますね。

 

ドラクエIのすごいところ

結論、「RPGの始祖といわれても過言ではないほどの斬新さ」です。

 

ドラクエIについて知らない人もいるかもしれないので、さらっと解説。

1986年(昭和61年)にファミリーコンピュータ(通称:ファミコン)用RPGとして発売されています。

 

現代ではグラフィックはよりリアルになり、ボイスなども入ってやりこみ要素も増えていますが、ドラクエI発売当時のグラフィックはドット絵、ボイスなども搭載しておりませんでした。

そして、何より主人公は常に前向きでかに歩きをしています。

(笑)

現代のゲームと比べると、システムはとてもシンプル。

バトルにおいて、「不意打ち」と呼ばれる例外を除いて主人公絶対先行攻撃、加えて絶対1 on 1のガチタイマン。

今考えると、とんでもない主人公補正をされていますが、とても分かりやすいです。

 

なんでこんなゲームが流行るの?と思われるかもしれないですが、当時のRPGとして革新的な工夫が多かったからです。

 

誰でもドラクエIを作れる可能性がある!?

当たり前のことかもしれませんが、ドラクエIは作れます!

「制作物」である以上、作り方は存在しています。

ドラクエI発売時から時代も流れ、SNSYouTube、インターネットで誰でも情報が集められる時代になりました。

ドラクエI発売当時、C言語が最盛期だったためドラクエIにはC言語が使われています。

 

以上の情報でお分かりの方もいらっしゃるでしょう。

C言語の教材なんて今ならどれを選べば正解かレベルで存在します。

しかも、「実際にドラクエIを作成してみた」系の動画も多数上がっていました。

 

僕、私にもできるかもしれないと思っているあなたへ。

ぜひ、ドラクエIを通じてC言語に触れてみて、プログラマーすなわち「作る側」に興味を持っていただければ嬉しく思います。

 

「作る側」の苦労

私は先ほど、「誰でも作れる可能性がある」と言いました。

それなら、勉強さえすれば案外簡単にゲーム作れるのではないか?と思った方もいらっしゃるでしょう。

 

申し訳ございません、今から心を折ります。

 

ドラクエIのソースコードは現代の知識などを活用しても4000~5000行と言われています。

注目して頂きたい点は、現代の知識などを活用してこの行数ということです。

当時の環境では、現代ほど開発環境が整っていないことは言うまでもないでしょう。

 

ざっと10万行。

さらに、当時のゲーム機(ハードウェア)は容量が小さかったため、条件もシビア。

そんな中、色々な工夫を凝らしてドラクエIは制作されたのです。

 

それほどにゲームを「作る側」の方々は時間と手間をかけて制作しているのです。

だからこそ血と汗と涙の努力の結晶であるゲームは、時間がたった今でも愛され続けているのです。

 

現時点で心が折れてしまった方も多いのではないでしょうか?大変申し訳ございません。

しかし、考えていただきたかったのです。

ゲームを作る大変さ、すなわち「作る側」になる難しさ。

そして、大変だからこその見返りがあることを。

 

まとめ

  • ドラクエIの流行の秘密は「RPGの始祖といわれても過言ではないほどの斬新さ」
  • 「現代」ならばドラクエIは誰にでも作れる可能性がある
  • 「作る側」は手間と時間をかけて制作するからこそ、努力の結晶となる

いかがだったでしょうか。

私自身もC言語を学んで組み込み系の仕事をしております。

ただ、ドラクエIがC言語で作られているのは全く知りませんでした。

 

私のようなハードウェアを直接制御するタイプもいれば、ゲーム開発のようにソフトウェアを制御するタイプもいます。

同じ言語でも作れる幅は無限に存在するということです。

 

ここでは大人気ゲームを通して、プログラミングに興味を持つ方が増えれば幸いです。

今では教材もプログラム言語も多数存在しており、ゲーム作りにおいてもプログラマーの負担が減るような仕組みも開発されています。

 

もちろん、プログラミングで出来ることはゲーム開発に限らず、WebページやWebサービス、流行りのAIなども開発ができます。

何かを「作る」という経験をまだしたことない方も多数いらっしゃるでしょう。

ぜひこの機会に、勉強してみてはいかがでしょうか。