スレッド作成 : あきよしさん
(1998/4/15 17:51:13)
コアウォーズ や C-Robot という古典を初め、最近では PS の「カルネージハート」など、マニアの心を擽るけれども絶対にメジャーにはなりきれないゲームジャンル。
まずは前振り
あきよし さんのコメント
(1998/4/15 17:53:16)
いきなり私的な近況で申し訳ないのだが、最近 4bit マイコンのエミュレータを趣味で作っています。
で、結構 CPU のエミュレートは簡単だなぁ・・・と思ってみると、急にコアウォーズが作りたくなってきた。
そんなわけでコアウォーズの話題なのです。
まだ前振り (^^;
あきよし さんのコメント
(1998/4/15 18:03:51)
コア(core)というのは、小さなフェライト磁石を交差させた電線の交点に置いた、古い主記憶装置の名称です。
正確には「コアメモリ」といいます。
今でも UNIX でメモリをファイルに落とすことを「コアダンプ」などというのは、この時代の名残です。
で、メモリの中でプログラムが戦うという話は、実は古い小説に出てくるのです。
まだコンピューターが一般的でなく、パソコンはおろかマイコンも登場していない1970 年代前半に書かれた「HARRY」(だっけかな。読んでいないのでわからん)というのがその小説で、そのなかにこんな話が出てくるのです。
----
ある技術者が、実験的なプログラムを書いた。
そのプログラムはランダムに電話をかけ、コンピューターに接続できると、自分自身のデータを相手に送り込み、実行させ、その後自分を消し去る。
このようにしてコンピューターからコンピューターへと渡り歩くのがこのプログラムの機能だったのだが、コピーが繰り返されるうちに異変が起こった。最後の「自分自身を消し去る」プログラムが、機能しなくなったのだ。
技術者は、このプログラムを消去するプログラムを作り、すぐに退治をしたので、大問題にはならなかった。
----
小説の中では、これは技術的な問題の比喩として語られるのだそうですが、この二つのプログラムの名称までも言及しています。
増殖するプログラムは「ウィルス」、退治するプログラムは「ワクチン」というんだそうです。
コアウォーズ
あきよし さんのコメント
(1998/4/15 18:20:41)
上の小説は、ヒットしたわけではありませんが、コンピューター技術者の間では話題になったようです。
技術的にそんなことが可能なかどうか、試作する人間も出てきました。
中には、単純に「ウィルス」と「ワクチン」というものを作るのではなく、2つのプログラムが相手を打ち負かそうと戦う、というように想像力を豊かにする人もいました。
そうして作られたのが、コアウォーズです。
コアウォーズは、仮想 CPU である Mars の上で、RED Code アセンブラでアセンブルされたプログラム2本を実行し、なりゆきを見守るゲームです。
Mars は「完全相対アドレッシング」「ノンレジスタアーキテクチャ」という、非常に偏った CPU です。
まぁ、ゲーム専用なのでこのほうが好都合なのですが。
完全相対(アドレス指定が、現在の実行番地からの相対で行われる)で、ノンレジスタ(演算は、かならずメモリに対して行われる)なので、プログラムはどこにでも置くことが出来ます。
使えるマシンコードは10種類ほどあるのですが、重要なのは「0」の Halt (プログラム停止命令)と、Split 命令でしょう。
コアウォーズでは、最終目標を、「相手のプログラムをHalt によって停止させる」ことに置きます。
そのため、ひたすら0を書き続けてメモリを塗りつぶすのがもっとも単純な基本戦略です。(ドワーフと呼ばれます)
しかし、潰されてそれで終わり、ではつまらないので、防御のために Split を使います。この命令を実行すると、最大 30 まで、プログラムを並列実行できるのです。
ただし、並列実行時は、プログラムの速度は遅くなります。これは、相手との戦闘においては不利ですので、慎重にしなくてはなりません。
---
実はコアウォーズで一番恐ろしいのは「総インプ」という現象です。
インプ(小鬼)というのは、「現在の番地を、+1 番地にコピーする」という命令コードです。これは、永久にこのコードを実行することになり、しかも動作は最速です。
やがて凝ったプログラムもインプに塗りつぶされ、Halt されないままに全タスクがインプになってしまうことがあるのです。
この場合は、勝負がつかないので「ドロー(引き分け)」なのですが、結構良く起こるのですよね・・・・ (^^;
C-ROBOT
あきよし さんのコメント
(1998/4/15 18:40:10)
コアウォーズは本当に「プログラム同士が戦う」という珍しいゲームなのですが、「プログラムされたロボット同士が戦う」というゲームは結構多いかもしれません。
その古典は、「C-ROBOT」でしょう。
これは、C 言語でロボットをプログラムして戦うというゲームです。
C からはロボットの動作が関数として呼び出せるのですが、実際のロボットの動きは、期待通りには動いてくれないようになっています。
たとえば、関数で「全速前進」をさせても、ロボットには慣性が働いていて、全速になるには若干の時間が必要なのです。
もちろん、急停止もできませんし、砲塔の旋回にも時間がかかります。
このようにして、1000x1000 メートルと定義されたフィールド内で、敵ロボットを索敵してミサイルを撃ち込み、破壊すれば勝利です。
C-ROBOT では、最大4体までのロボットでのバトルロイヤルが出来たと思いました。
プログラミングゲームというと
笹井シンヤ さんのコメント
(1998/4/15 21:25:18)
コムサイトとかアルゴウォーズなんかも入るわけですよね。私は一時期、この手のやつをBASICで作ろうとしていましたが、断念しました。さすがにMZ-1200には荷が重かったってのもありますが。
最近ではコナミが出してるゲーム(名前失念)をやりたいなぁと思ってます(体験版がおもしろかったもんで)。
ブートエラー
よし坊 さんのコメント
(1998/4/16 00:04:17)
ごそごそごそ。あ、あったあ!
カッチン(FDのドアを閉めた音)
ピッポ(電源を入れた音)
ガガガガ(お、おい大丈夫かぁ)
ブートエラー(T_T)
仕方ないエミュで我慢するか...
これだけで判る人はおじさんです(^^)/
とまああえなくAppleIIでの起動に失敗した私はエミュでの「RobotWar」に興ずるのであった。
いやあ初めて知りましたよ。このプログラムに原典があるなんて夢にも思わなかったなあ。世の中は広いっ!でも自分が作ったロボットと人の作ったロボットを戦わせるのって今日のネットワークゲームの基本みたいで微笑ましいなあ!
あ、くそ!こねやろ!人が横でこの文書を書いてる隙に好き放題しやがって!ちょっと待ってろってば...(^^;
RobotWar
あきよし さんのコメント
(1998/4/16 11:04:33)
あぁ、そういうのもあった。
多分、C-Robot の方が後ではないかな?
C-Robot は「特殊な専用言語ではなく、C言語でプログラムが組める」というので一躍有名になったゲームです。
それで「古典的名作」として紹介したのですが、これ以前にもロボット対戦ゲームは結構出ています。
アルゴウォーズって、MSX の奴でしたっけ? 持っていたけど、今一つだった覚えがあります (^^;
コナミが出しているゲーム・・・良く知っていますね (^^;
あれは高校の後輩が作ったゲームなので、買ってやっておくんなまし (^^;
R.C.
あきよし さんのコメント
(1998/4/16 11:09:54)
ロボットコンストラクション、というゲームが X68k で出ていました。
このゲームは、ロボットのパーツを組み合わせてロボットを作り、そこにフローチャートを組み込むことで動作させて戦うゲームでした。
「フローチャート」なのがみそで、プログラム言語ではないのだよね。
でも、これでは、わかりやすい反面柔軟なプログラムを組むことは出来ませんでした。
個人的には、ロボットのパーツの組み合わせとかを使用せず、純粋にアルゴリズムだけで戦うゲーム( C-Robot など)の方が好み。
おおっ!同胞よ!
よし坊 さんのコメント
(1998/4/17 02:12:14)
R.C.と聞くとなんかこう燃えてきますな。
あっ!F1とか4駆とかの話ではないんですか?それは失礼しましたっ(笑)
そうですね。我々プログラマもアルゴリズムを考えるのが商売ですしねっ。実際「カルネージハート」なんかもヌルいゲームだったしなあ...。
R.C.
Saiey さんのコメント
(1998/4/17 09:53:36)
私もこれ買いましたけど、あんまりおもしろいと思わなかったです。でも、今でもNIFTYあたりで大会とかやってるみたいですね。NIFTYやめちゃったんで、詳しくはわかりませんが。
こういうフローチャート式っていうか、完全GUIのこの手のゲームって、R.C.が最初?
ファーサイドムーンとかって、このジャンルに入れて良いのかなぁ?
ハウメニ・ロボット
あきよし さんのコメント
(1998/4/17 11:28:07)
これはプログラムはしないのですが、なんとなく「プログラムゲーム」の香りがしました。
アートディンク作のパズルゲーム(?)で、ロボットを操作してミッションをこなします。(どんなミッションだったか忘れたが (^^; )
自分はロボットを遠隔操縦している、という設定なのですが、ロボットは無線機を光発電によって動かしているので、明るいところでしか操作できないのです。
暗闇に入ると、明るいところで操作された間の記憶から判断して、自立行動を起こします。
そして、暗闇の中で電球に電池をつなげば、再び操縦が可能になるのです。
なんか、どういうふうに学習しているんだか全然わからなくて、意味不明のゲームだったんですけどね。
で、これの続編・・・と呼んではいけない (^^; H.R.2 というゲームは、純粋なプログラムゲームでしたね。
こちらも、プログラム対戦ではなく、「プログラムしたロボットを使って高い塔を建てる」という目的で、独特でした。
遊んでみたかったけど、遊んでない (^^;
H.R.2
Saiey さんのコメント
(1998/4/17 12:13:47)
塔を建てる!ありましたねぇ。PC-98用でしたっけ。やってみたかったです。
今手に入るWin95用のこの手のゲームで、テキストでプログラムをばりばり書くタイプのって、何かどなたかご存じないですか?
ちょっとやりたい気が・・・。
RC
なめたん さんのコメント
(1998/5/1 03:57:55)
R.C.は一人でやってもつまらないです。
だれか、親友とか兄弟とかとやらないとだめです。
うちでは、俺が実家を離れてるとき兄キがロボット鍛えて、たまに実家かえるとけっこう強くなってたりするんで、そこでまた俺のロボット強化するというようなイタチごっこで、けっこう長くたのしんでる。
ただ、やっぱし、地味だし時間かかるし、人によっては面白くないと思う。RPGとかSLGがいやな人はやっぱしとっつきにくいかな。
まあ、俺も一人だったら、これはやらないだろうな。
フロンティアブレイン
笹井シンヤ さんのコメント
(1998/5/6 03:41:33)
ビデオカードに付いてきた体験版が面白かったんで、買って来ました。
で、これCD-ROMがないと動かん。せっかくAMiTYに積んでモバイルFBとしゃれ込もうと思ったんですが。家ではそんなに時間が取れないから、しばらくお預けになりそうです。
#そうでなくても、やってないゲームいっぱいあるし。買ったはいいけど。
#サクラ2とか、White Albumとか、バーニングレンジャーとか。
ううっ、対戦やりたくなってきた
よし坊 さんのコメント
(1998/5/7 06:00:55)
うっ、このページかっこよい。
でも対戦でまけたらプログラマとしてのプライドが...