進捗報告 / プログラミング環境の事、いくつか。
NeoVim環境を整えた。
前回書いたようにvim / NeoVimのいじり過ぎて訳分からんになっていた設定周りにナタを入れて、スッキリしました。
NeoVimだけ使う事にした。
Gaucheはvim_goshrelp、vim-gdevで書く。
残りの言語設定周りはdenops.vim、ddc.vim、vim-lspでまとめる。
これだけで随分ストレスが無くなりました。
Gaucheに関して言えば公式ではEmacs推しなんですが、自分はこのNeoVim環境でほぼ満足です。
Doom Emacsも悪くなさそうだった。
「vim系の操作系が良いなあ」と思ってvim使いを志しボチボチ操作も慣れてきたので、一応入れてるEmacsも操作系がvimっぽくなるSpacemacsにしていたりするんですが、とにかく起動が遅いのが気に入らないのでほとんど使ってませんでした。
ですが最近、また別のEmacsカスタマイズであるDoom Emacsを知ってちょっと設定をそっちに変えてみたんですが、起動も早いしメニュー周りもSpacemacsより洗練されているし、ちょっと良い感じでした。
まあ、ゲーム好きとしてはこのスタート画面にはグッときちゃう訳ですな。
Hyの環境も整えてみる。
そんな訳でぼちぼちとGaucheでschemeの勉強を進めているわけですが、最終的にはRenPy上でゲームとして結実させたいので、それに向けての調査や作業も進めております。
それで前から気になってたプログラミング言語Hyをちょっと調べてみてました。
これはPythonで書かれたLispで、文法とかはLuaで書かれたLispであるfennelとかと同じく、文法はclojureに似てます。
Python3.12だとなんかpipが変なことになってたので3.11に戻してHyを入れていじってみたところ、もともとPythonで書かれているだけあって、以前webサービスであったschemeやCommon Lispをpythonに変換してくれるサービスなんかより、ちゃんとしたpythonプログラムに変換してくれるようです。
それにRacketでHy経由でracketプログラムをpythonプログラムに変換するプログラムなんかもありました。(開発途中のようですが)
当然、こうした他言語で書いたLispの先例と同じくHyからpythonのモジュールを利用できるし、hyccというコンパイラでスタンドアロンで動くファイルなども作れます。
今は基礎研究でschemeでゲームのメカニクス部分を模索していますが、それを最終的にRenPyに持っていく際に、Hyに書き直してpythonに変換すればだいぶ手間が省けるかもしれないし、Gaucheではあんまり考えていないBooCarDiエンジンの配布みたいなことも可能かもしれない。
ゲーム完成へのプログラミング作業道筋 / Hyが活用できると良いなあ。
Gauche -> (Racket ->) Hy -> Python -> RenPy
GaucheでBooCarDiを書く
BooCarDiでゲームを書く
HyにBooCarDiを移植する
3-1. 直接Hyで書く
3-2. Racketに移植して変換する
3-3. 自分でGauche>Hy変換プログラムを組むHyでBooCarDiをPythonに変換する
RenPyにBooCarDiを組み込む
まあ前言撤回ぽいので格好悪いですが、Racketはパスしても良さそう。
BooCarDiもバージョンが上がっていくだろうし、その過程でもあまりPythonでは書きたくないので、コアのところはGauche起点で作っていきたいな、と。