eraシリーズ改造/バリアント開発の覚え書き

バージョン1-8-0-8で多次元配列のローカル変数、広域変数を定義できるようになると聞いて、今作ってるDA、TAあたりを多用した処理をあとでごっそり見直すことになりそうだなあと考えている。

「グローバル変数の増加は可読性の著しい悪化を招く」という意見もあるみたいだけど、euremoはそうは思ってない。他の言語に見られるクラス変数やスタティック変数だって、アクセス属性をpublicにしてしまえば要は広域変数なわけで、それでもグローバル変数よりマシなのは、クラスや名前空間がラベルの役割を果たすから。
ついうっかり同じ名前のグローバル変数を作っちゃったりしたらそれは悲惨なことになるだろうが、どこかで誰かが使っているかもしれない一文字変数よりはまだ危険性は小さい。
erabasicの文法上、配列は:で添字を指定するわけだから、二〜三次元配列の変数名は名前空間的なものとして機能させられると思う。#DEFINEで定数たくさん作らなきゃいけないし、定数名の被りは避けられないから、そうするとソースコードが汚くなるのを覚悟でプレフィックスをつけて管理するか。集団開発では有用な手だし。

何かっていうと、たとえばレベル毎の必要宝珠みたいなものはどこかにテーブル作って管理するほうがあとあとバランス調整しやすいんじゃねーか、とか、ABL増やしたときに対応する関数まるごと増やしてみたいなことするのしんどいんじゃねーか、口上にしてもいまはテンプレートを用意するからそれコピペでがんばってね、みたいな感じでやってるのだが、そのテンプレート自体の変更箇所が膨大だったりするともうほんとにこつこつがんばるしかない。

euremoが新バリアントを作ろうと思ったのは、べつに新しいシステムが作りたいとかそういうことよりは、単に今あるものを改造していくのがすごく、ものすごーく大変で、ベースにしたeralightですらものすごーく大変で、後から気が変わっても拡張性ゼロみたいなことになっちゃったらやだなあ、という危惧とかもあって、だったら一から構築しなおそう、だったら最終的には新しいバリアントとして起こそう、というところに動機がある(長い……)。

まだABLUPとAFTERTRAINくらいしか作りこめてない。これから大量のCOMをやっつける仕事がはじまる。
しかし、この仕事を終えたころには、「ABLの追加がしやすい」「COMの追加がしやすい」「PALAMの追加がしy」といったような夢のようなバリアント(の雛形)になっているはずだ。がんばりたい。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

リンク

漠々ト、獏
eramaker/eramaker2の開発元の公式サイト。

Emuera - emurator of eramaker
C#で書かれたeramakerのエミュレータ「Emuera」のプロジェクトページ。

eraシリーズを語るスレ まとめ
eraシリーズ全般のまとめ。バリアント情報、改造情報など。

eratoho まとめ
eramakerのバリアント「eratoho」のまとめ。

era板
eraシリーズについての掲示板。

サブページ

Rubiera
Bitbucket上のRubieraプロジェクトページ。Rubieraのソースコードのダウンロードはここで。

管理人/副管理人のみ編集できます