少しずつゲームを作るスレ (960レス)
1-

1
(11): 1 ◆sszKYtA5zs 2013/04/24(水)09:20 ID:ZfuwJ3du(1/7) AAS
今は何も出来なくても、少しずつ頑張ればいつか凄いゲームが出来るはず。
というわけで、少しずつゲームを作っていくスレッドです。

少しずつゲームを作るスレまとめwiki
外部リンク:www54.atwiki.jp
941: ルナドンぽいの 05/27(火)21:39 ID:LiYeZ7IQ(1) AAS
>>940
元気ですかー!!(故人)
そういえばわしは青森にあるA猪木の墓を訪れたことがあります
意外とこぢんまりとした墓でしたが綺麗にされていて真新しい花や酒などが多く供えられていたのが印象的でした

ってそんなことは置いといて、後押しありがとうございます
そうっすね、やらないことには始まりませんよね
まあ本当にSteamで販売するかは保留にして(大事な決断はなるべく後回しにする製作者の屑)、
英語版はいずれ作りたいと思っていたのでまずはそれに取りかかろうかと思います
942: ルナドンぽいの 06/05(木)22:13 ID:6mDB2sDM(1) AAS
Text Dougeonを.NET FrameWorkから.NETに移行するのに手間取ったりしつつ、ようやく英語版の作成に取りかかる
色々考えたが、ゲーム内のテキストデータをTextDataクラスとしてまとめてJSONファイル化するのが翻訳に便利な気がする

まず手始めにキャラ作成時の「通称」と「名前」のリストをTextDataとしてシリアライズ(JSON化)
出来たJSONファイル(見やすさのためデータ量は適宜減らしている)
画像リンク[png]:imgur.com

これをAI神に「このJSONファイルのValue部分を英訳して下さいオナシャス!」と奉納する
そして下賜されたJSONファイル
画像リンク[png]:imgur.com

ゲーム開始時にこの英訳されたJSONファイルをデシリアライズしてゲーム内のテキストデータに展開するようにして、
ゲームを開始すると……「通称」と「名前」が英語化している!(当然)
省9
943: Text Dungeon(英語化) 06/10(火)21:55 ID:+DfLqwUX(1) AAS
バイナリ化はとりあえず後回しにして(いつものパ)、言語の選択を実装した

↓のように"Language"フォルダに各言語のJSONファイル(ファイル名=言語名とする)を入れると
画像リンク[png]:imgur.com

タイトル画面でドロップダウンリストから言語を選べるようになる
何かロシア語が妙にデカいんだけどフォントの問題かしら?
画像リンク[png]:imgur.com

一応タイトル画面だけ中国語対応してみたw(Steamの4人に1人が中国語ユーザーだとか)
画像リンク[png]:imgur.com

あとはひたすらテキストデータをTextDataクラスにまとめる作業を進め……ているんだけど
これがかなりのボリュームであとどれくらい時間がかかるか見当もつかない
省2
944
(1): Text Dungeon(英語化) 06/12(木)00:32 ID:yZyhP/xw(1/2) AAS
↑でコンボボックス(ドロップダウンリスト)を配置したら、何故か
「常にコンボボックスがフォーカスされ、背景(ユーザーコントロール)にフォーカスを移せない」
(this.Focus()を何度書いても背景にフォーカスを移せない)という現象が発生し、
'1'キーを押してもゲームを開始できないし、'2'キーを押しても続きから始められなくなってしまった
(ただし、クリックすればゲームを始められる)

ネットを検索しても同じような現象を見つけられず、AI神に泣きつきながらあれこれ試した結果、
コンボボックスのTabStopプロパティをfalseにした上で、DropDownCloseイベント発生時に
this.ActiveControl = nullを入れて無理やり非アクティブにしてやると、
コンボボックスの操作後に背景にフォーカスが移ってキー入力が効くようになった

同じような現象が起きて困っている人のために一応ここに記す
省2
945
(1): 456 06/12(木)09:33 ID:1UEcXoJI(1) AAS
FormのプロパティKeyPreviewをTrueにすれば良いような気がするが背景(ユーザーコントロール)が謎すぎて何とも
946: Text Dungeon(英語化) 06/12(木)22:10 ID:yZyhP/xw(2/2) AAS
>>945
レスありがとうございます。
Text Dungeonはフォームは1つ(Form1)で、From1上に各画面ごとのユーザーコントロール
(例えばタイトル画面だったらUserControl_Title、メイン画面だったらUserControl_Mainなど)があって、
ユーザーコントロールを切り替える(.Visible=true/falseする)ことで画面を切り替える仕様になっています
また、KeyPressイベントは各ユーザーコントロールのイベントハンドラ(タイトル画面ならUserControl_Title_KeyPress)で処理しています

で、ユーザーコントロールにはKeyPreviewプロパティがないので、Form1のKeyPreviewをtrueにして
Form1のkeyPressイベントをUserControl_Title_KeyPressに転送してみたところ、>>944の現象を回避することができました
こっちの方がActiveControl = nullなんてことをするより筋のいいやり方かもしれません

ただ、この手法だとフォーカスは相変わらずコンボボックスに残るため
省10
947: Text Dungeon(英語化) 06/15(日)23:33 ID:5+yigztT(1) AAS
相変わらず遅々として進まない、父の日だけにね(ニゴッ
まさかこのスレでこのネタを4回もやるとは思わなかったよ……

英語翻訳は上記のようにAI君にやってもらっているのだが、
単なる作業と思いきや会話していると色々英語の勉強になって意外と楽しい。例えば

中央都市:国の首都であり、高い教育水準を誇っています。 この都市の出身者は技量値が高くなる傾向があります。
の「中央都市」の英訳を幾つかオナシャス!と頼むと

この都市の特徴を考慮すると、以下のような英訳が適しています:
- Capital City(シンプルに「首都」を表す一般的な訳)
- Metropolitan Capital(教育水準が高い都会的な首都を強調)
- Academic Capital(学問や教育の中心であることを強調)
省11
948
(1): Text Dungeon(英語化) 06/19(木)23:51 ID:rg8+gcaO(1) AAS
↑で「20か国語対応いける!」などとはしゃいでいたが、翻訳作業を進めるにつれ、
んなわきゃないことがようやく分かってきた(知力3)

固定の文章だったらその対訳をデーターベース(JSONファイル)に登録するだけでいいが、
ゲームなので当然ながら文章は常に固定ではなく一部が動的に変わるケースがある

例えば「輝くロングソードを拾った」という文章だったら「ロングソード」が「バックラー」になったり、
また、「輝く」が「光る」や「古ぼけた」になったり、ゲーム中の状況に応じて単語が動的に変わるわけだが、
言語によっては冠詞や形容詞が名詞の性(男性名詞か女性名詞か中性名詞か)、数(単数か複数か、言語によっては双数という区分もある)、
格(名詞の文章上の役割、主格、所有格、目的格など)によって変化することがある

例えばドイツ語の場合、「輝くロングソードを拾った」はロングソードが男性名詞で、単数で、直接目的格なので
冠詞はein、形容詞(輝く)はglanzendes になるが、これがバックラーだと女性名詞なので冠詞がeinen、形容詞はglanzendenになる
省12
949: Text Dungeon(英語化) 06/20(金)00:14 ID:4tDnrhMf(1/2) AAS
で、結局どうするかだけど「英語だけ対応してあとは諦める」方向にしようかと(人生諦めが肝心)
もしかしたら中国語(簡体字)にも対応するかもしれない
(中国語には冠詞も形容詞の変化もないようなので比較的楽そうな気がする、気がするだけかもしれないが)

そもそもText Dungeonをローカライズしたいという有志が現れる可能性は0.01ppmくらい(適当)だし、
億が一そんな人が現れたら、その時はその時で対応すればいいと思うのである

一応、固定文でない言葉はクラス化して属性なり変化形なりのプロパティを後からつけ足せるようにしておけば
億が一の事態が発生した場合も柔軟に対応しやくなる、はず
例えばクリーチャーの名前だったら

public class CreatureName
{
省15
950
(1): 456 06/20(金)00:45 ID:CAVCWRzU(1) AAS
こまけえことは気にすんな
誤訳も個性って事にしとけばええんよ(思考停止)
951: Text Dungeon(英語化) 06/20(金)21:22 ID:4tDnrhMf(2/2) AAS
すみません、バックラーは男性名詞でした
なんてこった、これがゲルマン魂ってやつか(意味不明)
>>948の「バックラー」は「プレートメイル」に置き換えてお読みください

 
>>950
そうですね、某ファイナルソードも翻訳がアレで却ってウケた感がありますし(尚、日本でしかウケなかった模様)
JSONファイルでの単語置き換えは簡易翻訳ということで、良かったら使ってください(自己責任で!)という感じにしようかと
952: Text Dungeon(英語化) 06/24(火)22:01 ID:P292I//X(1) AAS
キャラメイク画面の英語化がようやく一通り完了
画像リンク[png]:imgur.com

だが、また細かいところで気になっていて、「通称」「名前」が今はこの順で並んでいるのだが、
英語だと異名や二つ名などは名前の後に来ることが多い
例えば「ドラゴン殺しのローレ」なら「Lore the Dragonslayer」になるので、
英語版では「名前」「通称」の順に変えるか、また、多言語対応するならJSONファイルで順序を設定出来るようにすべきかもしれない

この行き当たりばったりで作るわりに細けえところで妙に悩む癖、どうにかなりませんかね(他人事)
まあ悩んだ挙句、とりあえず保留にするのがいつものパティンなんですけどね

さらに「体力」「技量」「運勢」の3つの能力値は某ゲームブックをパ、参考にしているのだが、
元は英語で「Stamina」「Skill」「Luck」で、「Stamina」は何となくしっくりこないのでVitarityに変えるとして、
省4
953: Text Dungeon(英語化) 06/28(土)00:59 ID:zzXrp4sr(1) AAS
名前などの個別設定画面も英語化完
画像リンク[png]:imgur.com

タイプと出身地は選択すると説明が表示されて、それからEntで決定するように仕様変更
画像リンク[png]:imgur.com

英語
画像リンク[png]:imgur.com

これからようやっとゲーム本編の英語化に移るが、本編もチップツールなどを使って、
アイテムや呪文などの情報を簡単に見られるようにUIを改良したいと妄想している
あと、日本語を英語化するとどうしても文字数が増えがちなので(漢字って便利)、
改行をオートで行うなどメッセージ周りの仕様を変更する必要もあるかもしれない
省1
954: Text Dungeon(英語化) 07/07(月)22:58 ID:O48nZ/qv(1/2) AAS
本編を英語化し始めてからようやく気づいたのだが(またこのパ)、
今のやり方だと「続きから」でゲームを再開したとき、一部が英語化されないことが判明した

何故かと言うと、現在の仕様ではゲーム内のアイテムやクリーチャーは
ゲーム開始時に生成用テーブルに従って名前、重さ、体力などの各プロパティが割り振られる
例えば「治療の薬」や「ゴブリン」がそれぞれのテーブルからインスタンス化される
しかし今のやり方では、その生成テーブル(の一部)を英語化しているだけなので、
すでに生成された後のインスタンス(=セーブデータに保存された情報)には反映されない
つまり再開しても英語にならないのである

それで、幾つか対応を考えてみた

(1) セーブデータをロードする時、データ内の全てのインスタンスをスキャンして、
省13
955: Text Dungeon(英語化) 07/07(月)23:11 ID:O48nZ/qv(2/2) AAS
で、早速(って言うか、しばらくこれに手こずっていたのだが)ポーションのデータ構造を一部共有化してみた

こんな感じで日本語版でデータをセーブして
画像リンク[png]:imgur.com

タイトルに戻って英語版に切り替えて、ゲームを再開すると……
画像リンク[png]:imgur.com

ちゃんとポーションの名前が英語化されてる!(ご満悦)
画像リンク[png]:imgur.com

尚、共有化すべきなのは名前だけじゃなく、複数形の名前やポーションの説明文などもある
こういう「一種別について複数のプロパティをまとめて共有化/英語化」したい場合、JSONよりもCSVのほうが扱いやすいので
それ用のCSVを準備することにした、こんな感じ↓
省3
956: Text Dungeon(英語化) 07/17(木)21:57 ID:BQA9x4Yr(1/4) AAS
Potionのデータ構造を見直したついでに、MODでユーザーが新規ポーションを追加できるようにしてみた
需要があるか分からないが(無い)、以下コード込みで手順を公開

まずMod製作用に公開するAPI(DLL)を用意
画像リンク[png]:imgur.com

全てinterfaceで定義して、ゲーム本体のクラスには直接アクセスしない方式にした
が、全部(または一部)publicにして本体を参照するやり方が簡単でいいかもしれない……次回作はそうしようかしら(10年後)

Mod(DLL)のコード
画像リンク[png]:imgur.com

上のAPIを使って新規ポーションの実装とDLL読み込み時の初期化処理(インスタンス受け取り)を行う
今回は「エリ草ー」(Potionじゃないし)と「ヤバい薬」(飲むと死ぬ)を実装
省9
957: Text Dungeon(英語化) 07/17(木)22:15 ID:BQA9x4Yr(2/4) AAS
そして作成したMod(.dll)をModsフォルダに入れていざゲームを起動すると

怪しいポーションが登場
画像リンク[png]:imgur.com

飲むと……
画像リンク[png]:imgur.com

エリ草―の場合、不確定名を""(空文字)にしているので他のPotionと同様にランダムな名前が割り振られる
画像リンク[png]:imgur.com

飲むと鑑定されて、以後は「エリ草ー」になる
画像リンク[png]:imgur.com
省5
958: Text Dungeon(英語化) 07/17(木)22:23 ID:BQA9x4Yr(3/4) AAS
>>456
以前MOD用APIについて言及されていたと思いますが、
具体的にこんなAPIがほしいとか、こういう機能を実現したいとかありますかね
わしの実力的に対応できるかは置いといて、検討したいと思います
そんな昔のことは忘れたならば無理に思い出すことはないですが
959
(1): 456 07/17(木)23:18 ID:DOoBRGzR(1) AAS
848の発言の事ですかね?
多分アレは自分では無いです。
欲しいAPIがあるかと言われると...無いw
と言うのも人から出されたゲームをクリアしたり出されたお題でゲーム作るのは好きなんですが人の作った物を改造するのは嫌いなんですw
〇〇だったら良いのにと思ったり言ったりはするんですが自分で触ると急に冷めてしまって...嵌ったゲームは逆に縛りプレイを始めてしまうような奴でして...
物語に入り込んでる所メタ発言で急に現実に戻されるのが嫌みたいな?何かめんどくさい奴ですねw
あったら良い機能としてはスイッチかXBoxコントローラーで全部操作可能とか
寝っ転がってやるときはこれが楽でいいんですよね(典型的ダメ人間)
960: Text Dungeon(英語化) 07/17(木)23:39 ID:BQA9x4Yr(4/4) AAS
>>959
あれ、そうだったんですか
すみません、てっきり456氏の発言かと思い込んでいました
確かにModはメタ的というか、特にDLLだとプログラミングなので現実世界に引き戻される感がありますね
コントローラー対応は確かにあった方がいいですね(販売する気なら尚更)
ぼちぼち検討してみたいと思います

>>848
失礼しました
改めて何かご意見や希望等ありましたらお願いします
そんな昔のことは忘れたならば無理にry
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 2.189s*