進捗報告 / 勉強期間が続く
Racketのプログラムを読む/universeは大き過ぎ
以前ブックマークしておいたブログのRacketでcli版ノベルゲームエンジンを作るエントリーを改めて読んだり、公開してくれているソースを読むなどしました。
とても丁寧で参考になる記事で、ある意味ほとんどこれ基本部分はこれを使わせて貰えば良いじゃ無いかと思うんですが、やっぱりbig-bang/worldまたはuniverseが引っかかってしまう。schemeを学ぶ、と言う点で最初に作るものでbig-bang依存はなんか嫌な気がします。まあRacketは厳密にはschemeでは無いけれど。
Racketでゲーム以外にやりたい音楽/音響系ではこうしたメインループ的なbig-bangは使われていないので良いし、作ったものを公開するときのデプロイとかはRacketの使い勝手はとても良い。
だけど、schemeも使えるようになりたい初心者の入り口としてはuniverseは大き過ぎという印象。もっと自前のループで良いなあ。
開発環境が調子悪い
vim/neovimが調子悪い
春先で気候の変化が激しいせいか体調が微妙に悪いのだけれど、どうもMac関連もなんか調子が悪い。
今自分は頂き物のMac2台を大切に使っているのだけれど、なにせ10年以上前のモデルをいじりまくっているせいか、予期しない動きをしたりする事もある。特にvim/neovimで思うように編集や開発が出来ないと大変ストレスが溜まる。
今メインにやっている事はBooCarDiがゲームとして面白いかを検証するためのプロトタイプをScheme/Racketで作る事で、どうもRacketをvim書くときに変な挙動をしてしまう。
vim/neovimの設定周りがグチャグチャになりつつあったので、DoomEmacsとかに避難しようかとも思ったんですが、OSが古いせいかそれも上手くいかず、なんとかslimvとかgoshrepl、vim-schemeとかは動くところまで復帰させました。
VSCodeは出来は良いんだけど
実際のところ、VSCodeはよく出来ていると思うし、使用人口が多いからかプラグインの出来も良い。RenPyはVSCodeで書くのが正解だと思うし、haxeもVSCodeで良いと思う。Racketだってなんなら下手したら本家IDEより快適かもしれないプラグインはあったりするし、自分は追加でvim操作をエミュレートするプラグインまで入れているので全部VSCodeでやれや、という話でMSアレルギーがひどい訳でもないんですが、なんかLisp系はvimでサクサクと書きたい欲望がありまして、趣味でやっているんだから、変なところでイラっとしたく無い訳です。
お前が細かいとろころでイラっとし過ぎだ、という声も聞こえてきますが。
ちょっとだけ方針を変える
そんな訳で体調不良とMacの不調でストレスがあって解決しようと色々やってたんですが、環境設定とかやり出すと無限に時間が溶けてしまうのは判っていたので、途中で手を止めました。
そして考える事しばしの後、ちょっと自分内ルールを変えました。
プロトタイプBooCarDiはなるべく素のschemeで書く
少なくとも今作っているプロトタイプBooCarDiは公開しない前提で、なるべく素のscheme上で作ることにします。そしてコンソールアプリにしてサクサク進める。あとvimで書きたいので、今一番vimで問題なく書けるgaucheで書く。
素の状態で書けば、gaucheからRacketにするのもそこまで骨ではないようだし。
Racketは音響用プログラムを書く/使用環境は専用IDEで
scheme自体の学習はgaucheで進めて、racketは音周りの用途で使う。DSLというやつですね。
あと随時gaucheで書いたスクリプトがracketで動くかは確かめてみてます。
RenPyとhaxeはVSCodeで書く
当初これもvimでやりたかったのですが諦めた。
もうこれらはVSCodeを素直に使った方が作業効率が良いです。
haxeで良さげなライブラリ、djFlixel
haxeでちょっと遊んだり調べたりしていたら、良い感じのライブラリを見つけました。
メニュー周りと、文字表示、場面切り替えのツール集なんですが、BooCarDiで考えてる事はこれで十分かな、という感じ。ただ冷静に考えるとRenPyで良いよね、とはなります。
haxe関連はコンパイルも早いし、実行ファイルは軽くなるので良いのですが、Racket/Lisp系の環境やRenPyみたいに実行させながらプログラム修正する、とかは出来ないので、本腰いれるのはやっぱり優先順位的には下がるのかな。
でも完全にデータとプログラムが分離できて、ゲームエンジンみたいなものが作れれば良いのかもしれない。
この記事が気に入ったらサポートをしてみませんか?