なぜ開発を開始したか
フリーゲーム界で有名なゲームエンジン「ヴァーレントゥーガ」のexe及びツールが
何者かに削除されるという事件があり、新規タイトル開発が正規の手続きでは出来なくなった。
……じゃあ新しく「〇〇トゥーガ」を作ったら良いんじゃね!?
せっかくだし、ローグライク要素や、技術・内政ツリーといった要素も含めて、
MITライセンスの最強のRTSゲームエンジンを作るかあ~~~~。
現在の進捗その1(顔絵はAIさんに描いてもらいました
現在の進捗その2
思ったこと。技術選定編
・せっかくのゲームエンジン、何を使って実装する?
Unityか、C++か、それともRust?
可視性、保守性、速度、いろいろと考慮すべきことはあるが……
・将来的にはスマホでも出来るようにしたいなあ、じゃあ、Unityか?
でもUnityプロジェクトでOSSって聞いたことがない。あるのか?
それに、ゲーム起動時にロゴが出るのがなあ……
少し調べる。うむ、.NET6だとクロスプラットフォーム開発が出来るんだとか。
MAUIというアーキテクチャーだとスマホ対応も可能!?
一番得意なC#で開発出来るなら、それで行くしかないか(現実的に考えて
思ったこと。インタープリタ編
・「ヴァーレントゥーガ」では独自言語からなる式をファイルに記載することで、内政やイベントを実装出来る。
それと同じことをするには、やはりコンパイラ、というかインタープリタを作るしかないようだ。
というわけで単純な木構造のインタープリタを作った。
しかし。
躓いた。
何故か。
メッセージウィンドウが原因である。
メッセージウィンドウはユーザーのクリックによって、次のメッセージやイベントが読み込まれるのだが……
インタープリタというものは、こういうユーザーとの対話を想定していないのである!
※例えば、ユーザーからの入力次第で次の処理に移ったり、処理そのものを変更するようなコンソールプログラムがありますかな?
scanf?まあ確かにそれはそうなんだが、GUI(WPF)にscanfはありませんぞ。
まあそういうわけです……
が、掲示板に泣く泣く開発停止を報告したら。
助けてくれる人がいた。
おかげで開発を続行することが出来た。
ありがとう、Yutaka-Sawada氏。
思ったこと。設計編。
・基本的に「ヴァーレントゥーガ」と同じ動きが出来れば良い……。
だからある意味では楽。
何しようかな、と思ったら「ヴァーレントゥーガ」を使ったゲームを起動すれば良いだけだから。
・とはいえ、独自色も出すから能天気にはしていられない
例えば要望にあったゲージ付き必殺技。
どう実装すれば良いかは思いつくが、これはゲームではなくゲームエンジンなのである。使われなければ意味がない。
ゲージ付き必殺技の呼び出し方(というかインターフェース?)について悩む日々。
思ったこと。負債編。
・日常生活を送りながらの開発である。
どうしても適当な部分が出る。
(というか適当であることを許せないとソロでの開発は厳しかろう。
・適当な部分が負債となって拙者に襲い掛かって……はいないが、いずれそうなるだろうなあ。
・単体テスト?自動テスト?でもGUIっすよ……。関係ない?ごもっとも。とはいえテストコード書くの大変だなあ。
思ったこと。やる気編。
・夏バテでやる気が出ない
・サウナ行くか
・そうだ!Discordで実装を配信しよう!
・見られているというプレッシャーにより、実装が進む
まとめ
・お体に お気を付けてね OSS(俳句
・ここまで読んで頂きありがとうございます。
このゲームエンジンのリポジトリ
コミッター歓迎!簡単なC#なのでgithubデビューにもちょうどヨシ!