UnityでのSynthetyゲームの開発、最適化、リリース

画像

全てにおいて良い日。最後に、私のモバイルゲームSynthetyがリリースされました。Habrは助言と助けを借りてしばしば救いました、そして私は自分の開発経験をゼロから共有することを決め、達成した道を要約しました。

すべてについて少し短い。

Synthetyはクエストアドベンチャーゲームです。ゲームの目的は、現在の場所から次の場所への道を見つけることです。これを行うには、キャラクターと通信したり、周囲のオブジェクトと対話したり、パズルを解いたりする必要があります。開発の開始からゲームのリリースまで、約6か月間飛行しました。ゲームはC#のUnityエンジンで開発されました。この投稿では、ゲームの開発とリリースのヒントとコツを共有したいと思います。

コンテンツ


  1. 開発と最適化。
  2. Googleのリリースと収益の創出。
  3. さらなるアクション。

1.開発と最適化


私はモバイルゲームを4つのカテゴリに分類します。タイムキラーゲーム、ソーシャルゲーム、mmorpg(まあ、いずれにしても、彼らはそれを自分たちと呼んでいます)と大気ゲームです。私はアートに最も近い雰囲気のあるゲームのジャンルを選び、ゲームはアートの一部であると考えています。このジャンルのゲームはさまざまな方法で作成できますが、私は個人的にゲームを作成するための基本的な条件として、生きている世界の感覚、キャラクター、プロットを選択しました。これには、雰囲気のあるグラフィック、手の込んだレベルのデザイン、世界のオブジェクトとの対話性が必要です。これらすべてがゲームの最適化に影響します。

1.1ゲームの最適化


シンプルなビジュアルとステージ上のオブジェクトの数は少ないが、レベルの数は非常に多い(約200〜400)ハイパークールとは異なり、私のゲームではレベルの数ではなく品質に重点が置かれています。しかし、品質には最適化が必要です。Unityで使用した主な最適化ツール:

  • ライトマッピング
  • オクルージョンカリング
  • メッシュベイカー
  • その他の最適化。

1.1.1ライトマッピング

インターネットにはライティングのベイクに関する多くの投稿がありますが、少なくとも設定の開始点となるベイクパラメーターの特定の値を見たことはありません。したがって、3台のマシン(MacBook pro、Dell G17、およびデスクトップコンピューター)でテストされたパラメーターの画面を添付します。

画像

ベーキングの結果はどこでもほぼ同じです。これらの設定に従ってベイク処理を行う例:

画像

実際には、ここから、3つのパラメーターのみを変更して目的を達成することで、シーンのベイク処理を構成できます。

  • ライトマップの解像度(品質は向上しますが、ベーキングテクスチャのサイズが大きくなります);
  • 直接および間接の寄与(どの光源から、指向性光源またはPointLightやSpotLightなどのすべての非直接光源からの影響がより大きくなるか);
  • 間接強度(特に、環境光の強度。グラデーションを使用している場合でも、スカイカラーのみが考慮されます。カラーパラメータが設定されている場合は、アンビエントカラーです)

1.1.2オクルージョンカリング

ここではすべてが非常に単純です。このツールの主な目的は、画面内のトライの数を減らすことです。標準のUnityパラメーターで十分です。最小オクルーダーと最小穴を小さくすると、データサイズが大きくなりますが、トライスの大幅な削減は見られませんでした。ヒント:正射投影カメラを使用する場合は、表示されないオブジェクトではなく、表示されるべきオブジェクトがカメラに入るようにクリッピングプレーンを構成します。

1.1.3 MeshBakerは

モデルを1つにまとめてベイクし、Drawcallを完全に削減します。良い無料のツールがあります。

64kトリスのバッチでモデルを焼くことができます(64kトリスを超える静的ブッチングブレーク)。ただし、個人的には、純粋なネイティブUnityツールを使用して、特定の電話モデルでのアプリケーション障害のリスクを減らすことを推奨しています。

1.1.4その他の最適化

モバイルデバイスに標準のシェーダーを使用することはお勧めしません。特に、二次的な可視性のオブジェクトには、拡散シェーダー付きのマテリアルを使用することをお勧めします。一般的に、ToonyShaderシェーダーはかなり安いと思いますが、視覚的には許容範囲です。

垂直同期(Vsync)を使用せず、代わりに使用

Application.targetFrameRate=300;

ベイク処理は静的オブジェクト(静的)でのみ機能し、すべての動的オブジェクトは指向性光源(またはいくつか、ただしカリングマスクをオブジェクトの各グループに分割して、各オブジェクトが独自の単一の光源を持つようにする)で照明することをお勧めします。また、フェイクシャドウプロジェクターを使用します。スポットライトとポイントライトをリアルタイムで使用しないでください。焼きオブジェクトの領域で動的オブジェクトの照明を変更するには、ライトプローブを使用します(照明で焼きます)。

画像

画像

2.リリース


Google Playでアプリケーションを公開する方法はすでに多くの場所、特に
habr.com/en/company/livetyping/blog/326874で記述されています。

これには何も問題はなく、すべてのステップが制御され、何かが間違っているとエラーが生成されます間違ったことの説明付き(さらに、各項目には証明書へのリンクがあります)。

私はミンスクのベラルーシの開発者です。ベラルーシでは、Google Playから支払いを受け取る唯一の方法は銀行振込です。個々の起業家の登録を申請する地方都市実行委員会に行く必要があります(フォームは市実行委員会のWebサイトで見つけることができます。フォームを渡さなくてもよいので、旅行前に自分で記入してください)。同日、UNPの証明書が発行されます。 IPで銀行口座を開くには、この支払人口座番号が必要です(20日以内に、税務署に来て、簡易税制を申請することをお勧めします)。したがって、銀行に電話する必要があります(メンテナンスが最も安いのはBPS SberbankとBelgazprombankです)、IPで外貨と国の通貨で当座預金を開設することを宣言します。マネージャーがあなたが来て署名する必要がある日付を教えてくれ、同じ日にアカウントの詳細が与えられます。これらの詳細は、Googleの開発者アカウントの「設定」/支払い設定/収入の生成方法で入力されます。

3.さらなるアクション


リリース後、ゲームまたはアプリケーションは、Googleの同じアプリケーションの膨大なリストに表示されます。また、AppStoreの同じ大きなリスト(Synthetyをまもなくリリースする予定)にも含まれています。プロモーションと広告が必要です。このために、私は個人的に使用し、特にこのゲームにFacebookトラフィックを使用する予定です。でもこれは全く別の話なので、興味のある人がいたら別の投稿をします。

この投稿では、開発者が対処する必要のあるすべての10%のため、私はPMで支援したり、質問があればコメントしたりします。少なくとも一人でも喜んでお手伝いさせていただきます。

ご清聴ありがとうございました興味がある場合は、Synthetyのリクエストにより、Google Playで今すぐゲームをプレイできます。

All Articles