Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Interviews: Ephy / Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Making-of: Ma première game jam classée / Jeux: Oracle of Tao / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

84 connectés actuellement

11017795 visiteurs
depuis l'ouverture

9 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Maker VX

BloGecko

Offgame

Tous nos partenaires

Devenir
partenaire



Conseils pour développer son jeu RPG Maker MV sur Android

Si vous souhaitez proposer votre jeu fait avec RPG Maker MV sur Google Play, voici quelques informations à connaître sur les appareils concernés et plusieurs astuces pour faire en sorte que votre jeu fonctionne au mieux.

Ecrit par JKGames le 01/04/2021


Conseils pour développer son jeu RPG Maker MV sur Android









Disclaimer

Ce tutoriel est une traduction libre d'un article rédigé par Joshua Keith (JKGames). Deux points à noter :
- Ce tutoriel est inutile si vous souhaitez juste tester l'export sur Android. Vous pouvez vous reporter à l'aide de MV pour en savoir plus.
- (11 novembre 2020) Ce tutoriel sera peut-être mis à jour dans le futur avec la sortie de RPG Maker MZ. Dans la mesure où MZ n'a pas de commande pour déployer le jeu directement sur Android, il vous faudra théoriquement le compiler pour Windows, et copier le dossier "www" quelque part pour l'utiliser dans votre projet Android. Les performances sur Android pourraient être pires qu'avant dû à Effekseer*.

* Cependant, vu qu'Effekseer gère les animations sur Android, IoS et diverses plateformes, cela serait plus dû au non support de RPG Maker MZ qu'à ce logiciel en particulier.

L'auteur original du tutoriel rappelle qu'il est en aucun cas expert de jeux mobiles. Il partage juste sa propre expérience lors de l'export de ses jeux. Vous pouvez le contacter (en anglais) à Jkweath[a]mail.com



Deploiement

J'utilise le guide de Xilefian's pour Android pour plusieurs raisons, l'une d'elles étant les lacunes dans le guide de RPG Maker MV. Crosswalk, que de nombreux guides utilisent encore comme référence, est obsolète et plus supporté. Le client de Xilefian utilise Webview, qui reçoit des mises à jour de sécurité et peut avoir de meilleures performances sur des supports plus récents.

Bien que compliqué au premier abord, le guide de Xilefian est bien plus facile à utiliser une fois qu'on a pris ses marques. Après avoir galéré sur votre premier jeu, le suivant prendra seulement 10 minutes à déployer.

Pour ces raisons (et d'autres non listées), je considère le client de Xilefian comme la méthode de déploiement officielle sur Android, à moins que les développeurs de RPG Maker MV sortent une nouvelle méthode, ce dont je doute.



Performance

Le premier gros souci à gérer lors quand on décide de mettre son jeu sur Android, c'est les problèmes de performance, puisque le jeu rame à mort sur les appareils bas de gamme.

J'en apprends encore sur les causes de ce cas. Par exemple, l'une d'elles est que les jeux faits avec MV ne tournent que sur un coeur de processeur. Puisque les appareils mobiles recourent à de nombreux processeurs de faible puissance et faible GHz pour fonctionner de manière fluide, si vous utilisez un appareil plus vieux ou de moins bonne qualité, les jeux faits avec MV deviennent injouables.

On va définir maintenant ce que j'entends par basse, moyenne et haute qualité :
   * Basse : processeurs quatre coeurs 1.6 GHZ et en-dessous. Tout ce qui correspond à un Samsung Galaxy S4 ou en-dessous ne jouera pas un jeu MV à un framerate acceptable, indépendemment de toutes les améliorations de performance que vous pourrez faire. Pour les téléphones actuels, cela correspond à un budget de 30-70 dollars.

   * Moyenne : processeurs quatre ou huit coeurs 1.8-2.1 GHz. Tout ce qui est autour d'un Samsung Galaxy S6 peut faire tourner des jeux MV de manière fluide tant que vous prenez quelques précautions.

   * Haute : Tout ce qui se situe au-dessus du précedent, soit autour du niveau d'un Samsung Galaxy S7, fera tourner un jeu MV de façon fluide, bien que vous devrez quand même prendre quelques précautions.

Le principal inconvénient est que les appareils de basse qualité constituent un pourcentage non négligeable du marché, ce qui réduit d'autant les joueurs potentiels (10,7%).
image

Voici ce que j'ai fait pour faire tourner mes jeux de manière fluide sur des appareils de gamme moyenne :
1) Utiliser le plugin [https://forums.rpgmakerweb.com/index.php?threads/core-engine-optimizations-for-mobile-deployment.70783/]d'optimisation mobile[/url] par Kodera, qui augmente de façon drastique le FPS. Cependant, ce plugin n'ayant pas été mis à jour depuis longtemps, vous devrez le tester avant pour vérifier la compatibilité avec vos plugins importés.

2) Retirer les changements de teintes et flash de toutes vos animations. Ces deux effets consomment du processeur et provoquent des chutes de FPS et peuvent faire ramer votre jeu quand l'animation joue. Vous pouvez soit les retirer manuellement, soit créer un plugin pour les retirer automatiquement :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
Sprite_Animation.prototype.updateFlash = function() {
//if (this._flashDuration > 0) { //completely removes flash effects
//var d = this._flashDuration--;
//this._flashColor[3] *= (d - 1) / d;
//this._target.setBlendColor(this._flashColor);
//}
};


Ce code les retire tous, donc ne l'utilisez pas si vous voulez en garder certains.

Conseil pour les programmeurs : de ce qui ressort de mon expérience, tout code avec “setBlendColor” (comme ci-dessus) provoquera des chutes de FPS sur un appareil de gamme moyenne-basse.

Si vous souhaitez remplacer les effets de teintes, vous pouvez soit les remplacer par des images de votre animation éditées depuis un logiciel de graphisme, ou essayer le plugin Performance Upgrade d'Irina. Ce dernier modifie la façon dont les teintes sont traitées, ce qui réduit la chute de FPS. Je ne sais pas s'il est mieux que la première méthode que j'utilise.

Les flash peuvent avoir un impact sur le FPS si utilisés trop régulièrement, mais vous pouvez en garder quelques uns pour vos scènes. J'ai personnellement retiré les flash lors de la rencontre de troupes ennemies, qui arrive fréquemment :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Scene_Map.prototype.updateEncounterEffect = function() {
if (this._encounterEffectDuration > 0) {
this._encounterEffectDuration--;
var speed = this.encounterEffectSpeed();
var n = speed - this._encounterEffectDuration;
var p = n / speed;
var q = ((p - 1) * 20 * p + 5) * p + 1;
var zoomX = $gamePlayer.screenX();
var zoomY = $gamePlayer.screenY() - 24;
if (n === 2) {
$gameScreen.setZoom(zoomX, zoomY, 1);
this.snapForBattleBackground();
//this.startFlashForEncounter(speed / 2); //removes flash effect
}
$gameScreen.setZoom(zoomX, zoomY, q);
if (n === Math.floor(speed / 6)) {
//this.startFlashForEncounter(speed / 2);  //removes flash effect
}
if (n === Math.floor(speed / 2)) {
BattleManager.playBattleBgm();
this.startFadeOut(this.fadeSpeed());
}
}
};



3) Sur la map, évitez les changements de teinte qui s'étendent en longueur car cela freeze complètement le jeu. Un changement de teinte instantané fera l'affaire.

4) Retirer l'effet de blanchissement quand vous sélectionnez un ennemi. Ce n'est pas problématique pour un seul ennemi, mais cela cause un freeze de 5 secondes sur les cibles multiples.

Portion de code : Tout sélectionner

1
2
3
4
Sprite_Enemy.prototype.updateWhiten = function() {
//var alpha = 128 - (16 - this._effectDuration) * 10;
//this.setBlendColor([255, 255, 255, alpha]); //removes whiten effect
};


L'inconvénient de ce retrait est qu'il sera plus difficile pour le joueur de savoir quel ennemi il a sélectionné. Dépendant de votre jeu, il ne sera peut-être pas possible de retirer cet effet.
Vous pouvez aussi retirer cet effet lorsque les ennemis sont vaincus :

Portion de code : Tout sélectionner

1
2
3
4
5
Sprite_Enemy.prototype.updateCollapse = function() {
this.blendMode = Graphics.BLEND_ADD;
//this.setBlendColor([255, 128, 128, 128]); //removes whiten effect
this.opacity *= this._effectDuration / (this._effectDuration + 1);
};



5) Retirer l'effet d'animation du curseur. Ce n'est pas obligatoire, mais plus sûr.

Portion de code : Tout sélectionner

1
2
3
4
5
Window.prototype._updateCursor = function() {
this._windowCursorSprite.alpha = 255;
this._windowCursorSprite.visible = this.isOpen();
//all other code has been edited out
};



6) A propos de l'ajout de plugins et autres soucis de performance :

   1- Evitez les plugins d'effet lumineux. Si vous en avez déjà un, supprimez-le si possible, ou si vous ne pouvez pas, mettez-le en désactivé par défaut et faites une option pour que le joueur puisse choisir de l'activer. Les appareils de bonne qualité peuvent gérer ces effets, mais pas ceux de moyenne qualité. Si les effets de lumière ne peuvent être désactivés, bon courage !

   2- En général, la plupart des plugins ne devrait pas impacter les performances (la suite de Yanfly fonctionne bien). Cela dit, un plugin ajoutant des effets graphiques devra être surveillé attentivement. Ca ne me surprendrait pas que ceux de Dragonbones ou un très célèbre plugin de Mode 7 ne fassent pas bon ménage sur mobile.

   3- Combat de face / de côté : de ce que j'ai vu, les combats de côté n'impactent pas autant les performances que ce que j'aurais cru. C'est sans doute le cas sur des appareils de basse qualité, mais ceux-ci ne pourront pas lancer un jeu MV dans tous les cas. Si vous utilisez ce système, même avec le plugin de Yanfly pour les ennemis de côté, c'est bon.

   4- Sur la taille des cartes : Je n'ai pas trouvé de différences particulières en utilisant des grandes maps. Ceci dit, je n'ai pas dépassé 200*200 carreaux.

   5- A propos des événements, processus parallèles, etc : Je n'ai pas constaté de différences particulières s'il y avait beaucoup d'événements sur la map. N'utilisant pas énormément de processus parallèles, je ne peux pas en dire beaucoup plus pour eux.

   6- Canvas versus Webgl : Le plugin Community Basic permet d'intervertir le mode d'affichage. Le configurer sur Webgl devrait globalement augmenter les performances.

   7- A propos de l'effet de disparition de boss : J'ai reçu des retours de certains joueurs sur le crash de Knight Bewitched après des combats de boss. Après avoir essayé plusieurs solutions, la seule chose qui fonctionnait était de supprimer l'effet. Le pic de lag provoqué était suffisant pour bloquer tout le jeu !
C'est bizarre d'avoir des boss avec l'effet de mort des monstres normaux, mais c'est la seule chose qui a fonctionné de mon côté.



Améliorer les contrôles et l'interface

Les contrôles de contact avec l'écran configurés par défaut sur MV sont, pour le dire franchement, très mauvais. Si vous mettez votre jeu tel quel sur le Play Store, ne vous étonnez pas d'être assailli de retours à une étoile avec les contrôles pointés comme horribles.

Heureusement, il existe une façon simple d'y remédier, le plugin Buttons and DPad par Aloe Guvner. Vous devrez le configurer et trouver ou créer des boutons d'interface, et après ça c'est bon... ou presque.

   1) Les contrôles à l'écran se superposeront probablement à votre fenêtre de combat. Je n'ai pas trouvé de bonne solution, et opté pour réduire cette fenêtre.

   2) Les contrôles tactiles ne peuvent pas être désactivés durant les combats, ce qui peut résulter à vous en train d'appuyer accidentellement sur une touche non souhaitée.

   3) Le plugin n'est pas parfait. Le DPad reste statique, et vous devrez expérimenter pour que les contrôles semblent bons.

La plupart des jeux utilisent un "joystick" qui reste caché jusqu'à ce que le joueur touche l'écran, après quoi le joystick apparaît et le joueur peut glisser le doigt dans la direction souhaitée.
Si vous pouvez investir, vous voudrez peut-être engager un programmeur pour améliorer le plugin. Aloe Guvner ne souhaite plus y toucher mais a donné l'autorisation d'éditer le code.



Réduire la taille de son jeu

Quand vous créez votre APK avec le client de Xilefian, votre jeu devra faire au total moins de 100 MO pour être accepté sur le Play Store. Ca peut être difficile selon l'étendue de votre jeu.

Vous devez exclure les fichiers inutilisés si ce n'est pas déjà fait.

Les fichiers les plus lourds sont les images et les musiques.

Pour les images, j'utilise TinyPNG. Cela va réduire la taille des fichiers jusqu'à 80%. Vous ne pouvez convertir que 20 images à la fois, donc le processus peut être long. Les changements sont en général non visibles sur mobile. Vous voudrez peut-être juste éviter de l'utiliser sur les images d'ui (fenêtres, icônes) et vos tilesets si vous avez de la marge.

Pour les musiques, j'utilise Online Audio Converter. Vous y passerez sans doute plus de temps, vu que vous ne voudrez pas baisser la qualité sonore au point d'être audible.
Sélectionnez "m4a" en format de sortie et choisissez un kbts plus bas que celui de vos fichiers actuels. Si tous vos fichiers font au-dessus de 160 kbts, sélectionnez kbts et convertissez. S'ils sont déjà en dessous, tentez 128 kbts.
Après avoir converti tous vos fichiers sonores, je recommande d'écouter chaque fichier pour vérifier la qualité.

Une autre solution pour réduire la taille est de supprimer quelques BGM que vous n'utilisez pas souvent,, par exemple un thème de ville utilisé qu'une seule fois.



Information sur le Play Store

C'est bientôt fini ! Il ne vous reste plus qu'à apprendre comment Google Play fonctionne. Je ne vais pas donner d'information spécifique ici, principalement par ce que comme pour le client de Xilefian, je pense qu'il s'agit d'une démarche que vous devez entreprendre personnellement.

Vous aurez besoin d'un compte Google à 25$, mais après ça tout est gratuit, pas besoin de payer 100$ par jeu comme sur Steam.

Vous devrez lire les tutoriels de Google sur comment mettre en page votre produit dans la boutique, comment uploader un APK, configurer les notations de votre contenu, vérifier la destination de votre produit dans le catalogue (vous voulez exclure tout ce qui est en-dessous d'1 GB de RAM) et ainsi de suite. Vous devrez créer une icône pour votre produit, une description, et ajouter des screeshots et un trailer.

Vous devrez aussi apprendre comment la signature d'une application fonctionne. Votre jeu nécessite une clé de produit qui peut être configurée dans Android Studio. Ce n'est pas compliqué, mais constitue une étape nécessaire.

Et c'est tout ! Bon making !





Source :
- Joshua Keith (JkGames), "Android Developement Guide for RPG Maker MV", JKGames, écrit le 14 juillet 2019 [consulté le 29 mars 2021], https://jkgames.net/android-development-guide-for-rpg-maker-mv/



Gari - posté le 03/04/2021 à 11:57:35 (4143 messages postés) - staff -

❤ 0

Petit complément d'information après conversation avec l'auteur de l'article :

Citation:

I didn't read your translation, but it may be worth mentioning that the guide to Xilefian's client isn't translated (unless you did that one too), and that I'm 99% sure Xilefian no longer provides support for his Android client as he's an official Minecraft dev now.


Xilefian ne supporte très vraisemblablement plus son client Android puisqu'il travaille aujourd'hui officiellement comme programmeur dans Minecraft.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Ressources | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers