#はじめに
古くはチェスの世界チャンピオンに勝利したディープブルー、最近では将棋のプロ棋士とソフトが戦う電王戦...
ボードゲームはコンピュータの進化を図るひとつの指標となっています。
それこそ将棋の電王戦といえばNHKでも特集され今話題の分野。
最強の将棋ソフト、自分でも作ってみたいですよね。
しかしチェスや将棋の世界で1番になるのは苦難の道です。
天才たちが99%の努力と101%のひらめきで200%のパワーをぶつけ合う世界。
素人が戦いに挑んでも現実の厳しさをハムスターから教わることになるでしょう。
しかし発想を変えれば簡単に世界一になれる方法があります。
競技人口1人のボードゲームを自ら創り、その中で世界一を目指す。
これ。
究極のブルーオーシャン戦略。
という訳で、
- オリジナルのボードゲームを考案する。
- 一人用として遊べるゲームとして実装する。
この2つのテーマで解説していきたいと思います。
#できあがりの品
できあがりの品がこれです。
こういうの作ります。
Colamone
http://xiidec.appspot.com/colamone/colamone.html
まぁこれは一例で、作り方さえ分かればあとはアイデア次第で色んなものが作れるはずです。
#必要な知識
ゲームの考案は自分にもできそう!
でもゲームの開発は難しそう!
実はそうでもないんです。
####対象読者
- Javascript/HTMLが読める人
- Javascript/HTMLが読めないけど何となく言いたいことは分かる人
この記事ではJavascriptを使います。いわゆるHTML5アプリってやつですね。
サーバーサイドは使いません。ブラウザ側でゴリゴリ動かします。
####開発規模
- ゲームのルールにもよるが筆者の開発したゲーム場合、全部合わせて1500行くらい。
自分の場合は開発に取り掛かってから3日くらいで雑魚AIと遊べるくらいまで作れました。
そこからの改良は何ヶ月かけても終わりが見えませんが、
たった1500行で、コンピュータと対戦できるボードゲームが取りあえずは作れます。
####やらないこと
以下のことはこの記事の中では、やりません。きっと他の人が教えてくれるはず。
- より高度なAIの開発
- 棋譜から自動学習するプログラムの開発
- ゲームを快適に遊ぶための機能の充実
#概略
具体的にどうすればボードゲームが作れるのか、概要を記します。
詳しい内容は次回以降の記事で解説していきますが、
概略だけ見れば「これくらいなら自分にもできる」と想像しやすいのではないでしょうか。
1. オリジナルのボードゲームのルールを考案する。
ここ、重要です。
この記事で扱うのはチェスや将棋のような2人対戦型ボードゲームなのですが、
ゲームのルールによって難易度が全然違います。
御存知の通りオセロよりチェス、チェスより将棋、将棋より囲碁の方が
コンピュータにとって難易度の高いゲームとなります。
ここは志低く「コンピュータに有利なルール」にしてしまいましょう。
そうすれば自ずと歯ごたえのあるAIが出来上がります。
2. 1人プレイできるゲームを作る。
-
2.1 UIを作る。
まずUIを作ります。
盤を表示して、コマを表示する・・・ルールにそって。
ここまで出来上がれば取り敢えず1人遊びは出来ますね。でも寂しいですね。 -
AIを作る。
ボードゲームのAIを作ります。
AI...人工知能...そう聞くととても難しそうですが、
ボードゲームのAIに必要なのは- 探索部を作る。
- 評価部を作る。
実はたったこれだけです。
極めようとすれば無限に奥の深い世界ですが、入り口の敷居は思いのほか低いです。
#Link
★★次の記事はこちら★★
オリジナルのボードゲームをルールからAIまで作る【ルール編】
http://qiita.com/kurehajime/items/44a83211c60eabc305e2
.
できあがりの品として紹介したColamoneのソースや開発記録はこちら。
Colamone -Github
https://github.com/kurehajime/colamone_js
Colamone開発ブログ
http://chmodarwx.hatenablog.com
ニコニコ自作フェスにも応募してます。。。
【WEBボードゲーム】Colamone(コラモネ)【ニコニコ自作ゲームフェス4】
http://www.nicovideo.jp/watch/sm24616525