[Fire and Ice]


- アブストラクトゲームとコンピューター
- [[アブストラクトゲームとコンピューター2]]
- [[アブストラクトゲームとコンピューター3]]
- [[nimをプレーするコンピューター・プログラム]]
- [[Abstract Strategy Games Online Project]]
//----
//''Table of Contents''
//#contents()
* Zillions of Games (ZoG) のすすめ [#c0518f55]
//[[&ref(http://www.zillions-of-games.com/banners/zog-468x60-07b.gif,nolink,Visit Zillions of Games);>http://zillions-of-games.com]]
** INTRODUCTION [#hac77ba0]
Zillions of Gamesは、アブストラクトゲーム、ボードゲームなどのメタ・ゲームエンジンです。制作は、Jeff Mallett と Mark Lefler です。1998年の終わりに発表され、現在の最新バージョンは2.01pです。

ゲームを利用者自身が開発することもできますが、いわゆる「ツクール」系のツールのように統合型の開発環境はなく、エディタを使ってプログラムを作り挙げることになります。

はじめから、40本あまりのゲームがインストールされていますが、
[[ZoGのオフィシャルサイト>http://www.zillions-of-games.com]]や[[The Chess Variants>http://www.chessvariants.org]]など、多くのサイトからフリーのゲームを1,000本以上ダウンロードできます。
チェスやアブストラクトゲームの研究サイト, ファンサイトでは世界的な標準ゲームエンジンといえるポピュラーなソフトウェアです。

当館でも、オリジナルゲームをZillionsプログラムとして配布しております。

** HOW TO GET THE SOFTWARE[#ccf87e1d]
オフィシャルサイトから、Demo版をダウンロードできます。Demo版が気に入れば、同サイトから$24.98でライセンスを取得して、フルバージョンにすることができます。
CDパッケージを注文できますが、日本からだとダウンロードしてライセンス取得するのが便利です。

** HOW TO CREATE GAMES [#k2387136]
ZoGは、配布されているゲームで遊んだり、リアルゲームを購入前にゲームを評価するだけでも十分楽しめます。

自作のゲームを作ると、よりZoGの価値が上がります。館長も、RinneTenseiやFlipFlopなどのゲーム製作において、ゲームの不備やおもしろさを向上させるためのモニタ環境として、ZoGのプログラムを書いて、ルールやボード・ピースの配置、強さを調整して仕上げました。人相手で、こうしたゲームを調整するのは大変ですが、ZoGなら簡単ですし、人には見つけられないようなルール上の不備が顕著になります。

さて、ゲームの開発は、専用の&color(blue){''LISP''};-likeな言語(Zillions Rules File)を使っておこないます。すでにあるアートワークだけですむゲームなら、エディタがあれば、他になにもいりません。独自のボード背景や、駒のアートワークが必要なら、別途用意しましょう。

Data-Orientedなスクリプト言語で、
プログラマは宣言的にゲームルール(''Board'', ''Piece', 勝利条件など'')
を記述するだけで、コンピュータはゲームを矛盾なくゲームをプレーし、
ネットワーク越しにZoGを持っている別の人と対戦することができます。


*** Zillions Rules File (ZRF) [#y17b224e]
ZRFの記述について、詳しくはプログラム中のドキュメントファイルや、オフィシャルサイトからの情報に譲りますが、
ZRFプログラムを作成してみた経験から、言語とエンジンの特色について少しだけコメントしておきます。

ZRFは、言語と書きましたがC言語などのプログラミング言語のような自由度はありません。
基本は、ゲームエンジンの機能を呼び出すための仕組みと、マクロ定義ができるだけだと考えるとよいでしょう。
変数の定義や演算機能は乏しく、強い制限があります。

ZRF中でできることは、ざっと以下のようなことです。
- Boardの定義 (どんな大きさ、形、つながり方)
- Pieceの定義 (駒の働き、名称など)
- Playerの定義 (一人、二人に限らず、何人も定義することができます。)
-- 特殊な機能としてRandomに選択するPlayerを定義できる -- Random関数がないので、サイコロすらふることができません。Random Playerに手番を与え、合法手をRandomに選択させることでRandomを実現できます。
- Description, History, Helpなどの記述
- 予約機能
- マクロの定義
- whileによる繰り返し
- flagの操作
- flagや内部状態でのif判定

変数を持ったり、演算したり、クラスを定義したりは...&sad;...

というと、プログラミングを積極的にやろうと考えている人は、「なーんだ」と思うかもしれません。でも、一度ゲーム((ZRFが得意とするものが良いでしょう))をZRFで記述してみてください。簡単なルールの定義だけで、それなり対戦相手ができあがるのは驚きですよ。&bigsmile;

ZRFが向いているのは、Chessやその派生型ゲームで、逆に向かないのは数を数える必要のある囲碁などのゲームです。数を数えるなど、いわゆる変数や演算能力が必要なプログラミング技術は、マクロやZRFで定義できるflagを駆使しないと実現できません。また、3Dのゲームは容易にボード表現やピースの定義ができますが、2Dゲームに比べて表示やインターフェースのデザインに窮することになりがちです。

ZoGをインストールすると、導入されているゲームに苦手なはずの「囲碁」が入っています。実は、はじめから囲碁用のPlug-inエンジンを組み込んであり、地を数える等の問題を解決しています。

ZRF表記だけでは苦手なゲームでも、囲碁と同様にPlug-inをC言語等で記述すれば、克服できます。ZoGのオフィシャルサイトでは、ZRFでのプログラミングのための資料以外にも、Plug-in開発のための資料や、Plug-inのサンプルソースも公開しています。
そういったZoGのサイトでも配布している、AxiomというZoG上の開発実行環境は、専用のPlug-inによって&color(blue){''Foth''};-likeな独自のゲーム記述言語を提供しています。Axiom Scriptは、ZRFの苦手な'''陣取り'''や'''Connection'''ゲームを記述することが容易です。

AIも同様にC言語などを使って開発したengineをPlug-inとして追加し、特殊なゲームへの対応や能力の強化ができるようになっています。標準の組み込みAI engineに加えて、標準のパッケージで、''Reversi'', ''囲碁'', ''二抜き連珠''のPlug-inが提供されています。

ZRFでゲームを定義すると、同種のゲーム(Variant)の定義を、ZRFの継承機能を使うことで簡単にできます。オリジナルの配布ゲームでも、一つのゲームファイルに、たくさんの派生が含まれています。(将棋, Mini将棋など)

* 専用ゲームコンピューター [#uf4009a5]
** Chessコンピューター [#u3a219c6]
#ref(com_chess1.jpg,right,around)
Chessの専用マシンをご存知でしょうか。日本でも、お店で取りあつかっているところがあります。
コンピュータと対戦するソフトを内臓した専用のコンピューターです。
本格的な木調のボードとピースからポータブルな小型のものまでいろいろな種類があります。米国内だと、$20〜$500ぐらいで入手できます。
レベルの設定が細かくできるようになっています。

だいたいの物は、乾電池やボタン電池などのバッテリーで動く仕様になっています。CPUには組み込みようの小型省電力のものを用いています。
メモリ容量もROM, RAMとも数KB〜数十KB、CPUのクロックも数十MHzですので、汎用のPCに比べるとスペック上は非力に感じるかもしれません。

しかし、Ratingでは、デスクトップタイプのもので1,800〜2,500ぐらいなので、ちょっと腕に覚えのある人でもかなりいい勝負になると思います。

近年のPCソフト((PCソフトは、近年ハイエンドPCに十分なメモリを搭載した状態で、Raiting 2,600〜3,000ぐらいですから、ほとんどの人は勝てません))は、コーチングの機能や棋譜の検索などとても充実した機能があって、トレーニングにはとてもよいのですが、実物のピースを使って対戦するのは一味違います。ポータブルタイプの物だと、移動中や旅先でもゲームができることも吉です。

** 複合ゲーム・コンピューター [#mdaa80fc]
#ref(com_games1.jpg,left,around)
写真は、日本のメーカーから発売されている、ゲームマシンです。Chessだけでなく、Checker, Reversi, nim, Four-in-a-Row, Grass hopper
の6種類のゲームが遊べる優れものです。
いろいろと機能が入っている分、同程度の価格帯の専用Chessコンピューター(同時期に発売されている)と比べると、Chessの実力は少し犠牲になっているかもしれません。&wink;

#clear

** シャンチー・コンピューター [#k8ea8790]
#ref(com_xiangqi1.jpg,center,around)
こちらの写真は、シャンチーのコンピューターです。しかもポータブル!! 上の抽出しの部分に駒を収納できます。
シャンチーもChessと同様に強いソフトウェアの研究が進んでいます。こちらのマシンも十分に((あまりシャンチーは強くない館長よりも))強いようです。

Chessとシャンチーは、その競技人口((どちらも5億人ほどといわれています。))からも市場の大きさが推測できます。
こういった、専用のコンピュータやデバイスの市場もあるのだと思います。残念ながら、将棋はソフトウェアこそありますが、専用のコンピューターを見たことがありません。市場規模から採算を取りにくいこともあるかもしれませんが、将棋ソフトの開発はChessやシャンチーよりも複雑で、人との対戦で低いリソースのシステムに載せて、十分な強さを実現する困難を克服しないといけません。
#clear

** ポータブルChessコンピューター [#q72f6e73]
#ref(com_chess_mini1.jpg,left,around)

&br;&br;&br;
ポータブルなチェスコンピューターは、旅先で人相手にプレーする時も便利です。
駒や盤面を液晶に表示するものも発売されていますが、小さい駒を使ってプレーするものがおすすめです。その際、白番、黒番どちらもプレーしやすい形状のものがよいと思います。黒でプレーすると蓋が邪魔になったり、ボタンが押しにくいものはちょっとがっかりします。

#clear
#ref(com_chess_mini2.jpg,right,around)
&br;

これらの専用マシンを選ぶときには、多くの機能がある物より、思考時間が強いレベルでも待てる程度に短いものがよいでしょう。人と対戦しているときに相手の手を待つのは、相手の感情を推し量ったり番外戦術もあったりといいのですが、コンピューター相手に待たされるのは愉快ではありません&sad;。高速なマシンは、どうしても高価なものになりがちですが、それなりの価値があります。また、ポータブルシステムは、電源の制約もありあまり高速なものはありませんので、覚悟しましょう&huh;

#clear

** Chessデバイス [#z28fb1a7]
#ref(com_chess_pc1.jpg,left,around)
専用Chessマシンの中にも、高級なシステムはPCと接続して、PCにインストールしてあるソフトと連携したり、対戦結果をPCに送信してセーブしたり印刷したりできるものがあります。写真は、チェスコンピューターではないのですが、PCに接続して使うチェスボードです。ボードにはコンピューターが入っていないので、PC上のソフトを使って対戦します。また、人と対戦する時に使うとChess Clockの機能を活用したり、棋譜を自動で記録してくれるなど便利です。
#ref(com_chess_pc2.jpg,right,around)

#clear

* SEE ALSO [#m80e82be]
#related

* Feedback [#u1caae51]
&facebooklike(400x180,action="like",scrolling="yes",show_face="true",layout="standard",colorscheme="light",align="right",float="right",rlmargin="10");
#vote(おもしろい[6],役に立つ[2],興味ない[0],理解できない[0],やってみたい[1],食べてみたい[0])
#vote(おもしろい[7],役に立つ[2],興味ない[0],理解できない[0],やってみたい[1],食べてみたい[0])
//#pcomment_nospam(noname)

TOP   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   [Privacy Policy]