Utilisation de la librairie graphique Skia sur le jeu vidéo DAD48

- 23/04/2022 - 3 heures 17 minutes - Patrick Prémartin

Nouvelle session de développement Delphi sur le jeu vidéo DAD48. Cette fois-ci je me suis concentré sur les bogues d'affichage sur Mac et iPad pour avoir une version unique du programme quelle que soit la plateforme.

Comme il restait des incohérences selon l'utilisation ou pas de la librairie Metal et après quelques tests, j'ai voulu voir ce que ça donnerait avec la librairie Skia et ai donc incorporé le projet Skia4Delphi dans le mien.

Résultat plus que satisfaisant : ma façon de copier et d'afficher les bitmaps directement dans le caneva fonctionne enfin correctement partout.

Une série de vérifications sur les différentes plateformes et j'ai validé la fonctionnalité pour ce jeu.

D'autres modifications ont également été mises en place dont l'ajout d'un bouton "interface tactile" dans les options de projet afin d'activer les commandes sur les PC/tablettes hybrides ayant un écran pris en charge par Windows ou Linux.

C'eut été couillon de forcer les utilisateurs d'ordinateurs Microsoft Surface à jouer avec leur clavier, non ?

Nous avons également fait un tour dans PhotoShop pour éliminer la couche alpha des icônes en PNG générées par Pic Mob Generator (en attendant de corriger ce problème qui n'en est un que pour la soumission d'un IPA à Apple qui n'est pas fichu d'accepter une transparence sur les icônes ou ne pas en tenir compte). 

Une fois les fonctionnalités et tests ok, j'ai refait la compilation et le déploiement du jeu pour finir par la soumission du binaire sur Itch.io, Google Play, Amazon App Store, App Store et Mac App Store.

 

Voici dans l'ordre les actions du jour :

- test du jeu pour revoir l'état des erreurs d'affichage sur Mac et iPad

- désactivation de Metal

- désactivation de l'affichage en blocs de couleurs pour Mac intel (hors Metal) pour reprendre le fonctionnement standard partout. Pour "simplifier" j'ai préféré ajouter des blocs conditionnels dans le code source au cas où je doive revenir en arrière.

- remplacement des FillRect() par des DrawBitmap() pour que ça fonctionne sur toutes les plateformes comme c'est le cas sur le jeu vidéo Egg Hunter mais ça ne passe pas non plus. C'est probablement lié à la récupération du bitmap stocké en background d'un TRectangle.

- test de la librairie SKIA pour voir s'il y a un impact sur les défauts visuels constatés et la vitesse en utilisant Skia4Delphi

- installation Skia4Delphi sur la VM

- activation de Skia sur le projet

- ajout de Skia en remplacement du moteur graphique de FireMonkey sur les TCanvas

- tests du programme sur les différentes plateformes

- Bogue sous Windows : un cadre  apparaît sur l'écran des crédits lors du premier affichage (contour du TVertScrollbox) probablement lié au resize et stretch des différents éléments de l'écran

- modification du dessin de l'icone (retrait de la zone grise transparente et de la pièce d'or) dans Pic Mob Generator

- modification de la valeur par défaut de l'option de configuration "InterfaceTactileOnOff" grâce aux services de plateforme pour prendre en charge les appareils tactiles qui ne seraient pas de l'iOS ou de l'Android

- adaptation des PNG des icones générées en retirant leur couche Alpha par applatissement des images depuis Photoshop

- création du bouton "doigt" et de son image suite à une recherche sur Adobe Stock

- ajout de l'option "InterfaceTactileOnOff" dans l'écran de configuration du jeu

- mise à jour du texte des "crédits du jeu"

- le zoom / dézoom en phase de jeu se déclenche dès qu'on appuit sur les boutons (onMouseDown à la place de onClick)

- compilation, déploiement et soumission du projet sur les magasins d'applications pris en charge pour Windows 32 & 64 bits, Mac Intel et M1, Android 32 & 64 bits et iOS

Certaines informations n'ont pas été affichées. Vous devez vous connecter pour y accéder.

Connexion Inscription


Liens associés

Ces liens s'ouvrent dans la même fenêtre que cette page. En cliquant dessus vous quitterez Serial Streameur.
Pensez à les ouvrir dans un nouvel onglet si vous préférez rester ici pour y revenir plus facilement.


Mots-clés associés

Android, Delphi, FireMonkey, FMX, Game Dev, Gamedev, iOS, macOS, Microsoft Windows


Classement

Projets > Jeux vidéo > DAD48