日経ソフトウエア2025年1月号

雑誌「日経ソフトウエア2025年1月号」で「生成AIでゲームを作ろう 前編」という特集記事を書かせて頂きました。

ChatGPTとMicrosoft Designerを使って、「三目並べ」や「リバーシ」や「ブロック崩し」を作るという記事です。筆者はコードを一切書かず、生成AIに全部コードを書いてもらうというのがポイントです。ゲームで使う画像の素材も生成AIで作ります。

 

今回はボツ画像が一杯できてしまったので、その一部を紹介します。こちらは「ブロック崩し」の画面です。ブロックの並びが正しくないので失敗です。ブロックが左側に寄ってしまうのはAIが座標の解釈を間違っているためです。スプライトは中心で座標と指定するのに、Rectは左上で座標を指定するのですが、それを取り違えてます。

あとChatGPTは「Pygame」と「Pygame Zero」を一部ごっちゃに学習していて、たまにPygame流でコードを書いて、文法エラーが出てしまう時もあります。

 

これもボツ画像です。パッと見て問題なさそうですが、「Score」の表示の優先度が間違っています。こういう仕様のおかしい部分を直すプロンプトを書かないといけません。理系よりも文系のスキルが必要な気がします。

 

これもボツ画像。

作って欲しいゲーム画面の画像をドロー系ソフトで描いて、それを添付して「コードを教えてください」というプロンプトを入力します。

その結果 ↓↓↓↓

指定した通りの見た目のコードが出力されました。ボールの挙動がおかしいですが、色やサイズ感がほぼそのままです。「パドル」や「ボール」とかの説明文と線を間違って画面に描画してしまうのかと思ったら、そんなことはなかったです。

 

これもボツ画像ですが、下書きを添付して、画像を描いてもらった結果です。期待した通りの画像が出力されました。こういう画像分析を組み合わせたテクニックは便利なのですが、画像を用意するのに手間がかかってしまうし、読者さんが再現しにくいのでボツにしました。

 

Microsoft Designerの実行画面です。「ブロック崩し」で使うブロックを描いて欲しかったのですが、どうやってもうまくいきませんでした。妙に斜めアングルの画像が作成されてしまいます。

 

というわけで、今回は試行錯誤の連続でしたが、そのうち生成AIの性能が向上して、一発でゲームが作れてしまうようになるかもしれません。

日経ソフトウエア2024年11月号

雑誌「日経ソフトウエア2024年11月号」で記事を2件、書かせて頂きました。

・ラズパイ5特集 電子工作編

・連載 IoT時代の電子工作 第16回目

 

ラズパイ5の優位性は何か? と考えて、画像処理が速いと思ったので、カメラモジュールをつなぐことにしました。案の定、速かったです。

上の写真はボツ写真です。CSIケーブルをクーラーのフタから出してしまっていて、見栄えがよくありません

 

一通り写真の撮影が終わったあとに「CSIケーブルをLANポートの穴に通せばいい」ってことに気が付いて、全部撮り直しました。これは裏ワザなのか、公式の使い方なのか、よくわかりません。

 

CSIケーブルを公式ケースのフタ側から出そうとすると、クーラーのフタが邪魔になってしまいます。そうなると、ヒートシンクを取り外して、アクティブクーラーに付け替える必要が出てくるのですが、余分にお金と手間が増えてしまいます。外したクーラーとヒートシンクがゴミになるのも困りものです。

結局、ヒートシンクを剥がさず、CSIケーブルをLANポートの穴から出すのが正解だと思います。

 

これもボツ写真ですが、自作のミニキーボードです。ラズパイの画面のスクリーンショットはこのキーボードで撮っていました。Fnc+Pキーでプリントスクリーンキーが押せる仕組みです。

 

ラズパイPico Wとハスキーレンズで作った装置です。ハスキーレンズの物体分類(Object Classification)モードでブロックの種類を認識して、スマホにメッセージを送ります。

日経ソフトウエア2024年9月号

24日発売の雑誌「日経ソフトウエア2024年9月号」で2件ほど記事を書かせて頂きました。

・ラズパイ5入門 基本編(次号で電子工作のネタを紹介します)

・ローカルLLM特集(ラズパイ関連のみ担当)

 

ラズパイのSoCにヒートシンクを貼り付けている様子。これはボツ写真です。今後、アクティブクーラーを取り付ける時には邪魔になるので、剥がさないといけません。

 

ラズパイ5の公式ケース。これもボツ写真です。透明で赤く光っている部分が電源ボタンです。

 

ラズパイ1~4を並べた写真。これもボツ写真。


ラズパイ5で動く「PICO-8」。プログラミング言語の紹介にいいかなと思ったのですが、マニアックすぎるのでボツにしました。

 

ローカルLLM特集でPythonで自作したチャットアプリ。ネットワークを介さずにラズパイ単体でAIが動いているのがポイントです。

 

今回使用したTinyllamaというLLMのモデル。Webブラウザ上で動作をテストできます。日本語がちょっと苦手なようです。

 

ラズパイでELYZAというモデルが使えないかも検討してみました。エラーは出ませんしでしたが、処理が重くて、返答がおかしいのでボツにしました。

ハイドライド3 for PC-8801(ネタバレ)

ハイドライド3 for PC-8801(1987年)」を遊んでみました。自分が遊んだのは「蘇るPC-8801伝説(2006年)」の付録版です。これはプロジェクトEGGのPC-88版と同じだと思います。プロジェクトEGGでは他に「ハイドライド1・2・3セット」も配信しています。最近だとNintendo Switch版のEGGコンソールもあります。

 

戦闘は体当たり方式を廃止して、攻撃のアクションが必要になりました。こんな感じに半キャラずれていると攻撃が当たりません。遠距離系の武器は便利ですが、攻撃力がなさすぎです。

「重量」の要素がかなり厄介です。「こん棒」を買ったら移動できません。最初、バグったのかと勘違いして、ゲームを終了してしまいました。

 

立ち止まっても体力は回復しません。回復には食料($250)が必要です。食料は重くて買いだめできません。空腹になると、ダメージを受けます。

夜には眠らないといけないのですが、宿代が$1000。最初は貧乏なので苦しいです。宿に泊まらないとセーブできません。

というわけで、最初は「何このゲーム?!」という印象だったのですが、慣れてしまえばどうということはありません。説明書をじっくり読むのがおすすめです。80年代のパソコンゲームの中では、本作はかなり親切な部類に入ると思います。

 

経験値と引き換えに魔法が入手できます。「治癒」と「移動」が重宝します。

 

経験値が貯まったら、寺院でレベルアップさせます。パラメータの上昇値はランダムになっているので、気に入らない時はリセットします。

精神力が「1」になっていますが、これは善良なキャラを殺したことのペナルティです。善悪の見分けがつきにくいキャラがいるのがワナです。

 

天空の都市に到着。一人だけ重要な情報を教えてくれます。

 

広告だと「200階建の塔」を売りにしていたのですが、ちゃんとしているのは6階まで。あとはエレベータで移動します。

 

墓場の地下の洞窟。自分のレベルが低すぎて、あっという間に死にました。

ここまではノーヒントで来れたのですが、あとは何をやっていいのか、わからなくなってしまって、88伝説の攻略チャートでカンニングすることに。


ボスキャラ「マッドドラゴン」との戦い。このゲームの目玉です。

空腹とオイル切れがあるので、早く倒さないといけません。自分の場合は真っ暗闇の中で洞窟を徘徊するはめになって、ハラハラしました。

 

ロボットと戦います。心を無にして、延々と経験値かせぎ。途中、「鋼鉄の盾」が手に入るので、装着して重量オーバーの状態で戦います。

 

宇宙空間で意味があるのはココだけ。

宇宙船で「角笛」と「妖精のかぶと」を取ったら帰るだけです。重量オーバーで動けなくなってしまったので、「移動」の魔法で強引に帰りました。

 

スタート地点にある洞窟に入ります。封印を解くには「聖水」が必要です。

 

「聖なる光」を集めます。見える範囲が狭いし、オイルは切れるし、腹は減るし、わかりにくい。このゲーム最大の難所じゃないでしょうか。最後に「バラリスの像」を入手します。「炎の剣」も忘れずに回収しましょう。

もうゲームの終盤に差し掛かっているのですが、重量制限がキツすぎて、防具はかぶとだけです。キャラの成長を間違えてしまったのかも。

 

牢屋で「出口のお守り」を入手。このゲームはアイテムが文字だけで表現されています。「お守り」って、どういう形でしょうか。

 

両替機を売って「VIPカード」に切り替えます。

カードからお金が出せるので、余ったお金はじゃんじゃん捨てます。

 

ラスボス「ガイザック」との対決。何度やっても倒せません。いろいろ悩んだんですが、武器を「炎の剣」に持ち替えたら、あっさり倒せました。倒したらエンディングです。

クリアまでの手順は以下の通りです。

両替機を入手→塔に入る→6階でエレベータを起動→天空の街へ行く→「雲の石」を入手→雲から飛び降りて、水の城へ行く→墓場の地下に行く→洞窟でドラゴンを倒して「ドラゴンの牙」を入手→水の城で「ジムの巻物」を入手→巻物で宮殿を起動→宮殿で「宇宙服」と「宇宙コンパス」「宇宙船の座標」を入手→地面の割れ目から宇宙へ→宇宙コンパスで宇宙船を探す→宇宙船で「角笛」「妖精のかぶと」を入手→墓場の地下の洞窟で「次元のお守り」を入手→「次元の扉」を通って異次元へ→幻想の街で「聖水」を買う→最初の街の洞窟で聖水を使う→「炎の剣」「妖精のヨロイ」を入手→「聖なる光」を浴びて「バラリスの像」を入手→牢屋で「出口のお守り」を入手→深夜に「時のとびら」に入る→「妖精の盾」「妖精」を入手→ラスボスを倒す。

、、、ボリューム満点です。サウンドも良いし、アクティブRPGとして申し分ない出来です。

あえて難点を挙げるとしたら、ストーリーでしょうか。プレイヤーが何のために何をしているのかが伝わりにくいです。1作目みたく勇者がお姫様を助けるとか、ベタなほうが良かったんじゃないかとも思います。

 

ついでにハイドライド 1・2・3セット」も遊んでみました。これはアレンジ版「ハイドライド3」の画面です。一瞬で表示をオリジナル版に切り替えることができます。

 

洞窟はこういう見た目になります。

Over driveモードをオンにすると、厄介な重量制限がなくなります。さらにお金と経験値が異常なほど入ります。もうデバッグモードですね。

 

この場面は「時のとびら」ですが、異次元の入り口のことを「次元の扉」と呼んでいて、名前がごっちゃになります。

 

アレンジ版のエンディング。プレイヤーの服装がファンタジーっぽくないです。ゴーストスイーパーの横島くんみたいな。

 

ベーマガ1988年6月号の広告。もう発売から時間が経っているのですが、まだ宣伝に力が入ってます。宇宙船の存在をネタバレしてます。

 

「チャレンジ!!パソコンRPG&AVG IV(1988年)」のハイドライド3の攻略記事。読み物としても楽しめます。開発者の内藤さんが書いた「Making of HYDLIDE3(全18ページ)」が気合入ってます。

座談会に5ページも費やしています。出席者は内藤さん+山下さん+レスキュー隊6名+福岡から見学に来た1名=計9名。これを読んで、「ハイドライドII」にMZ-2000/2200版があることを知りました。

 

nicotakuya.hatenablog.com

nicotakuya.hatenablog.com

nicotakuya.hatenablog.com

プロジェクトEGG版「ゼビウス」

プロジェクトEGG版「ゼビウス」でカンスト(999万9990点、俗にいう1000万点)できるかどうかを検証してみました。結論から言うと「可能」ですが、気になる部分がちょっとあります。

残念ながら、今はもうプロジェクトEGGでは「ゼビウス」を配信していません(2021年9月30日で販売終了)。当時、終了の予告を見て慌てて買いました。

自分の実力ではカンストは絶対に無理なので、ステートセーブを使いながら進めます。連続プレイはしんどいので、100万点くらい稼いだら、翌日に持ち越します。ゲームパッド連射機能も使いますゲームパッドだとザッパーとブラスターの同時撃ちがやりにくいので、テーブルに置いて頑張って押します。ディップスイッチは全部OFF(初期設定)です。

 

エリア13の超難所。ゾシーのバックアタックです。エリアの最後のジアラ&ギド・スパリオも凶悪です。

 

エリア7の1万点のグロブダー(エリア16にも居ます)。驚くほど弾が当たりません。このタイミングを狙ってテラジが襲ってきます。

 

ここにきてフリーズ。何やっても反応がないので、強制的に終了させるしかありません。

こまめにステートセーブで保存していたので、最新の地点から再スタートしました。

 

またもやフリーズ。もうこれから先は進めないのか!?と思ったら、次はフリーズしないで遊び続けることができました。一体なにが原因だったのか? 謎が残りました。

ついでに書いておくと、プロジェクトEGGのゲームは終了してもタスクが残ってしまうことが多々あります。そういう場合は毎回、タスクマネージャで手作業で消してます。

 

ここも超超難所のエリア16。敵の組み合わせが悪いとどうやっても進めません。テラジとか来たら、もう終わりです。最後のブラグ・ザカートが難しすぎるので、ほぼ毎回死んで強引にクリアしてました。

 

エリア14冒頭の連続ブラグ・ザカート。そして、アンドア・ジェネシスとゾシーで追い打ち。ここも難所ですね。

というか、難所ばっかりです。

 

アンドア・ジェネシス。何度戦っても倒すのに慣れません。ザカートのランダム要素が苦手です。

 

エリア9のガル・ザカート。最凶キャラです。上手い人は避けれるのでしょうけど、ほとんど運ですね。これくらいの位置だとジェミニ誘導が起こります。

 

ジェミニ誘導に成功。このあと死にました。

 

ついに999万9990点になりました。カンストです。996万点以降はエクステンドが連続して、ゲームが終わらなくなります。

ここに来るまで長かった、、、。昔の人はゲームセンターでカンスト達成してたわけですが、信じられないほどの精神力です。6時間くらい連続でボタンを叩き続けるとか、苦行にもほどがあります。ゼビウスへの愛が試されます。

久々にゼビウスを遊んでみると、自機の遅さとブラスターの当たらなさに愕然とします。マップを覚えて、偏差射撃のスキルで、丁寧に地上物を破壊しないといけません。覚えゲー要素とランダム要素が混ざり合って絶妙なゲーム性に仕上がってます。

「そんなのアリ?」と思うような、理不尽な敵の攻撃が多すぎです。アーケードゲームには裏があって、フレンドリーなのは最初の3分だけです。あとはひたすら「もう帰ってください」という開発者の圧を感じます。そのわりに、6万点(最初だけ2万点)ごとにエクステンドするのは優しすぎです。エンディングがないので、上手い人はカンストするまで遊べてしまう。これは開発者が想定してなかった事態でした。ゼビウスはプレイヤーを進化させてしまった作品です。