HELIKO
Réalisation d'un jeu 2D pour mobile
Soutenance de projet
Université de Montpellier - 5 juin 2015
Thibaut Castanié, Noé Le Philippe, Jolan Konig, Stéphane Wouters
Introduction
Présentation du projet
Projet Heliko
- Jeu de rythme réalisé avec UNITY
- De sa conception jusqu'à sa mise en ligne
- Pour supports mobiles (téléphones et tablettes)
PLAN
- Présentation du projet
-
Gestion du projet
- Organisation
- Outils
-
Présentation technique
- Moteur générique de jeux rythmiques
- Processus de création d’un mini jeu
-
Mise en ligne
- Choix sur les plateformes utilisées
- Premiers retours et statistiques
- Bilan
objectifs du projet
- Créer une application ludique pour support mobile
- Apprendre et utiliser Unity
- Concevoir un jeu :
- Univers du jeu de rythme et de la musique
- Apprentissage de rythmes et reproduction
- Dans des mini-jeux rythmiques différents
- Univers du jeu de rythme et de la musique
- Utiliser un style graphique simple et efficace
- Concevoir un système rémunérateur
- Faire un jeu complet et fonctionnel
Gestion du projet
Organisation et outils utilisés
Rôles dans l'équipe
-
Pas de tâches fixes pour chacun
- Choix d'affectation dynamique
- Des reponsabilités
Processus de développement
étape Prototypes
- Apprentissage de Unity
-
Méthode itérative
- Recherche
- Nombreux tests
- Adaptation / faisabilité
- Avancement vers un moteur de rythme générique et fonctionnel
étape Développement
- Cahier des charges établit
- Fonctionnement en micro-tâches
- Replanification constante
- Délais à respecter pour la mise en ligne
Etapes Tests, finitions et mise en ligne
- Arrêt de l’ajout de contenu
- Tests utilisateurs
- Finitions
- Mise en ligne
Outils utilisés
Développement
- Moteur de jeu Unity
- Dépot Git (Github)
- Et des outils développés...
- Convertisseur de fichiers MIDI
Communication
- Trello, gestionnaire de tâches
- Google Hangout, vidéo-conférence
Moteur de jeu Unity
Trello, gestionnaire de tâches
GITHUB, gestionnaire de dépot
GITHUB, gestionnaire de dépot
Punchcard (statistique Github)
GITHUB, gestionnaire de dépot
Animation Gource
Présentation technique
Réalisation d'un mini jeu rythmique
Moteur de jeu rythmique
Pourquoi un moteur de jeu rythmique ?
- Besoin général de synchronisation avec la musique
- Développer un modèle générique pour la création de mini-jeux
- Pouvoir intégrer un mini-jeu rapidement
Particularités
- Besoin de définir les règles dans la création d'un mini-jeu
STRUCTURE TECHNIQUE DU MOTEUR
Moteur de jeu rythmique
Construction d'un mini-jeu
-
Ajouter une musique
- Définir son tempo et son décalage
-
Ajouter un niveau
- Fichier .txt extrait du convertisseur MIDI
- Placer des sprites
- Ajouter des animations aux sprites
-
Relier les événements du niveaux
- A des animations
- A des sons
- Etc.
- Ajouter du feeback
Moteur de jeu rythmique
Problèmes de synchronisation
- Boucle Update de Unity pas suffisamment précise pour envoyer les événements au bon moment
- 30 fps sur mobile = un Update toutes les 33ms environ
- ¼ de temps = 100 ms sur une musique à 150 bpm
Moteur de jeu rythmique
Problèmes de synchronisation
- Solution
- Le jeu est bloqué sur la musique
- Utilisation d’un thread séparé
Création d'un mini-jeu
Création d'un mini-jeu
Trouver une idée de gameplay basée sur les possibilités du moteur
Tap simple
Tap maintenu
Tap "Swipe"
Création d'un mini-jeu
Connecter le gameplay avec un thème et un environnement de jeu cohérent
Création d'un mini-jeu
Conception des graphismes avec Adobe Illustrator
Création d'un mini-jeu
Élaboration des animations de base avec Unity
Création d'un mini-jeu
Connexion au moteur de jeu
Création d'un mini-jeu
Ajouter les éléments de gameplay permettant une bonne jouabilité
- Ajout d’un feedback visuel et sonore
- Ajout d’un tutoriel
- Harmonisation de la difficulté
Convertisseur de niveaux
Convertisseur de niveaux
Motivations pour la création du convertisseur
-
Niveau sous la forme de fichier texte
-
Possible à créer à la main mais fastidieux
-
Accélérer et faciliter le processus de création de mini-jeux
-
Travailler directement avec la musique en temps réel dans un logiciel de musique
Extrait d'un fichier d'un niveau scripté
1 1 0 0 2 1 2 0 0 1 2 0 2 1 0 0 3 1 0 0 0
0 0 0 1 0 0 0 1 0 0 0 2 0 0 0 1 0 0 0 0 0
1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1
0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Convertisseur de niveaux
Utilisation du format midi
- Créé directement dans un logiciel de musique
- Possible à parser et à décomposer
- Spécifications disponibles sur internet
Convertisseur de niveaux
- Développé en Scheme
- Utilisation en ligne de commande
noe@noe-desktop: /dev/oufmania/convertisseur$ ./midi-level-converter
Utilisation :
-i <input-file>
-z <integer> zéros supplémentaires à la fin du fichier
--strict arrêt en cas d'erreur dans le fichier
Mise en ligne
Moyens mis en oeuvre et analyse des retours
Play store (Android)
Licence de 25$ pour la publication (à vie)
Validation automatique
App Store (IOS)
Licence de 99$ par an
Obligatoire pour commencer à développer
Validation par procédure manuelle
Plateformes de mise en ligne
Rentabilisation
-
Jeu gratuit
- Sans boutique
- Rémunération par la publicité
- Option d'achat d'une version sans publicité (1,20€)
Régie publicitaire
Service utilisé : Chartboost
- Réservé aux jeux mobiles
- Plugin Unity disponible
- Possibilité de "Direct Deal"
- Paiement au téléchargement
Google analytics
Google analytics
Répartition géographique des utilisateurs
Google analytics
Durée moyenne des sessions
Retours Play Store
BILAN
Résultat, perspectives, enseignements
Résultat
- Moteur de jeu générique fonctionnel
-
3 mini-jeux rythmiques
- Tutoriels associés
- Sauvegarde de l'avancement du joueur
- Statistiques et publicité en place
-
Application en ligne
- Sur Android : Depuis le 30 mai
- Sur iOS : En attente de validation
Perspectives d'évolution
Le projet peut continuer à être développé
- La base du jeu est prête
- Les étapes optimales de création d’un niveau sont acquises
L’ajout de nouveaux niveaux exige de :
- Imaginer de nouvelles idées de gameplay
- Concevoir des environnements
- Créer des graphismes cohérents
De nouvelles fonctionnalités communautaires sont aussi envisageables
Enseignements perçus
- Créer un jeu demande beaucoup de temps
- Et de nombreuses compétences dans plusieurs domaines
- Première approche avec Unity
- Découverte des différents services pour le mobile
- Statistiques, publicité, boutique, plateforme de distribution...
- Toutes les compétences de base pour créer un nouveau jeu plus rapidement
Démo!
questions ?
HELIKO
By doelia
HELIKO
- 686