More
Comment construire un jeu de course sans fin avancé en utilisant Flutter, le Casual Games Toolkit et Back4app
50 min
introduction les jeux occasionnels sont populaires pour leur simplicité et leur gameplay engageant, captivant souvent un large public avec des mécaniques faciles à apprendre dans ce tutoriel avancé, nous allons développer un jeu de course sans fin entièrement fonctionnel en utilisant l'outil de développement de jeux occasionnels de flutter nous allons intégrer back4app pour gérer le backend du jeu, stockant des données utilisateur telles que les meilleurs scores, les profils de joueurs et les réalisations nous aborderons également des sujets avancés tels que la gestion d'état, l'optimisation des performances et les stratégies de déploiement à la fin de ce tutoriel, vous aurez un jeu de course sans fin poli prêt à être déployé à la fois sur android et ios, complet avec persistance des données et fonctionnalités améliorées prérequis avant de commencer, assurez vous d'avoir ce qui suit environnement de développement flutter installé et configuré suivez le guide d'installation officiel de flutter https //flutter dev/docs/get started/install si vous ne l'avez pas encore configuré connaissances intermédiaires en flutter familiarité avec les widgets flutter, la gestion d'état et la programmation asynchrone compte back4app inscrivez vous pour un compte gratuit sur back4app https //www back4app com compréhension de back4app connaissances de base sur la création de projets et la gestion des données référez vous au guide de démarrage de back4app https //www back4app com/docs/get started/welcome compte github pour cloner des dépôts et gérer le contrôle de version expérience avec les bibliothèques de gestion d'état telles que provider ou bloc familiarité avec les tests et le déploiement compréhension de base de l'écriture de tests et du déploiement d'applications flutter étape 1 – configuration du backend back4app 1 1 créer un nouveau projet sur back4app connectez vous à votre compte back4app cliquez sur "créer une nouvelle application" et nommez la "jeu de course sans fin avancé" 1 2 configurer les classes pour les données utilisateur nous allons créer des classes pour utilisateur , score , et réussite classe utilisateur champs nom d'utilisateur (string) mot de passe (string) email (string) photo de profil (fichier) classe score champs utilisateur (pointeur vers utilisateur) meilleur score (nombre) niveau (nombre) classe réussite champs utilisateur (pointeur vers l'utilisateur) nomdel'accomplissement (chaîne) dateaccomplie (date) 1 3 configurer la sécurité et les autorisations définir les autorisations au niveau de la classe pour sécuriser les données des utilisateurs s'assurer que seuls les utilisateurs authentifiés peuvent lire et écrire leurs propres données 1 4 ajouter des données d'exemple remplir les classes avec des données d'exemple pour tester l'intégration plus tard étape 2 – clonage et configuration du modèle endless runner 2 1 cloner le dépôt du kit d'outils de jeux occasionnels flutter git clone https //github com/flutter/casual games git 2 2 naviguer vers le modèle endless runner cd casual games/templates/endless runner 2 3 ouvrir le projet dans votre ide utiliser visual studio code, android studio ou tout ide préféré s'assurer que les plugins flutter et dart sont installés 2 4 mettre à jour les dépendances ouvrir pubspec yaml et mettre à jour les dépendances vers les dernières versions exécuter flutter pub get étape 3 – améliorer le jeu avec des fonctionnalités avancées 3 1 implémenter l'authentification des utilisateurs nous allons permettre aux joueurs de s'inscrire, de se connecter et de gérer leurs profils 3 1 1 ajouter le sdk de parse server dans pubspec yaml dependencies parse server sdk flutter ^3 1 0 exécuter flutter pub get 3 1 2 configurer le service d'authentification créer lib/services/auth service dart import 'package\ parse server sdk flutter/parse server sdk flutter dart'; class authservice { future\<parseuser> signup(string username, string password, string email) async { var user = parseuser(username, password, email); var response = await user signup(); if (response success) { return response result; } else { throw exception(response error! message); } } future\<parseuser> login(string username, string password) async { var user = parseuser(username, password, null); var response = await user login(); if (response success) { return response result; } else { throw exception(response error! message); } } future\<void> logout() async { var user = await parseuser currentuser() as parseuser; await user logout(); } } 3 1 3 créer des écrans d'authentification écran d'inscription lib/screens/signup screen dart écran de connexion lib/screens/login screen dart utilisez les widgets flutter pour créer des formulaires pour la saisie des utilisateurs 3 2 améliorer l'ui/ux implémentez des animations personnalisées en utilisant animationcontroller ajoutez un thème personnalisé dans lib/theme dart 3 3 ajouter des réalisations et des classements créez des composants ui pour afficher les réalisations implémentez un écran de classement pour afficher les meilleurs scores au niveau mondial étape 4 – intégration de back4app avec le jeu 4 1 initialiser parse dans main dart void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your app id'; const keyclientkey = 'your client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } 4 2 stocker les identifiants de manière sécurisée utilisez flutter dotenv pour gérer les variables d'environnement dans pubspec yaml dependencies flutter dotenv ^5 0 2 créez un env fichier (ajoutez le à gitignore ) app id=your app id client key=your client key mettez à jour main dart import 'package\ flutter dotenv/flutter dotenv dart'; void main() async { widgetsflutterbinding ensureinitialized(); await dotenv load(filename " env"); final keyapplicationid = dotenv env\['app id']!; final keyclientkey = dotenv env\['client key']!; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } étape 5 – mise en œuvre de la gestion d'état 5 1 choisissez une solution de gestion d'état nous utiliserons provider pour la simplicité 5 1 1 ajouter la dépendance provider dans pubspec yaml dependencies provider ^6 0 0 exécutez flutter pub get 5 2 créer la gestion d'état du jeu 5 2 1 créer la classe d'état du jeu lib/models/game state dart import 'package\ flutter/foundation dart'; class gamestate extends changenotifier { int score = 0; int get score => score; void incrementscore() { score++; notifylisteners(); } void resetscore() { score = 0; notifylisteners(); } } 5 2 2 fournir l'état du jeu dans main dart import 'package\ provider/provider dart'; import 'models/game state dart'; void main() async { // parse initialization runapp( multiprovider( providers \[ changenotifierprovider(create ( ) => gamestate()), ], child myapp(), ), ); } 5 2 3 consommer l'état du jeu dans les widgets sur votre écran de jeu int score = context watch\<gamestate>() score; étape 6 – optimisation des performances 6 1 performance du jeu gestion des sprites utilisez des feuilles de sprites pour réduire l'utilisation de la mémoire optimisation du taux de rafraîchissement limitez le taux de rafraîchissement pour équilibrer performances et autonomie 6 2 optimisation du réseau mise en cache des données implémentez des mécanismes de mise en cache pour réduire les appels réseau requêtes groupées utilisez des opérations groupées lors de la communication avec le backend 6 3 profilage du code utilisez les devtools de flutter pour profiler l'application identifiez et corrigez les goulets d'étranglement de performance étape 7 – gestion robuste des erreurs et tests 7 1 gestion des erreurs blocs try catch enveloppez les appels asynchrones pour gérer les exceptions try { var result = await someasyncfunction(); } catch (e) { // handle error } retour d'information utilisateur affichez des messages conviviaux lorsque des erreurs se produisent 7 2 journalisation utilisez le logging package pour enregistrer les erreurs et les événements importants dans pubspec yaml dependencies logging ^1 0 2 7 3 tests 7 3 1 tests unitaires écrivez des tests pour vos modèles et services exemple de test dans test/game state test dart import 'package\ flutter test/flutter test dart'; import 'package\ your app/models/game state dart'; void main() { test('score increments correctly', () { final gamestate = gamestate(); gamestate incrementscore(); expect(gamestate score, 1); }); } 7 3 2 tests d'intégration testez l'interface utilisateur et les interactions de l'application utilisez le framework de tests d'intégration de flutter étape 8 – déploiement du jeu 8 1 préparation au déploiement icônes d'application et écrans de chargement personnalisez pour le branding identifiants de paquet d'application définissez des identifiants uniques pour android et ios 8 2 construire des versions de release android mettez à jour android/app/build gradle avec vos configurations de signature exécutez flutter build apk release ios ouvrez ios/runner xcworkspace dans xcode configurez la signature et les capacités exécutez flutter build ios release 8 3 soumission à l'app store google play store suivez le guide officiel https //developer android com/distribute/console apple app store suivez le guide officiel https //developer apple com/app store/submit/ conclusion dans ce tutoriel avancé, nous avons construit un jeu de course sans fin riche en fonctionnalités en utilisant le casual games toolkit de flutter et intégré back4app pour les services backend nous avons couvert authentification des utilisateurs permettre aux joueurs de s'inscrire, de se connecter et de gérer leurs profils gestion d'état utiliser provider pour une gestion d'état efficace optimisation des performances améliorer les performances du jeu et du réseau gestion des erreurs et tests mettre en œuvre une gestion des erreurs robuste et écrire des tests déploiement préparer et soumettre l'application aux magasins d'applications cette approche complète vous dote des compétences nécessaires pour développer des applications flutter de qualité professionnelle avec des intégrations backend fiables vous pouvez également étendre le jeu en ajoutant plus de fonctionnalités, telles que partage social permettre aux joueurs de partager leurs réalisations sur les réseaux sociaux achats in app monétiser le jeu avec des articles ou des améliorations achetables support multijoueur mettre en œuvre une fonctionnalité multijoueur en temps réel ou au tour par tour pour plus d'informations sur flutter et l'intégration de back4app, consultez documentation flutter https //flutter dev/docs guide flutter back4app https //www back4app com/docs/flutter/overview guides parse server https //docs parseplatform org bonne programmation et développement de jeux !