ホームページ >バックエンド開発 >PHPチュートリアル >デザインパターンに精通した達人に、Webゲームの基本パターンについて質問したいと思います。

デザインパターンに精通した達人に、Webゲームの基本パターンについて質問したいと思います。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 13:46:10973ブラウズ

デザインパターンに精通した専門家にWebゲームの基本パターンについてお聞きしたいと思います。
簡単な Web ゲームを開発します。すべてのプログラムおよび機能要件は当社によって満たされるものとみなします。現在の問題は、デザインパターンの選択と処理です。

以下は私の初期設定です:

基本分析:

仮想プレーヤー。 私のシステムは UI と操作ボタンを提供できる必要があります。プレーヤーの属性とメソッドを提供します。

仮想世界。 私のシステムは、比較的完全な仮想世界を構築できる必要があります。マップ、都市、建物、店舗、住居、アイテム、価値観(資金、経験値、名声ポイント、スキルポイント)
、バックパック、装備品等があります。これらはすべて php+mysql+javascript に基づいて実装されています。

プレイヤーのインタラクション。 私のシステムには、プレイヤーが相互に対話するための機能が必要です。さまざまな対話操作が可能です。短いメッセージ、バトルの招待、コントロールバトル、マルチプレイヤーバトル、そして一緒にタスクを完了します。等

プレイヤーは仮想世界と対話します。 私のシステムにはプレイヤーが操作できる機能が必要です。さまざまな機能操作を実行できます。
誕生、学習、移動、仕事、ビジネス (売買、交換 (アイテム、資金、アイテムを含む)、カスタムタスク)、コミュニケーション、戦闘 (一連の機能)、
タスクの実行 (一連の機能)機能と時間と報酬の収集)。アイテム取り扱い。資金処理。

定義:

私は上記の内容を個人的に次のように定義します:
ユーザー (プレイヤーが操作する部分) トリガー (最初にイベントをトリガーする必要があります、仮想クラス) アクション (など)移動、仕事などはすべてイベント、仮想クラスです) AbstractItem (地図、都市、小道具などはすべて仮想アイテム、仮想クラスです)

メソッド:
ユーザー: display() doAction ()
ユーザーは実際のユーザー操作のみです。

Trigger:display()doAction()needTime()beginTime()endTime()
Trigger の派生クラスには、即時実行、カウントダウン実行、プレイヤー インタラクション実行があります。

Action: display()doAction()begin()Process()end()
Action は、移動、作業、戦闘、イベントを含む Action の派生クラスであるイベントの開始、処理、終了を提供します。等

AbstractItem: display()get()lose()use()
AbstractItem は、ゲーム全体のすべての仮想アイテムを構築します。 AbstractItem の派生クラス (マップ、都市など) (文字自体を含む)。


モード:
私の個人的な考えは、ユーザーは単なるドライバーであるということです。トリガーはユーザー主導のイベントを提供し、アクションの実行時間を制御します。 AbstractItem は、すべての Action 関連の対応するオブジェクトを提供します。

この時点では、User と Trigger はブリッジ モードになっているようで、Action と AbstractItem もブリッジ モードになっているようです。トリガーとアクションは Abstractfactory モードに似ています。

さらに、タスク関数が必要です。個人的には、タスクとは一連のトリガーの組み合わせであると考えています。前奏、後奏などを含みます。個人的にはTaskクラスは必要だと思うのですが、Actionに入れるのが良いのか、Triggerに入れるのが良いのか、それとも独立させた方が良いのかわかりません。

同時に、これは Web ゲームであるため、インスタントまたは半リアルタイムのインタラクションが ajax を通じてシミュレートされます。専用のタイマー機能がすでにあります(プログラムの実行環境にこの機能があると考えてください)。
表示部分はWebページまたはUIパッケージです。言語パックとタスク ダイアログ パックが必要な場合があります。もちろん、そこで使用される画像も画像パッケージにしたいと考えられます。画像パッケージは UI パッケージに属する場合もあります。

質問:

1. 最上位のモードは何ですか、またはどのモードを選択するのがより合理的ですか?
2. 現在のモデルはより合理的だと思いますか、それともより良い最適化方法はありますか?
3. タスクに参加するには?
4. Ajax とトリガーおよびタイマーをより適切に組み合わせる方法は? (ajax は純粋な関数ですが、Trigger が再度使用されるためです。最も重要なことは、1 つは js で、もう 1 つは php であるということです...)
5. UI パッケージ (UI のセットが複数ある場合があります)、言語パッケージ (おそらく多言語)、ダイアログ パックなど、それらをゲームに合理的に追加するにはどうすればよいですか? (データベース?フォームに入力?ini?)

専門家からのアドバイスをお願いします!コードは必要ありません。アイデアだけで十分です。もちろん、サンプルとコードの方が優れています。


-----解決策---------------------------- -
やったことがない、Ajax はおそらく無理
Ajax は単一の通信であり、http の長い接続を使用しているのを見たことがありますが、連続リクエストの数は非常に多くなります



その他については、オブジェクト指向の考え方に従って設計する必要があります

オブジェクトイベント属性メソッド

------解決策------------------
正直、内容が理解できませんでした
私のWEBGAMEの考えと違います

あと、なぜデザインパターンを使わないといけないのですか?
引用しますが、ハンマーを手に持つと、すべてが釘のように見えます。
------解決策----------------------
パターンの役割を否定しません
ただ、モードにこだわるのではなく、モードを理解した上で使うべきだと思います。 。
------解決策------------------
個人的には、atcion の属性またはメソッドとして、ダイアログ パッケージをアクションとして使用する方が良いと思います
アクションは、トリガーされると、関連するダイアログ情報を提供または出力します。これは、システム レベル
ユーザー レベルの直接の出力です。
------解決策-----
フォロー...
------解決策---------
学んで注意を払う
------解決策----------------------
サーバーはさまざまなオブジェクトのステータスを保存するだけで済みます. ただし、


残りは JS アーキテクチャの問題です。
Web ゲームで最も重要なのは、開発効率ではなく実行効率です。
------解決策------------------
MVC は私が挙げた一例にすぎません。

Web ゲームの場合

JS はメモリとして扱われます。
PHP はハードディスクとして扱われます。

AJAX はデータ ストレージ操作として扱われます。デザインパターン

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。