ホームページ  >  記事  >  WeChat アプレット  >  WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

青灯夜游
青灯夜游転載
2020-05-12 10:52:5939437ブラウズ

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

人気のゲームを迅速に開発するにはどうすればよいでしょうか? 「ホット」とは運用に焦点を当てた言葉ですが、今回紹介する内容はより技術的なもの、つまりWeChatのオープン機能を使って小規模なゲームを開発する方法ということになるかもしれません。ミニゲーム開始から120日目にいくつかの重要なニュースが発表されましたが、その中には「熱い」という言葉を形容する数字がいくつかあります。 WeChat ミニゲームは 3 月 3 日にサードパーティ開発者によるリリースが正式に許可され、現在、いくつかのミニゲームには 1 億人を超えるユーザーがおり、Android には月収 1,000 万を超えるミニゲームもいくつかあります。 WeChat のメリットをすでに体験済み ミニゲームの人気。

人気に関する知識が 2 つあります。1 つは開発方法です。まず第一に、WeChat のソーシャル関連性をうまく活用する必要があります。WeChat の分散型シナリオでは、従来のトラフィック分散のためのメインの入り口がないため、ソーシャル共有と交流が非常に重要です。 2つ目は「操作性」ですが、この2つはヒットゲームになってからのデータから導き出せるもので、この2つの特徴があれば必ず人気ゲームが生まれるというものではありません。

ミニゲームとは何ですか?

まず、ミニゲームとは何かについてご紹介します。ミニゲームとは、特に WeChat ミニゲームを指します。これは、ミニプログラムのサブカテゴリであり、簡単に入手して広めることができます。 WeChat 内で、優れたユーザー エクスペリエンスでプレイしてください。開発の観点から見ると、Mini Games は Canvas/WebGL と WeChat のソーシャル オープン機能に基づいた新しいプラットフォームです。フレームワークは 3 つの層に分かれており、典型的な階層型アーキテクチャです。 WeChat にはミニゲームを実行するためのミニゲーム ランタイムがあり、OS 自体にはさまざまな種類のデバイスが含まれる場合があります。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

ミニゲームの実行時間を拡大すると、多くの詳細が表示されます。最初はゲーム ロジック、つまりゲーム ロジックの開発です。それはプラットフォームから独立しています。 2 番目の部分はゲーム エンジンで、そのほとんどはいくつかのエンジン ワークフローと、さまざまなシステムによってパッケージ化されたいくつかの高レベル API を使用します。 3 番目の部分は weapp です。ミニゲームのフレームワークは Webview のフレームワークを指しますが、実際にはその最下層は Webview ではなく、合理化され最適化された Webview プラットフォームです。ミニゲームには、次のようなレンダリング API しかありません。コア。ここでの weapp-adaper は、小規模なゲームの機能を Webview に近い環境に適応させることで、より高いレベルのゲームやエンジン自体をより迅速にプラットフォームに統合できるようにします。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

WeChat のランタイムは WeChat API を公開し、すべての機能は WeChat API を通じてリリースされます。一番下の最も基本的な機能は、レンダリング、つまり Canvas 2d と WebGL に関連しています。他の WeChat 関連の機能は別のものであるため、ミニゲームの構造はミニプログラムとは異なりますが、ユーザー エクスペリエンスに大きな違いはありません。ミニゲームにはページの概念がなく、実装もWebViewというわけではないので、不要な部分は削除されています。

一般に、ミニゲームへの入り口は game.js であり、ゲームは基礎となる機能のいくつかを使用して、ゲームのインターフェイス全体を描画できます。設定ファイル game.json は主にミニゲームを横向きにするか縦向きにするかを設定するために使用され、ミニゲームのグローバル オブジェクトであるゲーム Gobal は Web ビューのウィンドウ オブジェクトに似ており、JavaScript 言語をサポートします。ただし、ミニゲームの重要な制限は、コードの動的な実行が禁止されていることです。開発者はまずレビューに提出する必要があり、レビューに合格した後でのみ一般ユーザーにリリースできます。また、エンジンを含むミニゲームはコード量が比較的多いため、ミニプログラムに比べてサイズ制限が大きく、最初のパッケージのサイズ制限は4Mとなります。

Webview アダプターについて話しましょう。その本来の目的は、ゲーム開発者が私たちのプラットフォームにもっと慣れることができるようにすることであり、そのため、私たちのプラットフォームは機能の点で可能な限り Webview に適応します。実際、これはアダプテーションも非常に単純なレイヤーです。たとえば、ブラウザでは image オブジェクトを使用して画像を作成しますが、ミニ ゲームでは wx.createimage を通じて作成されるため、コード内で簡単な調整を行う必要があります。たとえば、Canvas と Document はアダプターに実装されており、リンク内のコードを学ぶことができます。最適化されたバージョンがいくつかありますが、基礎となる機能の構築に重点を置くため、公式は今後このアダプターのメンテナンスを継続しません。誰もがこのプラットフォームに慣れていれば、ゲームの開発はより簡単になります。たとえば、Document オブジェクトは、ミニゲーム フレームワーク自体の通常のオブジェクトと何ら変わりはなく、アダプターによって単純に調整されたものです。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

下の図はミニゲームの能力の概要です。最近、ミニゲームの能力は比較的早く更新されており、一部の能力はまだリストされていません。たとえば、最近リリースされたゲーム サークルやヘルス システムに関連する一部のインターフェイスはまだリストされていません。まず基本的な機能を見てみましょう. レンダリング部分では、WebGL1.0 と Canvas 2D の両方がサポートされています. ここでの Canvas はブラウザの標準に近いです.同時に、ここで言う制御可能なフレームレートの概念は、ミニゲームがバックグラウンドで実行されている場合、フレームレートを可能な限り下げることができることを意味します。マルチメディア部分では、ミニゲームはミニ プログラムのようなリアルタイムのオーディオとビデオのストリーミングをまだ実装できませんが、これは将来さらにサポートする予定です。ネットワーク IO 部分はアプレットに似ており、キーボードの起動やモーダル ダイアログ ボックスなどの UI コンポーネントも提供しています。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

#ミニゲームのソーシャルオープン機能が外部世界に開かれるようになりました。最も重要な機能の 1 つは、開発者が一緒に使用できる WeChat 友人関係シリーズを開くオープン ドメインですが、いくつかの制限もあります。ミニゲームは分散型であるため、この部分の共有も非常に重要であり、開発者はこの機能をどのように活用するかを検討する必要があります。コードに関しては、最初のパッケージの制限が 4 MB であるため、一部の小規模ゲームのコード サイズは比較的大きくなる可能性があります。私たちは最近、コードを非同期でロードする機能を下請けに出すことも計画していますが、このコードは私たちがレビューする必要があります。

小規模なゲームを開発するにはどうすればよいですか?

それでは、小さなゲームを開発するにはどうすればよいでしょうか?私は簡単なゲームをいくつか開発しただけで、ゲーム開発の専門家ではないため、次は WeChat の機能を使用して小規模なゲームを開発する方法について詳しく紹介します。

ミニゲーム エンジンの選択

ゲームを開発する場合、まずエンジンを選択する必要がありますが、エンジン ベンダーとも緊密に連携しています。ミニゲームの開発に使用するのに適している必要があります。たとえば、最下位レベルでは、エンジンは最初はネイティブ ゲームのみをサポートし、ブラウザーの固有の機能に依存して、WeChat ミニゲームにいくつかの適応を行う必要があります。 Cocos Creator、Egret Engine、LayaAir Engine の 3 つのエンジンはすでにミニゲームの開発をサポートしており、WeChat ミニゲーム プラットフォームに公開する方法を説明した対応する記事もインターネット上にあります。

デバイス/環境の適応

デバイス管理の適応に関して、ミニゲームには画面の幅と高さを取得する機能を提供する API が含まれます。 、デバイスのピクセル比など。ミニゲームの開発が完了したら、開発者ツールで実際のデバイスのテストのリクエストを開始することもできます。WeChat は、開発者が事前に問題を発見できるように、さまざまなデバイス用のテスト クラスターを提供します。基本ライブラリ自体が提供する wx API は継続的な反復と更新のプロセスであるため、新しい機能を使用する小規模なゲームの場合は、低バージョン互換性を実現する必要があります。たとえば、新しい API をサポートしていない古いバージョンがサービス ユーザーに損害を与える可能性があることが検出された場合です。同時に、特定の下位バージョンのユーザーの割合が少ない場合は、ミニゲームに必要な基本ライブラリの最小バージョンを管理バックグラウンドで直接設定することも検討できます。このユーザー グループがこのミニゲームに接触すると、WeChat クライアントは、このミニゲームを使用する前に、ユーザーに WeChat の新しいバージョンに更新することを要求するプロンプトを表示します。更新しない場合は、このユーザーを失います。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

WeChat ログイン

ミニゲームのログイン プロセスはミニプログラムのログイン プロセスと似ており、ユーザーがログインステータスをカスタマイズします。 appsecret/session_key は、小規模ゲーム開発者と WeChat プラットフォームの間の信頼協定 (保管データの支払いや報告など) を表します。プラットフォームは access_token を検証する必要があり、それがユーザーに関連している場合は、session_key の署名を検証する必要がありますリクエストが小規模ゲーム開発者またはユーザーからのものであることを確認するため。 access_token はアプリケーション状態の access_token であり、ユーザーとは何の関係もありません。1 つのコピーがグローバルに維持されることを保証する必要があります。access_token が有効であることを確認するための中央制御モジュールが必要です。同時に、access_tokenローカル キャッシュを使用するたびにアクセスするのではなく、有効期間内に直接使用するため、新しい access_token を生成しないと、呼び出し回数制限エラーが発生し、サービスに影響を与える可能性があります。フロントエンド コードに appsecret/session_key を含めないように注意してください。そうしないと、悪意をもって使用され、小規模ゲーム開発者やユーザーの権利や利益が損なわれる可能性があります。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

#キャッシュ

キャッシュ タイプには、データ キャッシュとファイル キャッシュが含まれます。データ キャッシュはキーと値のストレージであり、構造化された小規模なデータ ストレージに適しており、上限は 10 MB です。ファイル キャッシュは、ディレクトリ/ファイルの追加、削除、変更、読み取りなどの完全なファイル システム API を提供します。頻繁に使用されるネットワーク リソースのローカル キャッシュに適しています。上限は 50MB です。

ブラウザとは異なり、WeChat は基本的なストレージ管理機能のみを提供し、ストレージがいっぱいになったときに何が保存され、何が削除されるかについては一切の操作を実行しません。開発者は、頻繁にアクセスされるリソースをファイル システムに保存したり、ファイル ストレージがいっぱいになったときに最近アクセスされていない一部のファイルを削除したりするなど、キャッシュと削除の戦略を自分で柔軟に定義できます。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

オープン データ ドメイン

データ ドメインの開発について話しましょう。これは、ユーザーのプライバシーを保護しながらユーザー データを一般に公開することを意味します。 。これは閉じられた独立した JavaScript スコープであり、オープン データ ドメインは独立したディレクトリであり、そのエントリ ファイルはindex.jsです。現在の制限は、2D レンダリング モードのみをサポートし、データは入力のみ可能で終了はできないことです。たとえば、ランキング リストはユーザーが見ることができるものでなければなりません。

実装を簡単に見てみましょう. 左側がメイン ドメインです。ユーザーがこのデータを取得すると、ランキング リストは実際にはキャンバスになります。違いは、Canvas はデータを取り出すことができず、データが何であるかを分析できないことです。メインドメインにCanvasがあり、WeChatでは上画面のCanvasが画面に関連付けられ、次にオフラインCanvasが続き、必要に応じてオフラインCanvasを使用できます。一度データを開くと、上画面のキャンバス内のデータは取り出すことができず、次のキャンバスを取り出すこともできず、データの安全性は確保されています。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

私たちのデータは開発データ ドメインにあるため、ユーザーはそれを開発する方法がありません。したがって、開発者は開発中に必要なデータをホストし、それをユーザーに関連付ける必要があります。このようにして、開発データ領域で関連データを取得することができ、その応用シナリオには、フレンドランキング、グループランキング、フレンドプロンプトの超過などが含まれます。ユーザーが入力すると、ユーザーのすべての操作が繰り返され、ユーザーのすべての入力は画面上のキャンバスと画面外のキャンバスで取得され、オープン データが浸透することはありません。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

シェア

ゲームでハイスコアを達成すると、友達と競うことができます。カスタム転送ウィンドウでは、タイトルと画像をカスタマイズできます。しかし現在では、ユーザーにとって非常に迷惑なミニゲームが数多く存在しており、ゲームのプレイを許可する前に共有する必要がある多くの設定が行われています。ユーザー エクスペリエンスに影響を与えずにミニゲームのインタラクションを促進するにはどうすればよいか、これは誰もが考える必要がある部分であり、適切なバランス ポイントを見つける必要があります。同時に、データを共有し、ミニゲームをこのグループ チャットに関連付けると、ミニゲーム プラットフォームが表示されます。

WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

支払い

ミニゲームは仮想支払いをサポートしていますが、現在は Android システムでのみ利用可能です。そして、現状では通貨保管という方法しかありません。これは主に 2 つのプロセスに分かれており、まずユーザーがお金を出してゲーム通貨を購入しますが、これはゲームサーバーとは関係がありません。支払いを開始すると、WeChat クライアントはユーザーが支払いを確認するための注文を生成します。これは非同期です。プラットフォームは、ユーザーの人民元を対応するゲーム通貨に変換し、それをユーザーの対応するゲームアカウントに保存する責任があります。 2 つ目は、ゲーム通貨を使用してプロップを購入する方法です。開発者は、対応するゲーム通貨を差し引いて、ユーザーにゲーム内プロップを発行できます。ゲーム通貨を差し引くプロセスには、ネットワーク異常が発生した場合でも正常なトランザクションを保証するための特定のトランザクション メカニズムが必要です。ゲーム通貨を差し引くためのインターフェイスは、注文 ID に基づく重複排除をサポートしています。つまり、ネットワーク タイムアウトやその他の状況が発生した場合、開発者は同じ注文 ID を使用して、明確な応答が返されるまで差し引きを再試行できます。

1WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

パフォーマンス

小規模ゲームにおける一般的なパフォーマンスの問題は、通常、メモリが原因で発生します。メモリが占​​有されすぎると、WeChat クライアントによって積極的に閉じられます。したがって、開発者は、ユーザーのゲーム中に未使用のメモリ、特に Canvas クラスと Image クラスの大きなオブジェクトを速やかに解放する必要があります。同時に、wx を積極的に呼び出すことができます。 .triggerGC は、基礎となるリサイクルをトリガーします。対応するリソース。ゲーム ロジックから比較的独立した作業の場合は、ワーカーに実装することを検討できます。ミニ ゲームは、独立したワーカー スレッドが JS ロジックを実行する機能を提供します。

1WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

バージョン更新の仕組み

ミニゲームはホットスタートとコールドスタートに分けられますが、コールドスタートとはそのようなものがないことを意味します。メモリ内のミニゲーム。ゲームの実行中のインスタンスの場合、ミニゲームを開始するプロセス。ホット スタートとは、ミニゲームの実行中のインスタンスがメモリ内にまだ存在しますが、一時的にメモリに切り替わることを意味します。このとき、ユーザーはミニゲームをトリガーして再び前景に戻ります。ユーザーが「開始」をクリックすると、ゲームの実行中にゲームがロードされます。右上のメニューをクリックするとボタンがバックグラウンドでハングするだけですが、一定時間以内に再起動するとすぐに復帰し、メモリも解放されます。

ミニゲームは、コールド スタート中にミニゲームのバージョンをチェックします。新しいバージョンがある場合は、ローカル コンピュータにダウンロードし直した後、次のコールドで最新バージョンが利用可能になります。始める。もちろん、開発者が更新を強制するかどうかを決定し、バージョンが利用可能なときに最新バージョンを適用するための API も提供します。

1WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

運用保守機能

リリース、ロールバック、サービス一時停止などの機能を管理側で提供するため、開発者は運用・保守を最大限に活用できます。プラットフォームの機能。たとえば、バックグラウンド操作では、js がエラーを報告する場合があります。スクリプト エラーは主に、操作中にキャッチされなかった例外によって引き起こされ、このような例外により、ユーザーのミニゲームのフロントエンドの JS ロジックが実行を一時停止する可能性があります。同時に、このプラットフォームは完全なデータ分析サービスも提供しており、アシスタントを使用してミニゲームを通じてデータ分析を行うことができます。

1WeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)

推奨: 「小プログラム開発チュートリアル

以上がWeChat ミニプログラムでミニゲームを開発するにはどうすればよいですか? (実践的なチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjisuapp.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。