ボードゲーム専用ゲームエンジン

ボードゲーム専用ゲームエンジン∞(infinity)スタンダードモデル

初めに
これを読んでいる人はおそらくボードゲームを作りたいもしくは作り方を知りたい人だと思う。
確かにボードゲームの作り方を教える専門学校などはないだろう。
そのために僕はこのゲームエンジンノートを作った。
少し僕がこれを作ろうと思った経緯を話す。
それはボードゲームをまだ作り始めたばかりの時だ。
ふとこう思ったんだ。
"なぜデジタルゲームのゲームエンジンはあるのにボードゲームには無いのだろう、あれば作ることに対するハードルは低くなり作りやすくなるのに"と。
そこで僕はとある本を買った。
それは「ゲームメカニクス大全」というボードゲームのメカニクスについて詳しく詳細に書いてあった。
だがここで気づいた。
こんなに種類があり選択肢が広がるのは確かだが中には"どこで使うんだ?"と思うようなメカニクスまで紹介されていたんだ。
これだとこの本を使いこなすには相当読み込んで理解もしなきゃだし初めのハードルが高すぎる。
そこで僕は「初めてボードゲームを作ってみたいんだけどどんな感じでやればいいんだろう?」といった方や「こんなものを作りたいんだけど組み合わせどうしようかな?」といった方々、さらには「ボードゲーム作ってるけど次回作悩むなぁ」という方にも有効なものを届けたいと思って今回このゲームエンジンを作ることにした。
このゲームエンジンが役に立ってくれると嬉しい。

簡単にボードゲームの仕組みを解説
ここではボードゲームをデスクトップPCに例えようと思う。
まずボードゲームでよく言われるシステムまたはメカニクスというものだがこれはデスクトップPCで言えばPC本体またはそれらを構成するパーツである。
これらはボードゲームを構成する上でのパーツである。
色々あるパーツ(システム)を組み合わせることでルールというケースに収められるようになる。
そして次にテーマというものだがこれは画面に映し出される映像のようなものだ。
ボードゲームで言えばストーリーや世界観といったものが当てはまるだろう。
そしてボードゲームのボードはPCで言えばディスプレイだ。
そこではストーリーという名の映像が流れそして数々のパーツを合わせて作られたルールにそってゲームがプレイされる。
これがボードゲームというものだ。

さて簡単にボードゲームについての解説を終えたところで次に進もう。

システムとテーマを組み合わせると無限の可能性が出てくる。
基本から応用までしっかりカバーできるようにシステム面でもテーマ面でも考えに考え抜いて作ったこのエンジンで是非世界に1つだけの貴方だけのボードゲームを作って欲しい。

エンジンの仕組み
では早速そのエンジンの紹介と行きたいところだがまずデジタルゲームのゲームエンジンの作りを軽く説明する。
デジタルゲームのエンジンはよく使用されるプログラムの組み合わせをあらかじめ用意しておいてそこに後から必要なプログラムを付け足すといった方式だ。
これなら初心者でも何もないところから組むわけではなくあらかた形があるものに装飾を加えるかのようにプログラムを付け足すだけで済む。
これがデジタルゲームのゲームエンジンだ。
対して僕の考えたボードゲームのエンジンは完全にオリジナルだ。
そのため用いる言葉も馴染みがない言葉が多いと思う。
そのためわかりやすいように他の言葉に例えて説明するからあとで自分でわかりやすい言葉を見つけて当てはめて欲しい。
ではやっていこう。

僕の考えたエンジンそれは"ダブルツリーチャート"だ。
わかりやすいように図を載せておく。



では解説していこう。
このエンジンは3段構成になっている。
上から順にシステムツリー、メインパーツ、テーマツリーだ。
まず初めに取り掛かるのはメインパーツだ。
これは木で言えば根っこから幹までの部分にあたる。
まずは根っこにあたるメインパーツの中心"コア"だ。
ここには自分の考えているゲームの中心となるテーマ(そのゲームのイメージ)を入れて欲しい。
なぜここにテーマなのかというとその後のシステムツリーの構成やテーマツリーの構成をするときの土台になるからだ。
そのためここは決定したら完成するまで変えてはいけない。
ゲームのイメージと言える部分だ。
例えば戦争をテーマにしたゲームなら単純に"戦争ゲーム"と入れればいい。
これでコアは完成だ。
そうしたら次は2つのツリーに伸びている2本の幹、上から"システムメイン"と"テーマメイン"に取り掛かる。
まずはシステムメインから。
ここにはこのゲームに合ったプレイの基本となる部品(システム)を大体2〜3個ほど入れて欲しい。
先程の例でいくと戦争ゲームならまずは"移動"だろう、そして2つ目には"攻撃"、3つ目に"エリアの占領"を入れればこれだけでもだいぶゲームルールの基礎ができた。
そうしたら今度はテーマメインを作っていく。
ここでは個数は何個でもいいが後の自由度を広げるのなら少なめの1〜2個がベストかもしれない。
戦争ゲームでも色々なテーマが選べる。
まず今回は昔に起こった元軍(今のモンゴル)が日本に攻めてきた戦いにしよう。
当てはめるのはとりあえず"元軍vs日本"でいいだろう。
ここはこれで完成だ。
出来るだけシンプルにまとめれば次のテーマツリーで色々なアイデアが取り入れやすくなる。
さてこれでメインパーツは完成だ。
意外とサクサク進んだと思う。
ここで重要なのは変に用語にこだわりすぎないことだ。
ボードゲーム作りは自分の個性を表現できるものである。
それなら自分の作りやすいように解釈して楽しく制作して欲しい。
だからこのエンジンでは難しい用語はほとんど扱わない。
では次に進もう。

さてここからは実はシステムツリーとテーマツリーどちらから始めても特に問題はない。
今回はシステムツリーから先にやることにする。
まずシステムメインから伸びている線を今回は主なシステムが3つあるので3本に線を分ける。
この分ける数はシステムメインの数に等しくなるようにする。
ではまず取り組むのは"移動"からだ。
移動の方法にはいくつかの種類があるが今回は試しに測定という方法を使う。
測定はそれぞれの駒(このゲームの場合はユニット(軍団))に一度に移動できる最大距離を指定することで0〜最大値までの間の距離を自由に移動できるようにすることである。
そして移動からさらに線を増やして天候を加える。
これにより移動能力の制限や攻撃の制限などを行う。
そして最後に測定を選ぶと必要になるであろう視野を加える。
次は"攻撃"に要素を追加する。
まずは攻撃から線を伸ばしダイスと書く。
そしてダイスから線を引き"1・2・3・4であれば攻撃命中"と書く。
さらにそこからも線を引き"1・2・3・4は攻撃力"と加える。
次に攻撃から2本目の線を伸ばし"攻撃距離"と書く。
そこから線を3本伸ばして一本は剣・刀で1〜2として、2本目は弓1〜4としてもう1本は火器として3〜6とする。
最後に攻撃から3本目の線を引き"防御"と書く。
そこから線を伸ばし"防御はダイスの1・3であれば成功として軽減率はダイスの出た目で決まる"と情報を加えれば攻撃も大丈夫だろう。
次は"エリアの占領"だが今回は測定を使うためマップには様々な自然(森林や丘、川など)や人工物(砦や石垣など)を書いて表現する。
そのためエリアの占領をした時の効果をつけなければいけない。
例えば森林などでは視野が狭くなる代わりに防御率が上がるようにしたり、丘なら高低差を意識して丘の上から矢の嵐や火器で攻撃したりなどなど。
こうした効果をエリアの占領から線を伸ばして"その場に適合する効果発動"として処理します。
そしてこれを今まで付けてきた要素と線で繋げばシステムツリーはとりあえず完成。
お次はテーマツリーだ。
テーマメインでは"元軍vs日本"にしてあるからここにテーマに沿った要素を付け足していこう。
まずはマップだ。
元軍vs日本から線を引きそこにマップと書く。
さらにマップから線を伸ばし"元軍は海から日本は陸地から"と書く。
次に"元軍vs日本"から新たな線を引きここで対戦人数を決める。
このくらいの規模だと大体2〜8人用にしても十分遊べるだろう。
さらに"元軍vs日本"から線を引き"装備"を追加、装備からまず1本目の線を引き"日本:弓・刀・馬・鎧"と書き、次に2本目を引いて"元:剣・弓・船・火器・軽量装備"と書く。
これぐらいの情報を書いたらいよいよ組み立ててゲームを作りテストプレイをしていく。
だがここでは少し省略させていただく。
今回の目的はゲームエンジンの紹介とその使い方を知って理解してもらうためのものだ。
そのためここからはテストプレイ後のデバッグ(修正)を紹介する。
このゲームエンジンではデバッグをすることも考慮して考えてある。
まず今作ったゲームを見たところ不明な点が3つある。
1.ゲーム開始時どちらが初めに動くのか。
2.それぞれの勝利条件、敗北条件。
3.視線の範囲。
この3つを直すにはシステムメイン、ツリーに少し手を加えることで解決する。
まず1の問題だがこれはシステムメインに"ターン開始"を追加する。
そしてそのターン開始から線を引き"元軍から行動開始"と書く。
これで1はOKだ。
次は2だ。
2の場合もシステムメインに手を加える。
システムメインに"勝敗条件"と書いて線を引き"どちらかの勢力の消滅"と書けば勝敗条件がわかりやすくなる。
3はシステムに少し手を加える必要がある。
システムは"視野"から線を引き、まず1本目は"高低差を考慮"とする。
"高低差を考慮"からさらに線を引き"高い場所→低い場所も見える、低い場所→高い場所見えない、同じ高さ→どちらも同じぐらい見える"と記入する。
次に2本目を引き"障害物の効果"を書く。
そこから線を伸ばし"視野を狭めるまたは遮断する"とする。
こうすれば遮蔽物で見えないなどの複雑な処理が行えるようになる。
これでこのゲームのデバッグは完了だ。
このエンジン製作で特に重要視したところはシステム構築の単純化とわざわざ手間な専門用語を使わずにわかりやすい言葉を使うことでの理解のしやすさ、そしてデバッグ時の手間の省略だ。
だがもちろんこれにも欠点はある。
それは高度な複雑化にはあまり向いていないのだ。
だが安心してほしいこれにも解決策はある。
まず複雑化しやすいところだけをこのエンジンを使って作成し、作ったデータに名前をつけておく。
例えば視野について物理法則や他の規則的なものなどを取り入れた場合などは一度「視野」というコアと名称でエンジンを用いてデータを作りその後実装したいゲームに「視野」という名称のまま代入するのだ。
こうすれば一度作っておいたデータは他の作品にも使うことが出来るし、1つのデータが膨大になることはない。
その分の手間はかかるものの繰り返し利用するのであれば採算は取れるはずだ。
またコアからシステムツリーまでやその逆のコアからテーマツリーまでなどを移植することも可能ではある。
共通するデータをあらかじめ作っておいて利用するのもいいだろう。
このエンジンを使えばボードゲームの作成のハードルは下がる、しかも簡単に構築ができるため初心者向けでもある。
だからといってベテランが使えないわけでもない。
このデザインはなかなかのものだと思う。
どうかこのエンジンでより楽しいゲームができることを楽しみにしている。

これは番外編ですがボードゲーム制作のお役に立てれば幸いです!
ではでは!
ばいちゃっ

この記事が気に入ったらサポートをしてみませんか?