タグ付けされた質問 「text-based」

9
コンテンツをハードコードするのが悪いのはなぜですか?
ほとんどのゲームはダイアログテキストをファイルに保存しますが、実際にコンテンツ(マップ、選択肢、プレーヤーコマンド、ストーリーテキスト)をゲームコードにプログラムするテキストベースのゲームもいくつか見ました。 いくつかの理由が考えられますが、テキストゲームでさえプログラム外のファイルにすべてを保持する主な理由は何ですか? 実装の詳細は、一般的なXML形式のようなコンテンツを保持し、解析し、XMLファイルから作成された変数に基づいてマップを表示/表示し、XMLファイルを完全に放棄することでほとんど異なりません。これらは両方とも、画面に出力される文字列になります。違いは単なる表記ではありませんか? ゲームの中には、コード内にグラフィック(ASCIIアート?)を保持するものさえあります。私はこれが正しくないことを知っており、それが悪い理由をいくつか推測できますが、主な理由もわかりません。 ほとんどのコンテンツをプログラム外に置くことは非常に人気があります。Dwarf Fortressでさえ実際のASCII文字を使用しませんが、メモリに読み込まれたASCII文字の画像を使用します。 私が主に尋ねるのは、XMLファイルを作成、解析、および操作するのが少しPITAであるためです。ご存知のように...すべてのユニークなダンジョン(コンテンツ)を独自のクラスにするという怠zyな選択肢と比較してください。

7
テキストアドベンチャーゲームでユーザー入力をどのように解析すればよいですか?
テキストアドベンチャーでのユーザーコマンドの解析は、アドベンチャーの単純な「北へ」から、hhgttgでの気が遠くなるような巧妙なものまでさまざまです。 80年代にコンピューター雑誌で素敵なハウツーを読んだことを覚えているようですが、今はウィキペディアの簡単な参考資料を除いて、ネット上でほとんど何も見つかりません。 どうしますか? 更新:Ludum Dareエントリーで可能な限り単純なアプローチを使用しました。

2
IFテキストパーサーを別のゲームに埋め込みますか?
別のゲームまたはアプリケーションに埋め込むことができる既存のインタラクティブフィクションテキスト解析エンジンはありますか? ライブラリとして何かを使用したいと考えています。利用可能なオブジェクトと動詞を自分の側から渡すことができます。ユーザーからの文を解析し、ユーザーが何を要求したかを記述する何らかの構造/ ASTを返します。その後、自分のコードがそのリクエストに基づいて行動できます。 SIRIレベルのものは必要ありません。現在のIFゲームがサポートする簡単な文とアクションは問題ありません。しかし、私はテキスト/文パーサー全体を自分で書くつもりはありません。 これはIfゲームではなく、Inform 7のようなインタラクティブなフィクション言語で完全に書くことはできません。そのエンジンの言語でのゲーム。

5
文法的に正しいMUDスタイルの攻撃の説明を生成する
私は現在、戦闘ラウンドの結果がこのようなものになるテキストベースのゲームに取り組んでいます %attacker% inflicts a serious wound (12 points damage) on %defender% 現時点では、攻撃者の名前を%attacker%に、防御者の名前を%defender%に変更しています。ただし、説明は機能しますが、正しく読みません。ゲームはすべてテキストであるため、一般的な説明に頼りたくありません(「5ダメージでゴブリンへの攻撃を使用する」など、おそらく問題を解決します) %attacker%が参照する場合の正しい説明を生成する方法 「あなた」、プレーヤー?「あなたは…を負わせる」は間違っている 「蜂」、または他の複数形?名前の前に「The」を付ける必要があることをどうにかして知る必要があります %attacker%が「Goblin」などの一般的な名詞である場合、%attacker%が名前であるのとは対照的に、奇妙に読めます。「ゴブリンによる攻撃...」と「アルドリックソードブリンガーによる攻撃...」を比較してください。 通常、テキストベースのゲームはこのような問題をどのように解決しますか?
13 mud  text-based 

1
MUDスタイルのテキストベースの世界でレベル/部屋を整理する
私は小さなテキストベースのアドベンチャーゲームを書くことを考えていますが、技術的な観点から世界をどのように設計するべきかは特にわかりません。 私の最初の考えは、XMLでそれを行うことで、次のようなものを設計しました。XMLの膨大な山をおologiesびしますが、私が何をしているかを完全に説明することが重要だと感じました。 <level> <start> <!-- start in kitchen with empty inventory --> <room>Kitchen</room> <inventory></inventory> </start> <rooms> <room> <name>Kitchen</name> <description>A small kitchen that looks like it hasn't been used in a while. It has a table in the middle, and there are some cupboards. There is a door to the north, …

3
JavaScriptで分岐ダイアログを実装するにはどうすればよいですか?
私は非常に基本的なビジュアルノベルタイプのゲームをJavaScriptで作成しています。私は初心者なので、楽しく学習するためにこれを行っています。計画が悪いため、会話の分岐にたどり着くときに少し問題に遭遇しました。 現在、ゲームのスクリプトを文字列変数に保持し、「#〜」などのタグを使用して各シーンを小さな配列に分割し、ゲームスクリプトが次のようになるようにします。 var script = "Hello World!#~How are you today?" var gameText = script.split("#~"); //gameText[0]= Hello World! これは線形のものに最適ですが、ダイアログツリーでブランチをどのように処理する必要がありますか?この方法は非常に複雑に見えます。各パスの長さを正確に把握する必要があり、変更が必要な場合は頭痛の種になるからです。 これをもっと簡単に行うにはどうすればよいですか?私はゲームをWebランタイムで動作させたいので、バニラJavaScriptに固執しようとしています。

2
シンプルなアドベンチャーゲームでの動作の実装
私は最近、単純なテキストベースのアドベンチャーゲームをプログラミングして楽しませており、非常に単純なデザインの問題のように見えます。 概要を説明すると、ゲームはRoomオブジェクトに分解されます。それぞれにRoomは、Entityその部屋にあるオブジェクトのリストがあります。それぞれEntityに、単純な文字列->ブールマップであるイベント状態と、文字列->関数マップであるアクションリストがあります。 ユーザー入力は次の形式を取ります[action] [entity]。Room適切戻るには、エンティティ名を使用Entityして、正しい機能を見つけるために、アクション名を使用するオブジェクトを、それを実行します。 部屋の説明を生成するために、各Roomオブジェクトは独自の説明文字列を表示し、すべての説明文字列を追加しますEntity。Entity説明は(ETC、「ドアが開いている」、「ドアが閉じている」、「ドアがロックされている」)、その状態に基づいて変更することができます。 ここに問題があります。この方法を使用すると、実装する必要のある記述およびアクション関数の数がすぐに手に負えなくなります。私のスターティングルームだけでも、5つのエンティティの間に約20の機能があります。 すべてのアクションを1つの関数に結合し、それらをif-else / switchで結合できますが、それでもエンティティあたり2つの関数です。またEntity、ドアやキーなどの一般的なオブジェクトや一般的なオブジェクトの特定のサブクラスを作成することもできますが、それだけではこれまでのところはできません。 編集1:要求どおり、これらのアクション関数の疑似コード例。 string outsideDungeonBushesSearch(currentRoom, thisEntity, player) if thisEntity["is_searched"] then return "There was nothing more in the bushes." else thisEntity["is_searched"] := true currentRoom.setEntity("dungeonDoorKey") return "You found a key in the bushes." end if string dungeonDoorKeyUse(currentRoom, thisEntity, player) if getEntity("outsideDungeonDoor")["is_locked"] then getEntity("outsideDungeonDoor")["is_locked"] := false …

1
std :: vector実装を使用してスペルとアイテムを保存するにはどうすればよいですか?
私は現在GameInstituteの本をフォローしていますが、それは私に次のことを求めています: プレイヤーがヒーリングポーションとファイアボールのポーションを購入して運ぶことを許可します。アイテムクラスを定義した後、アイテム配列をプレーヤークラスに追加して保存するか、std :: vectorを使用して保存できます。 std::vector実装を使用したいと思います。これは、アイテムクラスを作成するより混乱しないようですが、その方法がわかりません。ベクトルは動的な値(アイテム、武器など)を格納するための優れた方法であると多くの人から聞いたことがありますが、それが使用されるのを見たことはありません。
10 c++  text-based 

2
Editlineをゲーム内コンソールに使用するにはどうすればよいですか?
作成中のC ++ゲームにゲーム内コンソールを追加したいのですが。コンソールをレンダリングして、問題のないコマンドを解析しますが、テキスト入力と編集の側面(たとえば、左/右キー、バックスペースなどの処理)は、もっと興味深いことに費やすよりも多くの努力のようです。 私はなんとかして、履歴と自動補完を備えたコンソールスタイルのテキスト入力の核心を処理するEditline と呼ばれるライブラリを見つけることができました。私が見つけたのは、標準の入力および出力ハンドルを使用し、readline()それ自体がブロッキング呼び出しです。自分の入力を提供し、コンソールを自分の出力にレンダリングできるようにする必要があります。また、ゲームループが継続して実行されることを確認する必要もあります。 これを行うにはどうすればよいですか?
9 c++  text-based 

4
JavaScriptやPHPを使用したテキストベースのゲーム
JavaScriptまたはPHPを使用して、単純なテキストベースのゲームを作成したいと思います。理想的には、ASCIIテキストを一種のブラックスクリーンの「コンソール」スタイルでレンダリングできるようにしたい(クロールやNethackなどのコンソールローグライク、または古いInfocomテキストアドベンチャーゲームなど)。ゲームはシンプルで、主にテキスト入力とメニュー選択です。 これはJSまたはPHPを使用して簡単に実行できますか。もしそうなら、私にいくつかの指針を教えてもらえますか?そうでなければ、この種のゲームを実行可能ではなくブラウザから実行するにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.