タグ付けされた質問 「patching」

4
ゲームを完全にダウンロードする前に、どのようにしてゲームをプレイ可能にしますか?
Diablo 3とStarCraft 2には素晴らしい機能があります。ゲーム全体またはアップデートのダウンロードが完了する前にプレイを開始できます。 Diablo 3は、UIアセットや、いくつかのレベルで使用されるいくつかのメッシュやテクスチャなどの必須ファイルを最初にダウンロードすると思います。ただし、ゲームを開始するときに、適切なセーブがあれば、好きなレベルを選択できます。プレイ中にこのような遅れは一度も経験していません。開始は常に非常にスムーズです。 これはどのように作動しますか?同様の機能をどのように実装できますか?

4
ゲームのパッチはどのように機能しますか?
コンソールとPCゲームには、開発者が見逃した/修正する時間がなかったバグを修正するためのパッチが時々あります。 私の質問は、これらがどのように機能するのですか? 場合によっては、パッチファイルのサイズは数メガバイトです。小さなファイルがコンパイルされたプログラムをどのように変更できるか理解していません。
37 console  pc  patching 

7
変化するデザイナーデータと変化するプレーヤーデータを管理する方法
プレイヤーが何らかの方法で世界を形作るオンラインゲームを持っています-例えば。世界地図の特定の部分に直接家を建てることができるウルティマオンラインの住宅。これらは、永続的な世界の一部として時間とともに持続する必要がある変更です。 同時に、デザインチームは新しいコンテンツを追加し、古いコンテンツを修正して、新しいプレーヤーのためにゲームを改善および拡張しています。彼らは最初にテスト中に開発サーバー上でこれを行い、その後、ライブサーバー上のプレイヤーの「作業」に自分の作業をマージする必要があります。 ゲームデザインの問題を修正すると仮定します。プレーヤーは指定された領域でのみ構築できるため、デザイナーの編集と地理的に衝突することはありません- 新しいデザイナーデータが新しいプレーヤーデータとマージされるときに競合を避けるためにデータを処理したりデータ構造を配置する良い方法は何ですか? 例1:プレーヤーが新しいタイプのアイテムを作成すると、ゲームはそれにID 123456を割り当てます。そのアイテムのインスタンスはすべて123456を参照します。ゲームデザイナーが同様のシステムを持ち、デザイナーが123456という番号の新しいアイテムを作成するとします。これを回避するにはどうすればよいですか? 例2:誰かがすべてのドラゴンにフランス語のアクセントを与える人気のあるMODを作成します。これには、新しいassignFrenchAccentドラゴンオブジェクトに新しい音声アセットを割り当てるために使用する、新しいオブジェクトと呼ばれるスクリプトが含まれています。しかし、同じ名前のオブジェクトを持つ「ナポレオン対スマウグ」DLCを展開しようとしています-多くの顧客サービスの問題なくこれを行うにはどうすればよいですか? 私は次の戦略を考えました: 2つの個別のファイル/ディレクトリ/データベースを使用できますが、読み取り操作は非常に複雑です。「すべてのアイテムを表示」では、デザイナーDBで1回の読み取りを実行し、プレーヤーDBで1回の読み取りを実行する必要があります(それでも2を区別する必要があります)。 1つのストア内で2つの異なる名前空間を使用できます。文字列を主キーとして使用し、接頭辞に「DESIGN:」または「PLAYER:」を付けますが、これらの名前空間の作成は簡単ではなく、依存関係は明確ではありません。(たとえば、RDBMSでは、文字列を主キーとして効率的に使用できない場合があります。整数を使用して、特定の数(100万など)未満のすべての主キーをデザイナーデータに割り当て、そのポイントより上のすべてを割り当てることができますただし、その情報はRDBMSからは見えず、外部キーリンクは「分割」を通過します。つまり、すべてのツールとスクリプトは明示的に回避する必要があります。 同じ共有データベースでいつでもリアルタイムで作業できますが、パフォーマンスが低下したり、プレーヤーのデータが破損するリスクが高まる場合があります。また、異なるワールドデータを持つ複数のサーバーで実行されるゲームには適用されません。 ...他のアイデアはありますか? これは主にオンラインゲームの問題ですが、開発者がゲームにパッチを適用すると同時にコミュニティがMODを作成するMODにも概念が適用される可能性があります。新しいパッチがリリースされたときにmodが壊れる可能性を減らすために、ここで使用されている戦略はありますか? また、これを「バージョン管理」としてタグ付けしました。これは、あるレベルでは、これが何であるかということです。マージが必要なデータ開発の2つのブランチです。おそらく、その方向からの洞察がいくつかあるかもしれません。 編集-問題を明確にするために、上にいくつかの例を追加しました。この問題は、実際にはネームスペースの1つであり、複合キーを介してストアに実装できると考え始めています。これにより、少なくともマージ戦略が簡素化されます。しかし、私が見ていない選択肢があるかもしれません。

3
PCゲームアップデートシステム[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 6年前に閉鎖されました。 PCゲームをほぼ終了しました(1〜2日でリリースします)。リリース直後にゲームのバグを見つけた場合や、後で機能を追加したい場合に備えて、簡単にネット上でパッチをリリースする方法が欲しいです。 InstallJammerをインストールシステムとして使用しています。インターネット経由でプレーヤーの更新を確認して送信できる優れた更新/パッチプログラム(できれば無料)はありますか? たとえば、プレーヤーが私のゲームを開いた場合、ゲームは最初に更新プログラムをチェックする更新プログラムを開始します。更新が利用可能な場合は、ユーザーに更新の入手先を通知します。自分が所有するゲームエンジンのソースコードを変更することはできますが、車輪を再発明したくないのです。

3
頻繁に変化するゲームの記録/再生システムをどのように設計しますか?
無料のMMORPGで作業していますが、問題があります。 私は(他の人と一緒に)ゲームのビデオ録画システムを開発しています。アイデアは基本的に、タイムスタンプ付きで送受信されたすべてのパッケージと、クライアントからのローカルデータを記録し、それをファイルにダンプします。ビデオを再生するために、ファイルにあるすべてのものをエミュレートします。また、ffmpegを使用してビデオをaviにエクスポートするオプションもあります。 問題は、ゲームのバージョン間で変更を加えると、ビデオの下位互換性(コマンドの追加/削除、機能の変更など)を維持することが困難になることです。この問題を処理する良い方法はありますか?さまざまなプレーヤーを束ねて、ビデオファイルのバージョンごとに適切なプレーヤーを選択する代わりに、 他のゲームがこの状況をどのように処理するかを知っておくと役に立ちます。 助けてくれてありがとう、私の英語は申し訳ありません。

5
保存したゲームの下位互換性を維持するにはどうすればよいですか?
セーブゲーム機能を追加したい複雑なシミュレーションゲームがあります。私はリリース後も継続的に新機能で更新します。 更新によって既存のセーブゲームが中断されないようにするにはどうすればよいですか?これを可能にするには、どのようなアーキテクチャに従う必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.