duckduckgoのサービスの一つであるduckAIで使えるAIエンジンの4種類に同じ質問をして返ってきた答えの違いによる信頼性の比較
質問は
「70年代から80年代に日本で使われたコンピュータ言語のGAME言語について 説明して」
というのと
そのあとに、「プログラムのサンプルを出してみて」って頼んでみた。
まずは「Mistral Small 4モデル」
この会話は、Mistral AIのMistral Small 4モデルを使用してDuck.ai(https://duck.ai)で生成されました。AIチャットでは不正確な情報や不快な情報が表示される場合があります(詳細についてはhttps://duckduckgo.com/duckai/privacy-termsを参照してください)。
====================
ユーザープロンプト1/1 - 2026/6/5 17:19:22:
70年代から80年代に日本で使われたコンピュータ言語のGAME言語について 説明して
Mistral Small 4:
GAME言語(GAME Language)は、1970年代から1980年代にかけて日本で広く使用された、ゲーム開発やグラフィック処理に特化したプログラミング言語です。主にパーソナルコンピュータ(PC)やホビーパソコン向けに開発され、当時のゲーム開発者や教育現場で人気を博しました。以下に、GAME言語の特徴や歴史、用途について詳しく説明します。
---
### **GAME言語の概要**
1. **開発背景**
- 1970年代後半から1980年代初頭にかけて、日本のパソコン市場は急速に成長し、多くのホビーパソコン(例:PC-8001、PC-9801、FM-7、X1、MZ-80Kなど)が発売されました。
- これらのコンピュータは、当時のゲーム開発者にとって魅力的なプラットフォームでしたが、グラフィックやサウンドを制御するための標準的なプログラミング手法が不足していました。
- GAME言語は、このようなニーズに応えるために、グラフィックやサウンド、入力処理を簡単に扱えるように設計されました。
2. **特徴**
- **グラフィック処理の簡易化**:GAME言語には、スプライト(sprite)やキャラクターグラフィックを簡単に操作するための命令が用意されていました。例えば、`PUT SPRITE`や`DRAW LINE`などの命令で、画面上にグラフィックを表示できました。
- **サウンド処理**:BGMや効果音を簡単に再生するための命令(例:`PLAY MUSIC`、`SOUND`)が組み込まれていました。
- **入力処理**:キーボードやジョイスティックからの入力を簡単に扱う命令(例:`INKEY$`、`JOYSTICK`)が提供されていました。
- **構文の簡素化**:BASIC言語に似た構文を採用しており、初心者でも扱いやすいように設計されていました。一方で、アセンブリ言語に近い低レベルな制御も可能でした。
- **ハードウェア依存の最適化**:当時のホビーパソコンのハードウェア(例:VRAMの構造、サウンドチップ)に直接アクセスできる命令が用意されていました。
3. **主な用途**
- **ゲーム開発**:GAME言語は、アクションゲーム、アドベンチャーゲーム、シューティングゲームなど、さまざまなジャンルのゲーム開発に使用されました。例えば、当時の人気ゲームである『ゼビウス』(ナムコ)や『ドラゴンクエスト』(エニックス)の初期バージョンでも、GAME言語が使用されたと言われています。
- **教育現場**:GAME言語は、プログラミング教育の現場でも使用されました。グラフィックやサウンドを扱うことで、学生にとってプログラミングの楽しさを実感させる教材として活用されました。
- **デモシーン**:1980年代のデモシーン(コンピュータの性能を競う文化)でも、GAME言語を使用したグラフィックデモや音楽デモが制作されました。
4. **主な実装とプラットフォーム**
- GAME言語は、複数のホビーパソコンで実装されました。主なプラットフォームには以下のものがあります:
- **PC-8001**(日本電気):GAME言語の初期実装が行われた代表的な機種です。
- **PC-9801**(日本電気):GAME言語の拡張版が使用され、多くのゲーム開発者に愛用されました。
- **FM-7**(富士通):FM-7用のGAME言語は、グラフィック機能が強化されていました。
- **X1**(シャープ):X1用のGAME言語は、サウンド機能が特徴的でした。
- **MZ-80K**(シャープ):MZシリーズでもGAME言語が使用されました。
5. **GAME言語の命令例**
以下は、GAME言語の典型的な命令例です。これらは、当時のゲーム開発で頻繁に使用されました:
```basic
10 SCREEN 0,1 'グラフィック画面を初期化
20 PUT SPRITE 0,100,100,1 'スプライトを座標(100,100)に表示
30 DRAW LINE 0,0 TO 255,255 '線を描画
40 PLAY MUSIC "CDE" '音楽を再生
50 IF INKEY$=" " THEN GOTO 100 'スペースキーが押されたらジャンプ
60 SOUND 1,440,10 '効果音を再生
```
6. **GAME言語の衰退とその後**
- 1980年代後半になると、C言語やアセンブリ言語、さらには専用のゲームエンジン(例:MSX用のゲームエンジン)が普及し始め、GAME言語の需要は徐々に減少しました。
- ホビーパソコン自体も、16ビット機や32ビット機へと移行し、GAME言語のような特定のハードウェアに依存した言語は時代遅れになりました。
- それでも、GAME言語は日本のゲーム開発史において重要な位置を占めており、現在でもレトロゲームの愛好家や研究者によって再評価されています。
---
### **GAME言語の歴史的意義**
GAME言語は、日本のゲーム産業の黎明期において、多くのクリエイターにとって最初のプログラミング言語となりました。グラフィックやサウンドを簡単に扱えるという特徴は、当時の技術的制約の中で、クリエイターの表現力を大いに広げました。また、教育現場での活用を通じて、多くのプログラマーやゲームデザイナーを輩出する土壌を築きました。
今日では、GAME言語は歴史的な資料として扱われることが多いですが、そのコンセプトや設計思想は、現代のゲームエンジン(例:Unity、Unreal Engine)にも受け継がれています。例えば、スプライトやサウンドの簡易な制御は、現代のゲーム開発ツールでも基本的な機能として提供されています。
---
### **参考資料**
- 『PC-8001 GAME言語マニュアル』(日本電気)
- 『FM-7 GAME言語リファレンス』(富士通)
- 『レトロゲームの歴史』(三才ブックス)
- 『日本のゲーム産業史』(NTT出版)
GAME言語についてさらに詳しく知りたい場合は、当時の雑誌(例:『I/O』、『月刊アスキー』)やレトロゲームの資料を参考にすると良いでしょう。
話しにならないくらい掠りもしない。
次に 「Claude Haiku 4.5モデル」
この会話は、AnthropicのClaude Haiku 4.5モデルを使用してDuck.ai(https://duck.ai)で生成されました。AIチャットでは不正確な情報や不快な情報が表示される場合があります(詳細についてはhttps://duckduckgo.com/duckai/privacy-termsを参照してください)。
====================
ユーザープロンプト1/1 - 2026/6/5 17:18:34:
70年代から80年代に日本で使われたコンピュータ言語のGAME言語について 説明して
Claude Haiku 4.5:
申し訳ございませんが、70年代から80年代に日本で使われた**「GAME言語」**という特定のコンピュータ言語について、私の知識では確実な情報をお持ちしていません。
この時期に日本で実際に使用されていたコンピュータ言語なのか、また「GAME言語」という名称が正確なのかについて、確認が必要です。いくつかの可能性が考えられます:
- その時代に日本で開発・使用された特定のゲーム開発言語だった可能性
- 別の名称で知られている言語で、「GAME」が一部の呼び方だった可能性
- より詳細な文脈や出典がある可能性
**以下の情報をいただければ、より正確にお答えできます:**
1. この言語について知った出典(書籍、ウェブサイト、人物名など)
2. 使用されていた具体的な企業やコンピュータシステムの名前
3. その言語で何をしていたのか(ゲーム開発、教育用、など)
4. 関連する人物や組織の名前
あるいは、この時代の日本のコンピュータ言語全般についてお知りになりたいのであれば、別の形でサポートさせていただくことも可能です。
やんわりと、詳しく知らないと断ってるだけ優秀。
「知らないことを知らないと言えるのは信頼性は高い」
次は 「gpt-oss 120Bモデル」
この会話は、OpenAIのgpt-oss 120Bモデルを使用してDuck.ai(https://duck.ai)で生成されました。AIチャットでは不正確な情報や不快な情報が表示される場合があります(詳細についてはhttps://duckduckgo.com/duckai/privacy-termsを参照してください)。
====================
ユーザープロンプト1/2 - 2026/6/5 17:16:29:
70年代から80年代に、日本で使われたコンピュータ言語のGAME言語について 説明して
gpt-oss 120B:
**GAME 言語**は、1980 年前後の日本のマイコン黎明期に登場した軽量インタプリタ/コンパイラ系のプログラミング言語です。
- **名前と略称**: “GAME” は *General Algorithmic Micro Expression* の頭文字から来ていると記憶されており、ゲーム向けに高速かつコンパクトに設計されたことを示しています。 <citation src="2"></citation>
- **登場背景**:Z80 系 8 ビットマイコン(PC‑8001、PC‑8801、MZ‑80 など)上で、Microsoft の N88‑BASIC が重くリアルタイム処理に不向きだったため、月刊 ASCII に掲載された「GAME 言語」が代替手段として広まりました。 <citation src="2"></citation>
- **対象機種**:MZ‑80、PC‑8001、Apple ][、Commodore 3032 など、複数の 8 ビットマイコンで利用可能でした。 <citation src="2"></citation>
- **主な特徴**
- **高速実行**:アセンブラに比べは劣るが、BASIC よりは格段に速くリアルタイムゲームが組めた。
- **軽量実装**:インタプリタとコンパイラの両方が簡易に実装でき、マシンリソースが限られた環境でも動作。
- **拡張性**:利用者が自作言語(例:MIEP、MIG)を派生させ、インラインアセンブラや簡易 IDE を組み込む試みが行われた。 <citation src="2"></citation>
- **コミュニティと出版**:当時のプログラミング雑誌に多数のサンプルコードが掲載され、読者が手入力してゲームを楽しむ文化が形成された。 <citation src="2"></citation>
- **衰退と残存**:PC の性能向上と BASIC の高速化により次第に使われなくなり、現在は資料が散逸しているが、レトロコンピューティングやエミュレータ開発者の間で懐かしむ対象となっている。 <citation src="2"></citation>
> **要点**:GAME 言語は日本の 8 ビットマイコン時代に、BASIC の性能限界を補う形で登場した、ゲーム開発特化の軽量言語であり、‘General Algorithmic Micro Expression’ という名称が示す通り、コンパクトさと高速処理を重視した点がその特徴です。
--------------------
ユーザープロンプト2/2 - 2026/6/5 17:17:08:
サンプルプログラムを出して
gpt-oss 120B:
以下は **GAME 言語** で書かれた、典型的な「画面上でドットが左右に往復する」デモプログラムです。
(実機は Z80 系マイコン上で動作し、画面は 40×25 文字、各文字は 8×8 ドットのビットマップと想定しています)
```basic
// GAME 言語サンプル – ドット往復
// 画面初期化
CLS // 画面クリア
MODE 1 // グラフィックモード (8×8 ドット文字)
x = 10 // ドットの初期 X 座標
y = 12 // Y 座標(固定)
dx = 1 // 移動量 (+1 右へ, -1 左へ)
LOOP:
// 前フレームのドットを消す
PLOT x, y, 0 // 0 = 背景色
// 位置を更新
x = x + dx
IF x > 38 THEN dx = -1 // 右端で反転
IF x < 2 THEN dx = 1 // 左端で反転
// 新しい位置にドットを描く
PLOT x, y, 1 // 1 = 前景色
// フレームレート調整(約30FPS)
WAIT 33
GOTO LOOP // 無限ループ
END
```
### コード解説
| 行 | 説明 |
|---|---|
| `CLS` | 画面全体をクリア。 |
| `MODE 1` | 8×8 ドットの文字グラフィックモードに切替。 |
| `x = 10`, `y = 12` | ドットの初期座標設定(画面中央付近)。 |
| `dx = 1` | 水平方向の移動ステップ。 |
| `PLOT x, y, 0` | 前フレームのドットを背景色で消去。 |
| `x = x + dx` | 座標を更新。 |
| `IF x > 38 THEN dx = -1` / `IF x < 2 THEN dx = 1` | 画面端で往復させる境界チェック。 |
| `PLOT x, y, 1` | 前景色で新しい位置にドット描画。 |
| `WAIT 33` | 約 33 ms 待機し、30 FPS 相当の速度に調整。 |
| `GOTO LOOP` | 無限ループでアニメーションを継続。 |
この程度のコードで、当時の **GAME 言語** が提供していた「インタプリタ的ながら高速に描画できる」特性を実感できます。実機やエミュレータで試す際は、`MODE` や `PLOT` の仕様が使用機種(PC‑8001、MZ‑80 など)に合わせて若干異なる場合がある点に注意してください。
清々しいくらいに嘘吐きですw 間違っても有料プランじゃ使いたくない。
duckAIの最後は 「GPT-5 miniモデル」
この会話は、OpenAIのGPT-5 miniモデルを使用してDuck.ai(https://duck.ai)で生成されました。AIチャットでは不正確な情報や不快な情報が表示される場合があります(詳細についてはhttps://duckduckgo.com/duckai/privacy-termsを参照してください)。
====================
ユーザープロンプト1/2 - 2026/6/5 17:13:38:
70年代から80年代に日本で使われた、コンピュータ言語のGAME言語について説明して
GPT-5 mini:
1970〜1980年代の日本で使われた「GAME言語」について、要点を日本語で簡潔に説明します。
概要
- 「GAME言語」は家庭用・教育用マイクロコンピュータやパソコン向けに設計された、ゲーム作成を目的とした高水準言語(あるいは命令セット/拡張)を指す呼称で、厳密にひとつの標準仕様を持つ単一言語ではありません。メーカーや雑誌、教育機関ごとに同名あるいは類似の言語拡張が存在しました。
代表的な背景・例
- 1970年代後半〜1980年代前半、日本国内に普及したパソコン(例:PC-8001、MZ-80K、FM-7、X1、PC-8800シリーズ、MSX など)では、BASICを基盤にしたゲーム開発が主流でした。多くの機種で「BASIC」にゲーム用の簡易命令(音、カラー、グラフィック、スクロール、キーボード/ジョイスティック入力など)を追加した拡張や、ゲーム制作向けの専用インタプリタ/マクロ群が提供されました。こうした拡張群を総称して「GAME言語」と呼ぶ場合があります。
- 一部出版社や雑誌(マイコンBASIC系雑誌)では、ゲーム作成を容易にする独自の命令セットやサブルーチン集を「GAME」や「GAME言語」と紹介していました。
特徴
- BASIC互換をベースにしていることが多い:既存のBASIC文法にグラフィック描画、スプライト、サウンド、タイマー、衝突判定などの命令を追加。
- 教育・ホビー向けに簡易化:短いコードで画面描画/音出力ができ、入門者がゲームを作りやすい設計。
- 実行環境:インタプリタ(ROMカートリッジやマシンROM)、雑誌付録のプログラム、あるいはカセット/フロッピーディスクで配布されることが多い。
- マシン依存性:ハードウェア(画面解像度、カラー数、音源)に密接に依存しており、機種間で互換性は低い。
具体例・関連名称
- 各機種標準のBASIC拡張(例:N88-BASIC(PC-8800)やMSX-BASICのGRAPHICS/SOUND命令群など)。
- 「ゲーム用BASIC」「G-BASIC」「GAME BASIC」と呼ばれる市販ソフトや雑誌付録ツール(名称は媒体により多様)。
- 専用言語ではないが、商用ゲーム制作で使われたスクリプトやツール群(マクロ言語的にゲームロジックを書く仕組み)。
歴史的意義
- 初期パソコン普及期に多くのプログラマ/ゲーム開発者を育てた。ホビーでのゲーム制作を急速に広め、後のプロゲーム開発者の育成にも寄与した。
- ハードウェア機能を直接利用する教科書的役割を果たし、ハード寄りの理解(グラフィック描画、サウンド制御、メモリ制約への最適化など)を促した。
参考にするなら
- 特定の機種や雑誌名(例:PC-8801, FM-7, ASCII、Oh!MZ、I/Oなど)を指定すれば、その機種固有の「GAME」拡張やサンプルコードを詳しく説明できます。
必要なら、特定機種のGAME系命令一覧や当時のサンプルプログラム(BASIC)を示しますか?
--------------------
ユーザープロンプト2/2 - 2026/6/5 17:14:27:
サンプルプログラムはどんな感じ?
GPT-5 mini:
以下は、1970〜80年代日本のパソコンで使われた「ゲーム向けBASIC拡張」を想定した簡単なサンプル(疑似BASIC)です。実機ごとに命令名は異なりますが、共通する構成と機能を示します。
簡単なシューティング風ミニゲーム(疑似コード)
```
10 SCREEN 2 ' グラフィックモード(例)
20 CLS ' 画面クリア
30 SPRITEINIT ' スプライト初期化
40 PLAYERX = 160 : PLAYERY = 200
50 ENEMYX = 160 : ENEMYY = 40
60 BULLET = 0
70 DRAWSPRITE 1, PLAYERX, PLAYERY, "player.bmp" ' プレイヤースプライト
80 DRAWSPRITE 2, ENEMYX, ENEMYY, "enemy.bmp" ' 敵スプライト
90 IF INKEY$ = " " AND BULLET = 0 THEN ' 発射
100 BULLET = 1
110 BULLETX = PLAYERX : BULL etY = PLAYERY - 10
120 END IF
130 IF BULLET = 1 THEN
140 BULLETY = BULLETY - 8
150 DRAWSPRITE 3, BULLETX, BULLETY, "bullet.bmp"
160 IF BULLETY < 0 THEN BULLET = 0
170 END IF
180 ' 衝突判定(簡易)
190 IF ABS(ENEMYX - BULLETX) < 16 AND ABS(ENEMYY - BULLETY) < 16 AND BULLET = 1 THEN
200 GOSUB 400 ' 爆発処理
210 ENEMYX = RND(1)*300
220 ENEMYY = 20
230 BULLET = 0
240 END IF
250 ' 敵移動
260 ENEMYX = ENEMYX + SIN(TICK/20)*2
270 DRAWSPRITE 2, ENEMYX, ENEMYY
280 ' プレイヤー移動
290 K$ = INKEY$
300 IF K$ = "A" THEN PLAYERX = PLAYERX - 4
310 IF K$ = "D" THEN PLAYERX = PLAYERX + 4
320 DRAWSPRITE 1, PLAYERX, PLAYERY
330 ' フレーム更新
340 WAIT 33 ' 約30FPS
350 GOTO 70
400 ' 爆発サブルーチン
410 DRAWSPRITE 4, ENEMYX, ENEMYY, "explosion.bmp"
420 SOUND 400,10
430 RETURN
```
注目点(短く)
- SCREEN/CLS:グラフィック初期化。
- SPRITE命令群:DRAWSPRITE, SPRITEINIT のような機能が雑誌やマシン拡張で提供された。
- INKEY$:キー入力のポーリング。
- SOUND:簡易音声命令。
- WAIT/TICK:フレーム制御や時間管理。
- 衝突判定は座標差で簡易実装するのが典型。
特定機種(PC-8801, MSX, FM-7 など)の実際の命令でのサンプルが要れば、どの機種向けに出すか指定してください。
日本独自のプログラム言語だから情報がないっていう言い訳もあるかも知れないが、知らないなら知らないと解答するのも信頼性を示す形だと思うんだが。
最後にこれだけだと AIに対する懐疑派なのかと誤解されるので
Yahoo!のAI agent!の解答を出してみる
GAME80というプログラム言語について判ることを教えて
昔の雑誌発の小さな言語に興味を持たれたのですね。GAME80は「ミニコンパイラ」の代表格のような存在です。
💡 GAME80とは何か
GAME80は、インテル8080用の機械語を出力する小さなコンパイラで、
8ビットマイコン時代に雑誌「ASCII」などで紹介された「GAME言語」シリーズの一つです。
作者は中島聡さんで、1979年ごろに発表されたとされています。(mztn.org)
🧱 言語とコンパイラの特徴
- 対象CPUは8080系
- コンパイラ本体は約5.5KB、約200行弱と非常にコンパクト
- 自分自身と同じGAME系言語で書かれている自己記述コンパイラ
- 単純な文法だが、密度の高い記述が可能なよう設計されている(mztn.org)
GAME80が扱う「GAME III」などの文法では、記号を多用した独特の表記が使われます。
例えば、
- GOTO が
#= - GOSUB が
!= - RETURN が
] - IF が
;=
というように、BASIC風の制御構造を記号に割り当てて短く書けるようになっています。(mztn.org)
🔁 コンパイル方式
GAME80コンパイラは、ソースコードを二回読みながら8080機械語を生成します。(mztn.org)
- 1回目
行番号と生成されるアドレスの対応表を作りながら、仮のジャンプ命令を出力 - 2回目
対応表を元に、GOTOなど前方参照を含むジャンプ先アドレスを確定して出力し直す
行番号とアドレスの対応は、配列変数 L の領域に「行番号」「アドレス」を交互に格納して実現されています。
🔍 実際の記述スタイルのイメージ
ソースは、BASICに似た行番号付きですが、配列変数を「ポインタ的」に扱い、
A:0)=x A=A+3 A(-1)=y のような書き方でメモリ上にコードを書き込んでいきます。
BASICというより、かなりC言語的なポインタ操作に近い感覚です。(mztn.org)
また、GAME80向けのサンプルゲームとして「イスカンダルのトーフ屋ゲーム」などの作品も、
雑誌記事の形で残っています。(mio.servequake.com)
全部上げるとキリがないので、冒頭の一部だけです。
理想的な模範解答でビックリです。無料のサービスでここまで答えてくれてます。
コメント
コメントを投稿