やった! ゲーム!
私はさまざまなゲームプロジェクトに従事しています。 各ゲームを作成するプロセスでは、ゲームデザインを構成する必要があり、膨大な数のニュアンスを考慮する必要があります。 「PvZに触発された」ゲームも開発している場合は、設定を効果的に整理する方法を検討する必要があります。 どうやって? 読んでください。
- フィールド-iPhone画面(iPad);
- 2人のプレイヤー:1人は「上から」、もう1人は「下から」、それぞれに「家」があります。
- 各プレイヤーには、「防衛」と「攻撃」の2種類のゲームオブジェクトが表示される「テープ」があります。
- プレイヤーはゲームオブジェクトをフィールドにドラッグし、「ライブ」を開始します。 攻撃者-先に進む/攻撃するか、立って撃つか、防御的なものは何らかの形で防御します。 防御が残っていない場合、彼らは家を撃ち、家がバラバラになるとプレイヤーは負けます。
このようなゲームでは、バランスをすばやく正確に計算することは非常に困難です。 通常、12個または2個のゲームオブジェクトがあり、それぞれに一連の基本パラメーター(攻撃速度、攻撃力、防御、移動速度、ヘルスユニット数など)と、いくつかの特定のパラメーター(マナの量、運率など)があります。オブジェクトは画面上の任意の場所に配置できますが、レイアウトは非常に複雑になります。
これらのパラメータをすべて理解するには、それらをすばやく変更できる必要があります。 そしてそれらだけでなく、いくつかのテスト構成もあります。 たとえば、2つの攻撃オブジェクトが1つの防御オブジェクトを圧倒できるかどうか(およびその速さ)をチェックします。 パラメーターを選択し、アプリケーションを起動し、2つのオブジェクトをここに配置しました。 より速く必要です。 できればいい:
- テスト構成ですぐにアプリケーションをダウンロードします。
- アプリケーションが外部リソースからゲームオブジェクトのパラメーターをダウンロードするように。
- 適用、テスト(アニメーションなしでも、さらに高速化するため);
- 目的の結果を表示し、「アプリ」を取得します。
このロジックにより、ゲームのバランスをすばやくテストし、さまざまなパラメーターを構成できます。 そして、定量化されたタスクもここに結び付けられている場合(たとえば、石cis紙のバランスが統計的に取得されるようにパラメーターを調整し、パラメーターを自動的に変更(構成を生成))、必要に応じてバランスを調整または自動的に再構築できます。
作業(および効果的な作業の他のパラメーター)を高速化するには、ÅSSを使用すると便利です。
ゲームパラメータを設定するÅSSの例
それでは、ゲームパラメータをロードするシステムには何が必要ですか?
- サードパーティのファイルからデータをダウンロードする機能。
- アプリケーションを再起動せずに更新。
- 便利な作業、アプリケーション内のスタイルの接続。
例として単純なファイルを検討してください;さらに、任意にスケーリングすることができます。 ファイルでは、ゲーム自体のパラメーターを設定し、いくつかのゲームオブジェクトでは、ファイルをstyles_game.jsonと呼ぶことができます。
{ "debug": { "level": "GMDebugLevelAll", "gameSpeed": 100, } "game": { "objects": [ { "id": "Attacker 1", "speed": 1, "attack": 2, "defence": 0.5, "health": 100 }, { "id": "Defence 1", "speed": 0, "attack": 0, "defence": 2.5, "health": 1000 } ], "parameters": { "linesCount": 5, "lineLength": 30 } } }
このファイルをサーバーにアップロードできるように、メインスタイルファイルを作成する必要があります。このファイルをstyles_main.jsonと呼びます 。
{ "@include.game": { "inApp": "styles_main.json", "remote": "https://cdn.server.com/styles_main.json" } }
次に、アプリケーションでÅSSを構成します。 これを行う方法の詳細は、ライブラリ開発者のブログ (@bealex)にあります。ここでは、「スタイラーの操作」セクションのその記事で述べられていることが行われていると想定しています。 アプリケーションに固有の部分に移りましょう。
自動更新
この記事では、ÅSSの注目すべき機能、つまりオンザフライで更新する機能について簡単に指摘しています。 私たちのプロジェクトでは、メニュー内または画面上に直接「更新スタイル」ボタンを作成します(更新が非常に頻繁に行われる場合)。 任意のジェスチャにアタッチできますが、ゲームを作成するため、ゲームプロセスでジェスチャがよく使用され、親指ボタンははるかにシンプルで便利です。 だから、自動更新。 接続するには、次のように記述する必要があります。
MyGameSettings *style = [[MyGameSettings alloc] initWithStyleReloadedCallback: ^{ [self updateGameSettings]; }];
そして、ボタンにコードを添付します。
ASStyler *styler = [ASStyler sharedInstance]; [styler reloadStylesFromURL:@"styles_main.json"];
その結果、ユーザーがボタンをクリックするたびにスタイルが更新され、更新(および削除されたファイルのダウンロード)後にupdateGameSettingsコードが呼び出されます。すべてのオブジェクトのパラメーターを慎重に更新し、ゲームを再起動する(または現在のものを続行する)必要があります。
結論
ÅSSは、構成を操作するための優れたソリューションです。 他のいくつかのソリューションを試しましたが、それらのいくつかは視覚スタイルに関連付けられています(たとえば、CSSに関するもの)。
また、この種のシステムは、分散チームや、ゲームデザイナーが開発者とは別に座っている他のチームで多くの役にたちます。 開発者はテストアセンブリを作成し、ゲームデザイナーに提供し、開発を続けます。同時に、ゲームデザイナーはオブジェクトパラメーターの設定を楽しんで、完璧なバランスを探します。 さらにいくつかのパラメーターが必要な場合は、開発者にそれらを接続するように依頼します。