読者です 読者をやめる 読者になる 読者になる

ブラウザでボードゲームを作ってみる(Colamone開発ブログ)

ブラウザで遊べる二人零和有限確定完全情報ボードゲーム「Colamone(コラモネ)」の開発記録を淡々と綴るブログです。


ここから遊べます


オリジナルのボードゲームを試案してみる①

ボードゲーム プログラミング

はじめに

たしか中学だったかな。
オリジナルのボードゲーム(チェス将棋みたいなもの)を妄想してた事がある。

具体的なルールはもう忘れちゃったけど、ルールを整備してこれをコンピュータ対戦できるゲームに仕上げてみようかと思う(いつになるか分からないけど…)。

とりあえず今日は卓上の空論から。

ルール(暫定版)

イメージとしてはこんな感じ。非常に雑に作った表計算ソフトによるモックアップ。性格が出るなぁ…。

f:id:gabill:20140402000526p:plain

概要

6x6マスのフィールドの上のコマを交互に動かしていく将棋やチェスのようなゲーム。

コマの種類

f:id:gabill:20140402001159p:plain

コマは8種類ある。
動かせるのは、白丸の付いてる方向。 1は全方向進めるけれど、8は前にしか進めない。
コマに書かれている数字は点数。 詳しくは後で説明するけど、数字が大きいほど影響力がデカい。

ゲームの目的

f:id:gabill:20140402001700p:plain

自分のコマを相手陣地(自分が青なら盤面最上段の赤色のエリア)に送り込むのが目標。
相手のコマのいる場所に自分のコマを動かせば相手のコマを倒す事ができるけど、将棋やチェスのように王やキングはいない。
ちなみに将棋のように相手のコマを再利用するのは不可。 相手の陣地まで送りこんだコマはアガリ状態になる。

勝利条件

いずれかの条件を満たしたとき、勝敗が決定する。

  1. 相手の陣地に合計8点以上送り込んだプレイヤーの勝利。
  2. 双方のプレイヤーの盤面上のコマが8点未満になった時は、アガリのコマの点数が低い方が勝利。

初期配置

ゲームスタート時は、盤面上にコマはひとつもない。
先攻のプレイヤーから順に、交互に1コマずつ配置する。 配置できるのは自陣側の2行だけ。
双方のプレイヤーがすべてのコマを配置した後、コマを動かすことができるようになる。
面倒な時はカジュアルルールとしてランダム配置でもいいかもしれない。その方が定跡に依存しなくなるし。

課題とか

まだ一度も対人戦していないので、そもそもゲームとして成り立つのか疑問。
とりあえずまだ仮ルールなんでどんどん手を加えていこうかと思う。

とりあえずルールを考える上で考慮したのは

  • 絶対に決着がつくようにする。

これ、大事。自分みたいなゲーム作りの素人が下手にコマ取りアリの将棋モドキを作ったら、永遠に勝負がつかないゲームになりかねない。だからあえてコマの再利用はナシにした(今の暫定ルールでは)。

  • オセロ以上、チェス未満のプレイ時間。

熟考しないでテンポよく打っていけば10分くらいで勝負がつくゲームにしたいなぁ。自分自身あまり長く考えるのが苦手だし、プレイ時間が長いと色々手に負えなくなる。

  • 負けてる方にも最後までチャンスを与える。

捨て試合になったらつまらないから、最後まで気が抜けない展開にしたい。
コマが少なくなって決着が付かなくなった時に点数が低いほうが勝利するようにしたのはこれが理由。でもサドンデスに持ち込まれる展開のほうが確立高くて、誰もアガリを目指さない状態になったら嫌だなぁ。ここんとこはテストプレイして調整していかないといけないかもしれない。

  • AIを実装しやすいルールにする。

情けないけど、とっても重要。
自分は将棋はもちろんの事ゲームのAIを作った経験が全くないので、ハードルは低くなくてはならない。飽きっぽいし。
コマの再利用をルールに加えなかったのはこれも大きい。コマが8種類なのも、盤面がチェスより小さい6x6なのもこれが理由。
このゲーム、なんと1ターンに動かせるコマのパターンが最大33通りしかない。8+7+6+5+4+3+2+1=33通り。後半コマの数が少なくなっていけばもっと少なくなる。一方将棋の場合は最大593通り。
盤面評価もシンプルになりそうだ。基本的に上にいるコマの方が価値がある。サドンデスを考慮するのは少し難しいかな。

というわけで、まずはルール作り。 実装については、対人用の手動ゲームの後に、AIに取りかかればいいかな。