少しずつゲームを作るスレ (960レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
954: Text Dungeon(英語化) [sage] 2025/07/07(月) 22:58:56.10 ID:O48nZ/qv(1/2) AAS
本編を英語化し始めてからようやく気づいたのだが(またこのパ)、
今のやり方だと「続きから」でゲームを再開したとき、一部が英語化されないことが判明した
何故かと言うと、現在の仕様ではゲーム内のアイテムやクリーチャーは
ゲーム開始時に生成用テーブルに従って名前、重さ、体力などの各プロパティが割り振られる
例えば「治療の薬」や「ゴブリン」がそれぞれのテーブルからインスタンス化される
しかし今のやり方では、その生成テーブル(の一部)を英語化しているだけなので、
すでに生成された後のインスタンス(=セーブデータに保存された情報)には反映されない
つまり再開しても英語にならないのである
それで、幾つか対応を考えてみた
(1) セーブデータをロードする時、データ内の全てのインスタンスをスキャンして、
英語化すべきプロパティがあったら英語にセットし直す
(2) インスタンスごとにプロパティを持たせるのではなく、
共通の値を持つプロパティは1つのデータとして共有参照し、そこを英語化する。
(例:ゴブリンの「ゴブリン」という名前は全インスタンスで共通 → 名前は共有参照データとして「Goblin」に置き換え)
(3) 諦める(人生諦めが肝心)
「今日は日本語でプレイしよう」、「今日は英語の気分だな」みたいな感じで
ゲーム再開のたびに言語を切り替える奴はおらんやろ……
正直(3)で誰も困らない気はするのだが、これまで各インスタンスが全プロパティを保持していたのは
はっきりいって冗長すぎた(ゲーム本体は1MB足らずなのにセーブデータは5、6MBあったのはこのせい)ので、
この機に(2)のやり方でデータ構造を見直そうと思っている
何が言いたいかというと、6か月コースが早くも9か月コースになりそうってこと(期間が3か月ずつ延びていく恐怖)
こんなに苦労しているのだから、リリースされたら大ヒット間違いなしだな!(エフォート・ジャスティフィケーション)
955: Text Dungeon(英語化) [sage] 2025/07/07(月) 23:11:10.12 ID:O48nZ/qv(2/2) AAS
で、早速(って言うか、しばらくこれに手こずっていたのだが)ポーションのデータ構造を一部共有化してみた
こんな感じで日本語版でデータをセーブして
https://imgur.com/ZrucGRt.png
タイトルに戻って英語版に切り替えて、ゲームを再開すると……
https://imgur.com/24ZsU6E.png
ちゃんとポーションの名前が英語化されてる!(ご満悦)
https://imgur.com/6LuXkoZ.png
尚、共有化すべきなのは名前だけじゃなく、複数形の名前やポーションの説明文などもある
こういう「一種別について複数のプロパティをまとめて共有化/英語化」したい場合、JSONよりもCSVのほうが扱いやすいので
それ用のCSVを準備することにした、こんな感じ↓
https://imgur.com/PB0TIdg.png
準備するファイルが増えていってどんどん複雑化していく悪寒……
まあ、なるようになーれ(AA略)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s