Maison >Applet WeChat >Développement de mini-programmes >Comment développer un mini-jeu dans le mini-programme WeChat ? (Tutoriel pratique)
Comment développer rapidement un mini-jeu populaire ? "Hot" est un mot qui se concentre sur les opérations. Le contenu présenté aujourd'hui peut être plus technique, c'est-à-dire comment utiliser les capacités ouvertes de WeChat pour développer un petit jeu. Plusieurs nouvelles importantes ont été publiées le 120ème jour depuis le lancement du mini-jeu, dont plusieurs chiffres pouvant être utilisés pour décrire le mot « chaud ». Les mini-jeux WeChat ont été officiellement autorisés à être publiés par des développeurs tiers le 3 mars, et maintenant plusieurs mini-jeux comptent plus de 100 millions d'utilisateurs, et il existe plusieurs mini-jeux sur Android avec des revenus mensuels supérieurs à 10 millions. expérimenté les avantages de WeChat La popularité des mini-jeux.
Deux connaissances liées à la popularité, l'une est comment se développer ? Tout d'abord, nous devons faire bon usage de la pertinence sociale de WeChat. Le partage social et l'interaction sont très importants dans le scénario décentralisé de WeChat, car il n'y a pas d'entrée principale pour la distribution traditionnelle du trafic. La seconde est la facilité d'utilisation.Nous pouvons tirer ces deux conclusions sur la base des données une fois que le jeu est devenu un jeu à succès.Cela ne signifie pas que ces deux caractéristiques conduiront définitivement au développement d'un jeu populaire.
Que sont les mini-jeux ?
Tout d'abord, permettez-moi de vous présenter ce que sont les mini-jeux : les mini-jeux font spécifiquement référence aux mini-jeux WeChat, qui sont une sous-catégorie de mini-programmes et peuvent être facilement obtenus et diffusés. au sein de WeChat. Jouez avec une excellente expérience utilisateur. Du point de vue du développement, Mini Games est une nouvelle plateforme basée sur les capacités d'ouverture sociale de Canvas/WebGL + WeChat. Le framework est divisé en trois couches, ce qui constitue une architecture en couches typique. Il existe un environnement d'exécution de mini-jeux dans WeChat pour exécuter des mini-jeux, et le système d'exploitation lui-même peut impliquer différents types d'appareils.
Si vous zoomez sur le temps d'exécution du mini-jeu, vous pouvez voir de nombreux détails. Le premier est la logique du jeu, qui est le développement de la logique du jeu. qui est indépendant de la plateforme. La deuxième partie est le moteur de jeu, dont la plupart utiliseront certains flux de travail du moteur et certaines API de haut niveau packagées par divers systèmes. La troisième partie est weapp. Le cadre du mini-jeu fait référence au cadre de webview, mais en fait sa couche inférieure n'est pas webview, mais une plate-forme de webview rationalisée et optimisée. Le mini-jeu n'a que quelques API de rendu liées. le noyau. Le weapp-adaper ici consiste à adapter les capacités des petits jeux à un environnement plus proche de la visualisation Web, afin que les jeux de niveau supérieur ou le moteur lui-même puissent être intégrés plus rapidement à la plate-forme.
Le runtime de WeChat expose l'API WeChat, et toutes les fonctionnalités sont publiées via l'API WeChat. Les fonctionnalités les plus basiques en bas sont liées au rendu, à savoir Canvas 2d et WebGL. Certaines autres fonctionnalités liées à WeChat sont distinctes, de sorte que la structure des mini-jeux est différente de celle des mini-programmes, mais il n'y a pas beaucoup de différence dans l'expérience utilisateur. Les mini-jeux n'ont pas de concept de page et leur implémentation n'est pas exactement une vue Web. Les parties inutiles ont été supprimées.
En général, l'entrée du mini-jeu est game.js. Le jeu peut utiliser certaines des capacités sous-jacentes pour dessiner toute l'interface du jeu. Le fichier de configuration game.json est principalement utilisé pour configurer si le mini-jeu est horizontal ou vertical. L'objet global du mini-jeu, game Gobal, est similaire à l'objet window dans webview et prend en charge le langage javascript. Cependant, une limitation importante des mini-jeux est que l'exécution dynamique du code est interdite. Les développeurs doivent d'abord les soumettre pour examen, et ce n'est qu'après avoir réussi l'examen qu'ils peuvent être mis à la disposition des utilisateurs ordinaires. De plus, le volume de code des mini-jeux comprenant les moteurs est relativement important, donc la limite de taille est supérieure à celle des mini-programmes. La taille limite du premier package est de 4 Mo.
Parlons de l'adaptateur Webview. Son intention initiale est de permettre aux développeurs de jeux de se familiariser davantage avec notre plateforme, notre plateforme s'adaptera donc autant que possible à la visualisation Web en termes de capacités. est aussi une couche très simple. Par exemple, nous utilisons l'objet image pour créer une image dans le navigateur, mais dans le mini-jeu, elle est créée via wx.createimage. Une simple adaptation doit être effectuée dans le code. Par exemple, Canvas et Document sont implémentés dans Adapter. Vous pouvez étudier le code dans le lien. Il existe des versions optimisées, et le responsable ne continuera pas à maintenir cet adaptateur à l'avenir, car nous nous concentrerons davantage sur la construction des capacités sous-jacentes. Si tout le monde connaît déjà cette plateforme, il sera plus facile de développer des jeux. Par exemple, l'objet Document n'est pas différent d'un objet ordinaire dans le cadre du mini-jeu lui-même. Il s'agit d'une simple adaptation réalisée par l'Adaptateur.
L'image ci-dessous est un aperçu des capacités du mini-jeu. L'itération des capacités du mini-jeu a été relativement rapide récemment, et certaines capacités n'ont pas encore été répertoriées. Par exemple, certaines interfaces liées au cercle de jeu et au système de santé récemment publiées n'ont pas encore été répertoriées. Jetons d'abord un coup d'œil aux fonctionnalités de base. Dans la partie rendu, WebGL1.0 et Canvas 2D sont pris en charge. Le Canvas est ici plus proche du standard du navigateur. Dans le même temps, le concept de fréquence d'images contrôlable mentionné ici signifie que si le mini-jeu s'exécute en arrière-plan, la fréquence d'images peut être réduite autant que possible. Dans la partie multimédia, les mini-jeux ne peuvent pas encore mettre en œuvre le streaming audio et vidéo en temps réel comme les mini-programmes. C'est quelque chose que nous soutiendrons davantage à l'avenir. La partie réseau IO est similaire à l'applet. Nous fournissons également certains composants de l'interface utilisateur, tels que l'activation du clavier, les boîtes de dialogue modales, etc.
Les capacités d'ouverture sociale des mini-jeux sont désormais ouvertes sur le monde extérieur. L'une des fonctionnalités les plus importantes est le domaine ouvert, qui ouvre la série de relations amicales WeChat aux développeurs pour qu'ils puissent les utiliser ensemble, mais il existe également certaines restrictions. En raison de la nature décentralisée des mini-jeux, le partage de cette partie est également très important. Les développeurs doivent réfléchir à la manière d'utiliser cette capacité. En termes de code, étant donné que la limite du premier package est de 4 Mo, la taille du code de certains petits jeux peut être relativement importante. Nous envisageons également depuis peu une capacité de sous-traitance pour charger du code de manière asynchrone, mais ce code doit être revu par nos soins.
Comment développer un petit jeu ?
Alors comment développer un petit jeu ? Parce que je n'ai moi-même développé que quelques jeux simples et que je ne suis pas un professionnel du développement de jeux, je vais donc vous présenter davantage sur la façon d'utiliser les capacités de WeChat pour développer de petits jeux.
Choisissez un moteur de mini-jeu
Tout d'abord, lors du développement de jeux, vous devez choisir un moteur. Nous avons également une coopération étroite avec les fournisseurs de moteurs utilisés. pour développer des mini-jeux, il faut être digne. Par exemple, au niveau inférieur, le moteur ne peut au début prendre en charge que les jeux natifs, et certaines adaptations doivent être apportées aux mini-jeux WeChat, en s'appuyant sur les capacités uniques du navigateur. Trois moteurs, Cocos Creator, Egret Engine et LayaAir Engine, prennent déjà en charge le développement de mini-jeux. Il existe également des articles correspondants sur Internet sur la manière de publier sur la plateforme de mini-jeux WeChat.
Adaptation appareil/environnement
Concernant l'adaptation de la gestion des appareils, le mini-jeu aura une API pour offrir la possibilité d'obtenir la largeur et la hauteur de l'écran, l'appareil rapport de pixels, etc. Une fois le développement du mini-jeu terminé, vous pouvez également lancer une demande de test d'appareil réel dans les outils de développement. WeChat fournit des clusters de test pour différents appareils afin d'aider les développeurs à découvrir les problèmes à l'avance. L'API wx fournie par la bibliothèque de base elle-même est un processus d'itération et de mise à jour continue. Pour les petits jeux qui utilisent de nouvelles fonctionnalités, une faible compatibilité de version doit être obtenue. Par exemple, s'il est détecté qu'une ancienne version qui ne prend pas en charge une nouvelle API est autorisée à nuire aux utilisateurs du service. Dans le même temps, si une certaine version basse compte une petite proportion d'utilisateurs, vous pouvez envisager de configurer directement la version minimale de la bibliothèque de base requise par le mini-jeu dans l'arrière-plan de gestion. Si les utilisateurs entrent en contact avec ce mini-jeu, le client WeChat affichera une invite A qui oblige les utilisateurs à mettre à jour vers une nouvelle version de WeChat avant de pouvoir utiliser ce mini-jeu. S'ils ne mettent pas à jour, ils risquent de perdre cet utilisateur.
Connexion WeChat
Le processus de connexion du mini-jeu est similaire à celui du mini-programme et nécessite que l'utilisateur pour personnaliser le statut de connexion. appsecret/session_key représente un accord de confiance entre les développeurs de petits jeux et la plateforme WeChat, tel que le paiement et la déclaration des données de garde. La plateforme doit vérifier le access_token, et s'il est lié à l'utilisateur, la signature de la session_key doit être vérifiée. pour s'assurer que la demande provient de développeurs ou d'utilisateurs de petits jeux. access_token est un access_token d'état d'application, qui n'a rien à voir avec l'utilisateur. Il doit garantir qu'une copie est conservée globalement. Il doit y avoir un module de contrôle central pour garantir que le access_token est valide. du cache local est directement utilisé pendant la période de validité au lieu d'y accéder à chaque fois qu'il est utilisé, sinon vous risquez de rencontrer une erreur de limite de fréquence d'appel et d'affecter le service. N'oubliez pas de ne pas mettre appsecret/session_key dans le code frontal, sinon il pourrait être utilisé de manière malveillante et nuire aux droits et intérêts des développeurs ou des utilisateurs de petits jeux.
Cache
Les types de cache incluent le cache de données et le cache de fichiers. Le cache de données est un stockage clé-valeur, adapté au stockage structuré de petites données, avec une limite supérieure de 10 Mo. La mise en cache de fichiers fournit une API complète du système de fichiers, comprenant l'ajout, la suppression, la modification et la lecture de répertoires/fichiers. Elle convient à la mise en cache locale des ressources réseau fréquemment utilisées.
Différent des navigateurs, WeChat fournit uniquement des capacités de gestion de stockage de base et n'effectue aucune opération sur ce qui est stocké et ce qui est supprimé lorsque le stockage est plein. Les développeurs peuvent définir eux-mêmes de manière flexible des stratégies de mise en cache et d'élimination, telles que le stockage des ressources fréquemment consultées dans le système de fichiers et l'effacement de certains fichiers récemment consultés lorsque le stockage de fichiers est plein.
Domaine des données ouvertes
Parlons du développement du domaine des données, c'est-à-dire de l'ouverture des données de l'utilisateur au public tout en protégeant la confidentialité des utilisateurs. Mini-jeux. Il s'agit d'une portée JavaScript fermée et indépendante. Le domaine de données ouvertes est un répertoire indépendant et son fichier d'entrée est index.js. La limitation actuelle est qu'il ne prend en charge que le mode de rendu 2D et que les données peuvent uniquement entrer mais pas sortir. Par exemple, une liste de classement doit être visible pour les utilisateurs.
Jetons un bref aperçu de sa mise en œuvre. Le côté gauche est le domaine principal. Une fois que les utilisateurs ont obtenu ces données, la liste de classement est en fait un canevas. La différence est que Canvas ne peut pas extraire les données et ne peut pas analyser la nature des données. Il y a un canevas dans le domaine principal. Dans WeChat, le canevas de l'écran supérieur est associé à l'écran, et il y a un canevas hors ligne derrière lui. Le canevas hors ligne peut être utilisé selon vos besoins. Une fois les données ouvertes, les données contenues dans le canevas sur l'écran supérieur ne peuvent pas être supprimées, ni le canevas suivant, garantissant ainsi la sécurité des données.
Étant donné que nos données appartiennent au domaine des données de développement, les utilisateurs n'ont aucun moyen de les développer. Par conséquent, les développeurs sont tenus d’héberger les données requises chez nous pendant le développement et de les associer aux utilisateurs. De cette manière, des données pertinentes peuvent être obtenues dans le domaine des données de développement. Ses scénarios d'application incluent le classement des amis, le classement des groupes, le dépassement des invites d'amis, etc. Lorsque l'utilisateur entre, toutes les opérations de l'utilisateur sont répétées et toutes les entrées de l'utilisateur sont obtenues sur le canevas à l'écran et sur le canevas hors de l'écran, et aucune donnée ouverte ne pénétrera.
Partager
Si l'utilisateur atteint un score élevé dans le jeu, il peut rivaliser avec des amis. Dans la fenêtre de transfert personnalisé, le titre et l'image peuvent être personnalisés. Mais il existe désormais de nombreux mini-jeux qui sont très ennuyeux pour les utilisateurs. Ils ont effectué de nombreux réglages qui doivent être partagés avant de pouvoir jouer au jeu. C'est la partie à laquelle tout le monde doit réfléchir : comment favoriser l'interaction des mini-jeux sans affecter l'expérience utilisateur. Ici, nous devons trouver un point d'équilibre approprié. En même temps, après avoir partagé les données et associé le mini-jeu à ce chat de groupe, on peut voir une plateforme de mini-jeu.
Paiement
Le mini-jeu prend en charge le paiement virtuel, mais il n'est actuellement disponible que sur les systèmes Android. Et il n’existe actuellement qu’une seule solution : la conservation des devises. Il est principalement divisé en deux processus. Premièrement, l'utilisateur dépense de l'argent pour acheter de la monnaie de jeu, ce qui n'a rien à voir avec le serveur de jeu. Lors du lancement du paiement, le client WeChat générera une commande asynchrone permettant à l'utilisateur de confirmer le paiement. La plateforme est chargée de convertir le RMB de l'utilisateur en devise de jeu correspondante et de le stocker dans le compte de jeu correspondant de l'utilisateur. La seconde consiste à utiliser la monnaie du jeu pour acheter des accessoires. Les développeurs peuvent déduire la monnaie du jeu correspondante et émettre des accessoires dans le jeu aux utilisateurs. Le processus de déduction de la monnaie du jeu nécessite un certain mécanisme de transaction pour garantir des transactions normales en cas d'anomalies du réseau. L'interface de déduction de la monnaie du jeu prend en charge la déduplication basée sur l'ID de commande, ce qui signifie qu'en cas d'expiration du réseau et dans d'autres situations, les développeurs peuvent utiliser le même ID de commande pour réessayer la déduction jusqu'à ce qu'une réponse claire soit renvoyée.
Performances
Les problèmes de performances courants dans les petits jeux sont généralement causés par la mémoire. Si trop de mémoire est occupée, elle sera activement fermée par le client WeChat. Par conséquent, les développeurs doivent libérer rapidement la mémoire inutilisée pendant le jeu de l'utilisateur, en particulier les objets volumineux des classes Canvas et Image. En même temps, ils peuvent appeler activement wx. .triggerGC pour déclencher le recyclage sous-jacent. Pour un travail relativement indépendant de la logique du jeu, vous pouvez envisager de l'implémenter dans les mini-jeux qui permettent aux threads de travail indépendants d'exécuter la logique js.
Mécanisme de mise à jour de version
Les mini-jeux peuvent être divisés en démarrage à chaud et démarrage à froid, ce qui signifie qu'il n'y en a pas. mini-jeu en mémoire. Dans le cas d'une instance du jeu en cours d'exécution, le processus de démarrage du mini-jeu ; le démarrage à chaud signifie que l'instance en cours d'exécution du mini-jeu existe toujours dans la mémoire, mais est temporairement basculée vers la mémoire. arrière-plan. A ce moment, l'utilisateur déclenche le mini-jeu pour revenir au premier plan. Une fois que l'utilisateur a cliqué sur Démarrer, le jeu sera chargé lors de l'exécution du jeu. Lorsque vous cliquez sur le menu dans le coin supérieur droit, le bouton restera simplement en arrière-plan. Lorsqu'il sera redémarré dans un certain laps de temps, il sera immédiatement restauré et la mémoire sera libérée.
Le mini-jeu vérifiera la version du mini-jeu lors d'un démarrage à froid. S'il existe une nouvelle version, après l'avoir téléchargée sur l'ordinateur local, la dernière version sera disponible pour le prochain froid. commencer. Bien entendu, nous fournissons également une API permettant aux développeurs de décider s'ils doivent forcer une mise à jour et appliquer la dernière version lorsqu'une version est disponible.
Exploitation et maintenance
Le côté gestion fournit des fonctionnalités telles que la publication, la restauration et l'arrêt du service, afin que les développeurs puissent utiliser pleinement le capacités de la plateforme. Par exemple, dans les opérations en arrière-plan, js peut signaler une erreur. Les erreurs de script sont principalement déclenchées par des exceptions non interceptées pendant le fonctionnement. De telles exceptions peuvent entraîner la suspension de l'exécution de la logique js sur le front-end du mini-jeu de l'utilisateur. Dans le même temps, la plate-forme fournit également des services complets d'analyse de données et vous pouvez utiliser des assistants pour effectuer une analyse de données via des mini-jeux.
Recommandé : "Tutoriel de développement de mini-programmes"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!