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
  • 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é

  1. Ajout d’un feedback visuel et sonore
  2. Ajout d’un tutoriel
  3. 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 ?

Made with Slides.com