せっかくなのでと思ってHSPにvibe codingに挑んでみましたよっと。
コンテストにも応募してみました。
ふふふ。
去年はポストカードがもらえたらしいけど、今年もポストカード、もらえるかな~?
ゲームを作る前に仮画像を大量に作成するためのツールです。
大したもんでもないですが、宜しければ応援くださいませ~。
ADVのゲームとか作るの向けに、こういう仮画像がちゃっちゃと無限に出せるよ、っていうツールです。
いつもキャラクターの数とかを欲張って設計しては撃沈してきたので、先に仮画像を出せたら完成率が高まるんじゃないかという取り組みです。
自分用「こういうの欲しかったなあ」ですね。
Vibe codingとは?
バイブ コーディングは、AI を使用して自然言語プロンプトから機能コードを生成する新しいソフトウェア開発手法です。
乱暴に言ってしまうと、AIのアシストを受けてだかだかと開発していくコーディングのことだ。
特に繊細な情報を扱うやつにノールックで使うのは正気の沙汰じゃねぇなと思うが、きちんとしたレビューを伴ってたり、そもそも個人情報の漏洩のリスクがない場合はいい感じです。
これで結構色々作りましたよ。
ブラウザゲームとか……。
サムネメーカーとか……。
ちなみに応募用の画像も自分のメーカーで作りました。
なんだかんだ、自分で使うツールを自分で開発するのが一番居心地が良いかもしれない。
HSPとは?
歴史あるプログラム言語のひとつ。
メモ帳で打ったHTMLをプログラムに数えないならおそらく一番初めて私が触ったプログラミング言語だったと思います(これか、なでしこだったはず……)。
とはいえ当時(20年くらい前)はそこからとくに発展して天才ハッカーにもならなかったので、ブロック崩しを作って「すごーい!」で終わったものであったのでした。
どっちかというと遊ぶ側専門で、プログラミングコンテストの作品を見るのが好きだったんです。
あっ、反乱軍記はHSPだ!!(大好き……)
今から始めるときに初手でHSPにするかというとちょっと悩ましいところです。
C++に近いところがあって、メモリ管理やその他いろいろ、低レイヤーで自分でちゃんと管理してあれこれしたい人向けの通な感じの言語かも。えーっと例えば、シリアル通信とか。今は便利モジュールがいくらでもあってあんまり考えないでいいんですけど、そういうの使うと暗黙のうちにシェイクハンドのコマンドが違ってどうにも解決できないバグが出て「??????」となることもあるんですねえ。自分でカスタムできる強み。
今ならわかる、「WindowsAPIを簡単に呼び出す」ことのありがたさよ……。
最近3.7になったみたいです。アプデされてて、Windows11でも動くのは「強み!!」という感じがしますね。
HSPにおけるVibeCoding
AIのアシストがあればちょー余裕でしょ、と思われるかもしれないんですが、HSPを手放しで実装させるのは、結構難しかったです。
まず障壁の一つが、Codex、ClaudeなどのコーディングAIがHSPをほぼ理解していないということです。
Pythonなんかがとても得意なのだが、HSPは未知の言語であるようで、ある程度はやってくれなくもないのですけど、まあ十中八九バグを出すわけです。
もう一つが、HSPの扱うソースコードは標準でSHIFT-JISというところです。
コーディングエージェントは、SHIFT-JISに非常に弱い。
一度、UTF-8でやるようにしてそれ用の環境を整えてやったのだが、上手くいかなかったので、もうそもそも全部英語でやらせる⇒必要ならそのあと日本語訳⇒SHIFT-JISは自分で変換する、というのが一番良かったです。
【効果があったこと】
・sampleフォルダを見れるようにしておいて、「分からんかったらsampleを参考にせよ」と言う。
・簡単な命令を1個ずつ積み上げて出来栄えを確認、1命令ずつOKを出す。
たとえば保存するときのファイル名を連番にせよ、というものでも全然とちると全てがダメなので1個1個やる。
(Pythonとかだともっとざっくり「ファイル保存作って。あとファイル名は~」って細かいことを一気に言っても大丈夫だったりするのだが、HSPはそうもいかん。)
・頻繁にバックアップを取って、ダメだったら戻す。
・SHIFT-JISをどうこうするのはあきらめて、英語で全部やらせる(コメントも英語にしてしまえばSHIFT-JISもUTF-8もない)
SHIFT-JISは国産エディタの強みと言えば強みで、「よそは知らんけどウチはこれでやってくから」って言う頼もしいガラパゴスだった気がしますが、今、AIコーディングツールに頼ると「なに???えっ、UTF-8ではない???」って混乱させて文字化けしてファイルを破壊するわけですね。
あと、おまじないですが……。
"C:\hsp36\hspcmp.exe" --compath "C:\hsp36\common" -i "main.hsp" -o "main.ax"
"C:\hsp36\hsp3utf.exe" "=main.ax"
こんな感じで起動できるかだけのコマンドを教えてやっとくと、
⇒エラー⇒なんかおかしいな……⇒じゃあちょっとsampleみてみるか、と自走しなくもない。なくもないレベルで絶対じゃない。ドキュメントに書いといたらええんちゃいますかね。
ほか、ややメジャーではない言語をVibeCodingするときにもこのテクニックは役に立ちそうではあります。