ゲーム用語の解説のお時間です!
今回紹介するのは、「フラグ」です。
ロールプレイングゲーム(RPG)でよく聞く言葉ですね。
最近では、「フラグが立った」とか「死亡フラグ」など、日常生活でも聞くことがあると思います。
ゲームになぞらえての説明になりますので、普段遊んでいるゲームをイメージしながら読んでもらえると、分かりやすいかと思います。
参考にして頂ければ幸いです。
スポンサーリンク
■ フラグとは?
フラグとは「旗」という意味です。
英語にすると、「Flag」と書きます。
これはゲーム用語というよりも、大本はプログラミング用語です。
プログラムを記述する上で、「フラグ」という文面というかルールが出てきます。
テレビゲームはプログラムでできていますので、その言葉が出てきて一般化してきたというわけですね。
■ プログラミングにおけるフラグ
フラグは「旗」のようなもので、イメージとしては、「旗を上げる」「旗を上げない(倒れたまま)」です。
これによって、「オン・オフ」を管理します。
なにかの行動やイベントを起こしたときに、
「フラグがピコン!と立つ」
その後のイベントの際に
「フラグが立っているかどうかを確認し」
↓
「立っていたらAのストーリーへ」
「立っていなかったらBのストーリーへ」
と分岐するように使います。
ちなみにフラグの「オン・オフ」は、
「0(オフ)と1(オン)」
「true(オン)とfalse(オフ)」
「真(オン)と偽(オフ)」
なんて表されることもあります。
■ フラグ=伏線ではない
最近は「フラグ」という言葉が一般的になりすぎて、「伏線」という意味で使われるようになり始めています。
「ボッコボコにしてやんよ」→「ボコボコにされるフラグ」
「テスト楽勝だし!」→「赤点フラグ」
みたいな感じですね。
微妙な違いでわかりにくいかもしれませんが、 テレビゲームの世界では、
「ボコボコにしてやんよ」と発言してしまうことで、「ボコボコフラグ」が立ちます。
その後、強敵に出くわす段階で、 「ボコボコフラグ」がオンかオフかをチェックし、
オンなら「ボコボコにされる」
オフなら「ボコボコにされない」
と分岐します。
・フラグ回収とは?
「フラグ回収」という言葉があります。
これが、フラグを伏線としてしまっている元凶です。
フラグ回収とは、フラグを回収してまわる行為。
つまり「旗の回収」という意味で使われ、物語終盤において、今まで描かれてきた伏線を回収する。
といった意味で使われます。
フラグ回収という言葉は、プログラミングの世界にはありません。フラグは立てるか・立てないか(下ろすか)、しかないためです。
一旦立てたフラグを下ろす(オフにする)ことはしますが、フラグ回収とは言いません。
■ ゲーム内で「フラグ」がどう使われるか
さて、実際にゲーム内で、「フラグ」はどう使われるかをご紹介しますね。
先に説明したとおり、テレビゲームはコンピューターの世界に近いため、「フラグ」は伏線ではなく、「オン・オフ」として使われることが多いです。
フラグはロールプレイングゲーム(RPG)で出てくることが多いです。
実際には、全てのゲームソフトはプログラミングでできているため、アクションゲームであろうが、ホラーであろうが、ノベルであろうが、何でも「フラグ」という仕組みが使われています。
ただRPGのようなストーリーが主体のゲームが、「フラグ」という言葉が使われることが多いですね。
■ ドラクエのフラグ
最も馴染み深いゲームとして、ドラクエを上げます。
ドラクエの世界では、
魔王と倒す前と倒した後で、町の人の会話内容が変わりますよね。
魔王を倒す前は、
「勇者よ!魔王を倒してまいれ!」と話していた王様が、
魔王を倒した後では、
「よくやった勇者よ!これで世界に平和が訪れる」と言いますよね。
ここで「フラグ」という仕組みが使われています。
フラグが立つのは、「魔王を倒した瞬間」です。
魔王を倒したときに、
「魔王討伐フラグ=オン」とフラグが立ちます。
王様と話をする時に
「魔王討伐フラグがオンかオフか?」
を最初にチェックしているわけです。
オフなら「勇者よ!魔王を倒してまいれ!」と返しますし、
オンなら「よくやった勇者よ!これで世界に平和が訪れる」と喋ります。
つまり、旅の行程は関係ないわけです。
冒険の途中で起こったイベントも、苦労して倒した中ボスも、レベル上げも、何もかも関係がなく、「魔王討伐フラグ」がオンかオフかだけで判断しています。
ですから極端な話、初めて王様に話しかける時点で、「魔王討伐フラグ」がオンになっていたら、いきなり「よくやった勇者よ!これで世界に平和が訪れる」と言われてしまいます。
■ フラグとバグの関係
フラグがオンかオフかで、イベントの分岐が行われます。フラグをチェックすることで、ストーリーが進んでいきます。
そうすると、フラグがうまく立っていないと、イベントの分岐が起きなかったり、ストーリーが進まなくなってしまう。
いわゆる「進行不能バグ」、なんてのが発生したりします。
例えば上の例でいうと、
魔王を倒した瞬間に「魔王討伐フラグがオン」になりますよね。
じゃあこれが、
「魔王の話に乗って、世界の半分をもらってしまった時」はどうなるでしょう?
魔王を倒していないわけですから、「魔王討伐フラグはオフ」のままです。
そうすると、王様の元へ戻っても
「勇者よ!魔王を倒してまいれ!」と延々と話すだけになります。
(※こうなってしまうため、実際には、ドラクエ1では、世界の半分をもらったとき用のエンディングがある)
■ 複数のフラグ管理とバグ
実際にはゲームの世界は、1つのフラグで管理をしているわけではありません。
フラグA
フラグB
フラグC
フラグD
…
と無数のフラグを同時にチェックして、物語を先へ進めています。
フラグは多ければ多いほど、バグが発生しやすくなります。フラグの管理ができなくなるわけですね。
予期せぬプレイヤーの行動によってフラグが立ってしまい、それによって、よきせぬイベントが起きてしまうわけです。
「ドラクエ11」を例にしてみましょう。
ドラクエ11では、船を手に入れた後、
ソルティコの町で水門を開けてもらい、内海から外海へと出ますよね。
ところが、初めてソルティコのジエーゴの屋敷へ行っても、「ジエーゴは今いません」と言われるのみで取り合ってもらえません。
これはおそらく
「ロウが仲間になっているか」のフラグが立っているかをチェックしています。
「ロウが仲間になった状態」で、
(かつ、「船を持っている」のフラグもあるかも)
ソルティコの町へ行くと、水門を開けてもらえます。
さて、ここで問題です。
「ロウが仲間になった状態」を水門を開けるフラグにしてしまうと、
何が起きるでしょう?
そうです。
ロウだけを仲間にしただけで、外海へと出られてしまうわけです。
例えば何らかのバグが発生し、
・最初からルーラでどこにでも行けてしまう
となってしまうと、
主人公は最初の段階で、ロウを仲間にすることができてしまいます。
主人公・カミュ・ロウだけで外海へ出てしまうと、
それ以降に起きるイベントの数々はバグると思いませんか?
ですから実際には、「ロウが仲間になっているか」がフラグではなく、「仲間が全員そろっているか」がフラグになっているものと思われます。
・主人公=オン
・カミュ=オン
・仲間C=オン
・仲間D=オン
・ロウ=オン
のようなイメージです。
■ 実際のゲーム画面でのフラグ管理
ドラクエ3のチーフプログラマーの方が、Youtubeで活動されていまして、そこで実際のゲーム画面を元に、フラグやバグの動作確認をしています。
フラグがどう管理されているか、
プログラムの中でどう機能しているのか、
フラグを1つ立てただけで、どんでもないことが起きたりだとか。
かなり面白いので、興味のある方はこちらも参考にしてみてください。
■ 一般人の感覚とプログラミング的思考
プログラマーの笑い話にこんなものがあります。
妻がプログラマの夫に
「買い物にいって牛乳を1つ買ってきてちょうだい。卵があったら6つお願い」
と言いました。夫はしばらくして、牛乳を6パック買ってきました。
妻は「なんで牛乳を6パックも買ってきたのよ!」
夫は「だって、卵があったから…」
これは「フラグ」のいい例ですね。
「卵があったから」→「卵フラグ=オン」→「牛乳を6パック買う」
もし卵が売り切れだったら(卵フラグ=オフ)、夫は「牛乳を1パック」買ってきていたことでしょう。
プログラミングというものは、コンピューターに寄り添います。
そのため、思考回路がコンピュータ的になります。
人間的なニュアンスが通じない世界なのですね。
しかしながら人は人ですので、プログラミングの際にニュアンス的思考もしてしまいます。
そのために、バグが生じるわけです。
■ 終わりに
以上、「【ゲーム用語】フラグとは何か?【フラグが立った、死亡フラグ等】」でした。
楽しいゲームに出会うための参考としていただければ幸いです。
スポンサーリンク