COMSIGHT

『COMSIGHT』（コムサイト）は、1987年にテクノソフトより発表されたアルゴリズム構築型シミュレーションゲームである。
概要.
本作は3Dポリゴン表示されたタンク同士の対戦ゲームである。本作最大の特徴は「プレイヤーはタンクを直接操作するのではなく、タンクに指示するためのアルゴリズムをプログラムとして記述することで、間接的にタンクを操作する」「タンクを操作するプログラムを、対戦プレイ中は変更できず、対戦前に事前に作成しておく必要がある」という点にある。つまり、タンク同士の対戦プレイ中、プレイヤーはタンクの挙動を見守ることしかできないというわけである。
タンクには「エネルギー」「シールド」「ダメージ」が設けられており、「エネルギー切れとなる」「シールドが破壊され、蓄積されたダメージが許容範囲を超える」「プログラムエラーが発生する」ことで負けとなり、相手側が勝者となる。時間は無制限であるが、動かなくともエネルギーを徐々に消費するため、実質は有限時間で勝負が付く（あるいは引き分けとなる）システムとなっている。各プログラムには対戦成績（対戦数と勝ち数）が記録される。
タンクに指示するプログラムはBASICに似た言語である「BATTLE PROGRAMMING LANGUAGE（BPL）」が用いられており、各種命令（移動、旋回、索敵、ミサイル、ビーム、待機、あるいは内部計算など）に応じて消費エネルギーと処理時間が異なる仕組みとなっている。索敵に成功すると相手の位置が相対座標として取得でき、相手の行動を先読みして現在の相手位置からずれた場所を攻撃する（但し、内部計算にはそれ相応の時間が掛かる）といった凝ったプログラムとすることも可能である。また、文法エラーや0除算など、プログラムエラーが発生するとその時点で自爆してしまい、負けとなってしまう。
発売当時は、パソコン通信を用いた対戦、テクノソフト主催のバトルコンテストなども行なわれていた。
ロボットやタンクなどの対戦ゲームで「プログラムによって、プレイヤーキャラクターの挙動を決定する」「プレイヤーはゲーム中、プレイヤーキャラクターの挙動を直接操作することができない」という性質を持つゲームは、他にも「ロボットコンストラクション R.C.」（エレクトリックシープ）、「カルネージハート」（アートディンク）、「Robocode」（IBM）、「RealTimeBattle」（オープンソースもの）などがあるが、本作は同ジャンルにおいてかなり初期の作品と言える。
ゲーム内容.
BATTLE（対戦）.
前述の通り、ゲーム内容は1対1のタンクバトルとなっている。事前に作成したタンクを2台用意し、両者を対決させるという操作となっており、その操作を行なった後はプレイヤーはタンクの動作に関与することはできない。メーカー作のタンク8種がゲームに始めから用意されており、対戦者に「COMPUTER」を選択することでこれらのタンクとの対戦が可能となる。これらのタンクのプログラムソースは見ることはできない。プレイヤーのタンクのプログラムソースは、ゲーム中も実行中の処理に該当する部分が逐次表示されるようになっている。（非表示にも設定出来る）
ゲーム開始後、各タンクには「エネルギー」「シールド」「ダメージ」ゲージが設けられる。「エネルギー」ゲージは処理に応じて減少する。タンクはプログラム指示によって「ビーム」や「ミサイル」で相手を攻撃することができ、攻撃を受けると「シールド」ゲージ減少する。「シールド」ゲージが失われる、それ以降受けた攻撃によって「ダメージ」ゲージが増大する。先に「エネルギー」ゲージが失われるか、「ダメージ」ゲージが許容範囲を超えると、負けとなる。また、これらのゲージに関わらず、プログラムエラーが発生するとその時点で負けとなる。
CREATE（タンク作成）.
タンクの性能は、大きく2種類の要素によって決定される。一つは「タンクのタイプ」であり、もう一つは「プログラムの性能」である。
タンクは以下の8種類のタイプが用意されており、タイプによってシールドの方向特性（前方からの攻撃に強い、側面からの攻撃に強いなど）に違いがある。
プログラムには、BASICに似た言語である「BATTLE PROGRAMMING LANGUAGE（BPL）」を使用する。指示プログラムはテキストベースで作成する、まさしくプログラミングを行うのと同様の操作となっている。シールドの強弱が面によって異なるタンクを使用する場合、シールドの弱い面（つまり弱点）を相手に晒さないような動きとなるようにプログラムを組むことが、タンクの性能に影響を与える。以下は、単純なプログラムの一例である。なお、これはあくまで説明のためのものであり、アルゴリズムとしては貧弱、処理時間の掛かるIF文を多用しているなど処理効率的にも粗悪なものである。なお、実際にはコメント内には全角文字を含めることはできない。
サンプルプログラムでも一部使用しているが、以下の変数を使用することが可能となっている。
上記のように、敵との相対状況によって処理を大きく変えることができるなど、プログラムを用いてかなりきめ細かな自機の制御が可能となっている。
プログラム作成時の支援として、2Dのステージ上に自機と標的（固定式であり、移動はしない）を設置しての動作確認を随時行うことが可能である。