ドラゴンクエストコードゴルフ

っていうネタを思いつきました.

忘れないうちに書き留めておこう


ルール

コードゴルフ:出来るだけ少ないバイト数のプログラムで目的を実行する競技

ドラゴンクエスト:有名な日本RPGのゲームシリーズ


つまり,ドラゴンクエストをより少ないバイト数のプログラムで書く,という競技です.

では,どうして "ドラゴンクエスト" を選んだのか?


それは,ドラゴンクエストの初代作品は既にコードゴルフだからです.


ドラゴンクエストの1~3は,ファミコン(ファミリーコンピュータ)というハード用に作られました.

現在のNintendo SwitchやPS5 ,少し古いものですとWiiUなんかを思いだす人もいるかも

しれませんが,ファミコンはそんなのとは比べ物にならないほど古いです.

その性質上,なんとドラゴンクエストの初代はわずか40KBという異常なコンパクトさで

作られています.驚きです.40KB・・・どのくらいか実感が沸かない人もいるかもしれませんが,

皆さんが普段聞いている音楽が約「約1~5秒程度」しか入らない,それくらいの狭さです.

ちなみに,このブログのこのWebページ1つだけで既に40KB越えているようです・・・

たったそれだけのスペースの中で,ドラゴンクエストは何を実装したかというと・・・


1 VS 1の対戦システム / 文字の画像と文字の出力 / カタカナの実装 / ステータスの実装 / ステータスの変化 / どうぐ / じゅもんシステム / 歩行グラフィックとその演出 / 装備の実装(剣・縦・兜・鎧) / 話すコマンド / ストーリー(りゅうおう, 姫の救出など) / 「しらべる」コマンド  / ふっかつの呪文 / 店での売り買い / マップの移動 / HPが低い場合など,ピンチの表現 / 「のろい」のシステム / 姫救出時のグラフィック変更 / 同じアイテムを複数持っている時の省略表示 / たからばこシステム / 視界の概念


他にもたくさんあります.これほどのものが,たった40KBの中に詰まっています.バケモンです.

ここに,コードゴルフに似たような競技性を感じました.


コードゴルフではWikipediaをわずか1KBで作る試みなどもあります.それに比べると,

ドラゴンクエストは信じられないほど難しいものであり,40KBというのは

想像以上に厳しいと思います,よって,以下のようにルールつけをします.


《ドラゴンクエストコードゴルフ》

ドラゴンクエストコードゴルフでは,以下の項目を全て満たすソフトウェア・アプリを【ドラゴンクエスト】と見なす.


・「マップを移動するシーン / 戦闘を行うシーン」の2つのシーンを持つ.

・マップを移動するシーンは,上下左右と決定 / 戻るキーの6つの入力に対応する.

・マップを移動するシーンは,二次元上のマップを2つ以上持ち,上下左右によりマップを移動できる.

・マップを移動するシーンでは,異なるマップに移動する方法を持ち,それによって全てのマップのいずれかのマスに移動できる.

・「店」がある.

・NPCがおり,話すことができる.

・「じゅもん」を1つ以上持ち,マップでそれを使用できる.(じゅもんの内容は問わない)

・プレイヤーを示す「Lv, HP, こうげき , ぼうぎょ, おかね」のステータスを持つ.

・プレイヤーは「HP」を持ち,0になった場合にゲームを終了する

・プレイヤーは「持ち物」を持ち,合計で2つ以上の持ち物を持つことができる.

・プレイヤーは「おかね」を持ち,おかねの値に応じて店を使って持ち物を買ったり売ったりできる.(売った時に必ずお金が増える必要はない.)

・戦闘システムを持ち,「たたかう」「じゅもん」「にげる」を選択できる.

・じゅもんを一つ以上持ち,戦闘するシーンでそれを使用できる.

・攻撃には「威力が変化する場合(かいしんのいちげき)」と「ミス(威力が0になる場合)」を確率的に含む

・戦闘するシーンには1体以上,敵が登場する.

・戦闘にはターンが存在し,自分の攻撃の後に,敵のうちHPが0でないものは必ず行動する.

・敵の行動は攻撃と1種類以上の呪文を確率的に含む(敵ごとに異なっている必要はない)

・敵の攻撃には「威力が変化する場合(つうこんのいちげき)」と「ミス(威力が0になる場合)」を確率的に含む

・敵は3種類以上あり,ある特定の1種類を倒すとゲームが終了する(ボスの概念)



こんなものでどうでしょうか.

そのうちしっかりとしたレギュレーションを考えたら面白いんじゃないかと思いました.

コードゴルフに興味がある方はぜひとも一回やってみてください.

可視化の必要もなく,ふっかつのじゅもんもなければ敵の固有ステータスは経験値はおろかHPすら設定しなくてもいい(ランダム生成・固定でもよいということ)ので,これくらいなら

40KBでも全然できる可能性はあると思います.

競技メンバーが4人くらいになったら実際に一回やってみたいです.


以上です,よろしくお願いします.

0コメント

  • 1000 / 1000