見出し画像

進捗報告 / 引き続き漫然と箇条書きっぽく


比較的プログラミング作業は快調ですが保険が欲しくてまだ悩む。

Gaucheで書いてたプログラムの汎用パーツが段々そろってきて、いよいよゲーム固有の要素やらデータ構成を考える段階になってきました。

最終的にはRenPy上で実現したいと思っているBooCardiシステムとゲームですが、最悪上手くいかなかった時に、どの段階でどう配布できるかとか、どうでも良いことでグダグダ悩んだりします。

前回とかGauche>Hy >Python>RenPyとか考えていたんですが、どうもHyがVer1.0に向けて破壊的更新を繰り返している様で、現時点で変換ツールやら日本語資料やらあまり参考にならなかったり使えなかったりするようです。

そうだとすると、あくまでもGaucheでは抽象的なデータ構成とかデータ処理の内容とかを考えるのと、事前に具体的なスクリプト内容を書くためのベース、あと数値的なバランス調整のためのツール、という区分けをもう一度再確認しつつ、Python>RenPyは面倒だけれど、変換とかじゃなくて1から移植し直すつもりでいた方が良いかもしれない。まあ大して複雑なアルゴリズムにはならない予定だし。
特にLisp族のリストとPythonで言うリストはかなり違うので、変換プログラム書く方が大変かもしれない。

と言うわけで、まずは粛々とGaucheでプログラムを書き進めるのが正解。
実際のところ、NeoVim+Gaucheで書いていくと、既に全部決まっていることではなくて、自分のアイディアを自分で検討しながら書ける感が凄く心地よく、他のプログラム環境/ゲームエンジン環境では無い感じ。

とは言え、上手くいかなかった時の保険は欲しい。
そっちの保険探しがメインになってしまっては本末転倒だけれども、そこがモヤモヤしていると全然作業が進まなくなるのが私の悪い癖で、でもそれはしようがない。

Python上での保険も念のため考えておく。

当初、RenPyまで持って行けなかったらPython+CLIのゲーム、と思っていて、それ用のライブラリなんかも素敵なものを見つけていたのだけれど、そこまでもっていけるならRenPyまであと一歩なのだから、RenPyで良いのでは?と現時点では思ってます。
とりあえずBooCaDiではやらないと思うけど、Pythonの素敵ライブラリ。将来ゼロからPythonでゲーム作るとしたらこれらを使うと思う。

とはいえ現在は素のPython+CLIで作ることは考えてないので、Lisp / scheme系で作ってますしGaucheメインです。

Scheme上での保険も見えてきた。

現時点ではGaucheで作っているのは自分用ツールの側面が大きいのですが、最悪ここで終わってしまったら、これを配布/公開すると思います。
Gaucheには単独で動作する実行ファイルを作るツールがあるのでそれを利用すると思うのですが、自分の開発環境ではまだ安心できる状態まできてません。

前のバージョンであった0.9.14でのこの機能のバグをたまたま自分が見つけて報告して0.9.15でバグフィクスされたのですが、一番作りたいWindowsでは自分の環境ではいくつかリンクするファイルが見つからずエラーが出てしまっています。
まあでもBooCaDiがちゃんと動き出す頃には解決しているじゃないでしょうか。

現状ではまだBooCaDiはGaucheのrepl上で動くだけで、CLIにしてもPythonの素敵ライブラリみたいなコンソール上でリッチな表示、みたいなものは全然ないんですが、逆に素のschemeに近いので、ちょっと試しにRacketに持って行ったらちょっとした2、3箇所の関数名や書式の手直しで動きました。
現状ではRacketの方が3大OS上で単独実行ファイルが動くのを確認しているので、Racketは無しって以前書きましたが、Racketの目も出てきたかもしれないです。音を扱うのでもRacketの方が楽なのは検証済みなので、BooCaDiエンジンがRacket+CLIで出るというのはアリかもしれない。

それよりは、Gaucheでゲーム構造やらゲームデータの構造を模索しつつ、該当する関数をRenPy上に移植を並行で進める方が効率は良さそうですが。
でもCLIゲームを作るっていうのはちょっとロマンがあるんだよなあ。

Gaucheではクロスプラットフォームでコンソールをコントロールする機能があるので上記のRichみたいにはいかないと思うけれどゲーム画面がデザインできるだろうし、RacketでWindow出すのは面倒そうなのでやらないけれど、単純なCLIで音楽を鳴らせたら、それはそれでもう自分的にはOKだったりするので、これまた良い感じになる。

と言うわけで、schemeで作ることについては最悪軟着陸できそうな地点が見えたので、安心してプログラム作業を続けることにします。

おまけ/DrRacket上での入力補完プラグイン

racketのIDEであるDrRacketで入力補完してくれるプラグインがあった。
こりゃ便利。これならNeoVimでなくてもまだ我慢できるかな。


この記事が気に入ったらサポートをしてみませんか?