IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

ShockWave, un casse-briques sans raquette pour Android


Sujet :

Projets

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut ShockWave, un casse-briques sans raquette pour Android
    ShockWave est un casse-briques pensé pour les contrôles tactiles. J'avais commencé le développement pour un projet de semestre. Mon objectif est de développer un jeu simple qui soit un minimum original. Le jeu est disponible sur Google Play (la fiche de ShockWave).

    La suite du message est la présentation originale. Le contenu n'est pas nécessairement d'actualité.

    Le moteur physique
    Le moteur physique développé pour le jeu est open-source. Ce moteur a pour objectif de permettre de créer des moteurs physiques spécifiques à partir de briques réutilisables. Je me suis basé sur des techniques d'injection de dépendances pour le réaliser. Vous pouvez consulter le sujet dédié pour plus de précisions.

    Le principe du jeu
    Le joueur créé des ondes de choc en tapant sur l'écran. Les balles à proximité prennent une direction opposée au point d'impact. Elles perdent, ensuite, peu à peu leur vitesse.

    Dans un casse-briques classique, le joueur doit empêcher la balle de sortir de l'écran. Ici, les balles ne sortent pas de l'écran. A la place, des objectifs sont défini pour chaque niveau. Il en existe plusieurs types :
    • détruire les briques d'une couleur
    • protéger les briques d'une couleur
    • rendre toutes les balles d'une certaine couleur
    • faire en sorte qu’aucune ne balle ne soit d'une certaine couleur

    Afin d'atteindre ces objectifs, le joueur est contraint à certaines règles :
    • une balle casse uniquement les briques qui sont de sa couleur ou blanches
    • les briques incassables donnent leur couleur aux balles qui les touchent (mise à part les briques incassables blanches)


    L'utilisation des couleurs dans les niveaux permet de donner une légère dimension stratégique au jeu. Par exemple, il peut être intéressant de casser certaines briques le plus tard possible pour éviter que les balles ne prennent la même couleur que les briques à protéger etc. Globalement, j'ai l'impression que les niveaux sont plus intéressants quand ils sont faits pour le contre-la-montre et qu'ils restent relativement simples.

    Sur les petits écrans, les actions ne me semblent pas assez précises pour jouer correctement. Si vous avez l'occasion de tester le jeu, je serais intéressé par votre ressenti en précisant la taille de votre écran.

    Les éditeurs de niveaux
    L'application pour Android permet de créer des niveaux. Cependant, je trouve l'éditeur très peu pratique sur smartphone, j'ai donc développé un éditeur pour ordinateur. L'éditeur est un peu "brut". J'ai fait le minimum pour créer des niveaux à peu près confortablement. Cependant, les objectifs de jeu et le nom de l'auteur du niveau sont éditables uniquement avec l'éditeur pour Android. N'hésitez pas à créer et partager vos niveaux si le cœur vous en dit.

    J'ai de forts doutes sur la possibilité de réaliser un éditeur agréable sur smartphone, sur tablette éventuellement. Je pense que je réfléchirai davantage sur les éditeurs si le jeu est joué un jour...

    La suite du projet
    Actuellement, je travaille sur l'interface de l'application pour qu'elle s'adapte aux différentes versions d'Android et aux surcouches. Je pense aussi modifier l'interface en fonction de la taille physique de l'écran et gérer correctement le mode paysage.

    J'ai en tête un autre projet qui réutiliserait 90% du travail réalisé pour ce projet. J'ai failli passer sur ce projet sans continuer celui-ci, mais comme il est presque fini et que je ne suis pas certain d'avoir assez de temps pour développer cet autre projet, j'ai préféré lui donner une chance.
    J'ai développé l'application en grande partie sur six mois pendant mes études. Depuis que je travaille, c'est beaucoup plus dur de débloquer du temps ; ça avance petit à petit.

    Merci d'avance pour vos retours (positifs comme négatifs). Cela m'aidera à cerner quelles directions prendre.


  2. #2
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Ca donne envie, c'est original, mais tu n'aurais pas une version testable sur PC afin de te donner un retour plus rapidement ? à moins que ça ne soit complètement injouable à la souris.
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Effectivement, c'est une bonne idée de pouvoir tester sur PC. J'ai rajouté un dossier qui contient les niveaux du jeu dans l'archive. Ils peuvent être lancés avec l'éditeur qui fonctionne avec le JRE.
    Normalement, c'est seulement fait pour tester rapidement les niveaux et faire des réajustements avec l'éditeur. Donc, il n'y a pas tout ce que l'on peut attendre d'un jeu (pas de fin, ni de score...). Sinon, il y a possibilité de passer par VirtualBox (je débugue comme ça), mais ça peut être long à mettre en place la première fois.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J'ai apporté quelques améliorations au jeu. Les deux premières sont d'ordre ergonomique et les deux dernières techniques.

    Le changement de style graphique
    Certains niveaux devenaient illisibles et peu esthétiques avec les effets de halo. Je me suis tourné vers un style graphique simplifié au maximum (peut-être un peu trop ?). Personnellement j'aime assez, mais je me demande, si ça ne donne pas une impression de bâclé en quelque sorte. Peut-être qu'une trainée estompée sur les balles pourrait donner l'impression d'un jeu mieux fini.

    La perte inopinée de progression
    J'ai soumis le jeux à mon entourage et j'ai remarqué qu'il arrivait fréquemment que la touche retour soit pressée pendant une cession de jeu. Cette touche a pour effet de quitter la partie sans conserver la progression. Ce qui devient frustrant à force. Une solution serait de ne pas utiliser la zone proche des touches systèmes, mais la petite taille des écrans est déjà un problème, donc je ne veux pas l’amplifier. J'ai choisi de sauvegarder la partie lorsque retour est pressé. Ce n'est pas idéal, mais nettement moins frustrant. Cela me semble être un bon compromis.

    La désynchronisation du rendu et de la physique
    J'ai rendu la boucle des calculs physique indépendante du temps de rendu. Lorsqu'une autre application fait un traitement lourd, le nombre de rendu par seconde peut chuter sans que les balles passent à travers les briques.

    L'accélération matérielle
    J'ai remplacé la version cible de 2.3 à 4.2 pour activer l'accélération matérielle pour les versions 3.0+. Je pensais que c'était géré par l'OS directement, mais en fait ce n'est pas activé par défaut par soucis de compatibilité.




  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    En ciblant la version 4.2, le bouton de rétrocompatibilité qui permet d'afficher le menu a disparu. J'ai modifié l'interface pour qu'elle soit utilisable sans bouton menu.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J’ai mis en ligne une vidéo pour monter comment le gameplay varie en fonction des niveaux.
    En ce moment, je peaufine l'application. Je pense qu'elle sera prête dans le début de l'année.


  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    ShockWave est disponible gratuitement sur Google Play.
    J'ai cherché des informations sur la promotion des jeux indépendants et je suis tombé sur des articles intéressants :
    • Un tutoriel de Game Shere sur la prise de contact des sites spécialisés. Ils donnent entre autre une liste de sites qui s'intéressent aux jeux vidéo indépendants.
    • Un article de Gamasutra sur la communication du début à la fin du projet. En le lisant, je me suis rendu compte que je m'y prenais vraiment trop tard (J'ai commencé à communiquer sur ShockWave seulement un mois avant sa publication).

    Pour la communication sur ShockWave, j'ai commencé par créer une fiche sur IndieDB et poster sur 4 forums dont 3 francophones. A la sortie du jeu, j'ai contacté une quinzaine de sites spécialisés dont 3 francophones. Je vous tiendrai au courant du résultat, mais je ne m'attends pas à des miracles.

  8. #8
    Expert éminent
    Avatar de Vetea
    Homme Profil pro
    Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Inscrit en
    Février 2005
    Messages
    2 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2005
    Messages : 2 061
    Points : 6 443
    Points
    6 443
    Par défaut
    Très sympa ton retour d'expérience et tes conseils sur la promotion de jeu amateur et indépendant !!
    Il est vrai que c'est souvent la croix et la bannière pour la communication et la promotion d'un jeu fraichement finalisé ... Aussi difficile que son développement souvent !

    Néanmoins, bonne chance et bon courage pour la suite !
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Vetea Voir le message
    Néanmoins, bonne chance et bon courage pour la suite !
    Merci, meilleurs vœux au Papy et une santé de plomb !

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Le level design
    Quand j’ai commencé le développement de ShockWave, je ne m’attendais pas à ce que la création de niveaux soit une étape aussi complexe. J’ai rajouté des niveaux au fil du temps et parfois je trouvais une idée qui permettait de renouveler un peu le principe. Dernièrement, comme j’avais l’impression d’avoir fait le tour des possibilités, j’ai décidé de décortiquer les mécaniques du jeu pour essayer de trouver un peu d’inspiration (ce que j’aurai dû faire dès le début).

    Je partage avec vous cette analyse car je pense que d’autres personnes ont dû être confrontées à ce genre de problèmes et qu’il pourrait être intéressant d’échanger sur nos expériences.

    Les actions du joueur
    A la base, le joueur a une seule action possible qui consiste à taper l’écran pour faire bouger les balles dans la direction opposée à celle du doigt. En répétant cette action de façon réfléchie, le joueur réalise des actions plus complexes. J’ai analysé les actions possibles afin d’élaborer des niveaux variés. La carte euristique ci-dessous part de l’action de base et enrichit par étape les actions possibles.

    Cette vidéo peut permettre de comprendre rapidement le principe et de survolé l’explication des règles du jeu. Surtout, n’hésitez-pas à télécharger l’application pour vous faire une idée .



    Afin de comprendre les différentes actions, voici les règles du jeu :
    • une balle casse les briques cassables (en couleur vive) de sa couleur
    • une balle prend la couleur d’une brique incassable (sombre avec un contour) à son contact

    La couleur blanche fait exception :
    • une brique cassable blanche peut être cassée par n’importe quelle balle
    • une brique incassable blanche ne fait pas changer la couleur des balles

    Les objectifs d’un niveau peuvent consister à :
    • détruire les briques d'une couleur
    • protéger les briques d'une couleur
    • rendre toutes les balles d'une certaine couleur


    Une analyse de niveaux
    J’ai fait une sélection de 5 niveaux qui permettent d’illustrer les actions présentées précédemment au travers de stratégies applicables par le joueur pour obtenir le meilleur score.

    Le cas de ShockWave est un peu particulier car le score est mesuré sur 2 dimensions :
    • le temps mis à remplir les objectifs principaux (la fin de partie)
    • le pourcentage de complétion des objectifs secondaires (les flèches en pointillés)

    Le joueur pourra privilégier l’une des 2 dimensions, voire un équilibre des 2. En effet, un score de (30s, 50%) n’est ni meilleur ni moins bon qu’un score de (45s, 80%). Pour prendre en compte cette spécificité, le tableau des scores est trié par le temps avec un filtre sur la complétion.



    L’objectif de ce niveau est de détruire toutes les balles bleues (l’objectif secondaire a peu d’intérêt).

    Pour commencer, le joueur vise une brique incassable bleue pour obtenir une balle bleue. Le joueur vise une brique bleue à la chaine tant qu’il évite les briques incassables rouges. Sinon, la balle redevient rouge et il doit à nouveau viser le centre.

    L’intérêt dans ce niveau est que plus il y a de briques bleues détruites, plus il devient difficile d’en détruire d’autres sans toucher les balles rouges. En début de partie, il semble plus intéressant de détruire aléatoirement les briques bleues en se concentrant uniquement à redonner une couleur bleue aux balles devenues rouges. Cependant, cette stratégie devient vite inefficace et les briques bleues détruites deviennent des pièges dispersés qui rendent la suite difficile.

    Une autre stratégie est de se concentrer sur une seule balle pour détruire les briques bleues à la chaine pour limiter les allers-retours vers le centre. Une fois le bon timing trouvé, je trouve que c’est assez sympa à jouer.



    L’objectif de ce niveau est d’atteindre la brique rouge incassable pour passer la couleur de la balle jaune à rouge. L’objectif secondaire est d’éviter de détruire les briques jaunes.

    Le joueur peut choisir de contourner les briques jaunes pour obtenir une complétion de 100% ou bien de creuser des briques jaunes afin d’arriver le plus vite possible à la brique rouge. Le joueur peut être tenté de creuser en haut près du départ, mais l’endroit le plus intéressant à creuser est en bas à gauche de la brique rouge car le chemin est plus simple à parcourir et aussi court.

    Je pense qu’il y a possibilité de « creuser » le concept en permettant des chemins courts mais difficiles et inversement.



    L’objectif de ce niveau est de détruire les briques bleues. L’objectif secondaire consiste à éviter de détruire les briques roses.

    Le joueur peut choisir de viser les briques bleues de loin afin d’éviter de réveiller des balles immobiles roses. Les briques roses resteront alors intactes et il obtiendra une bonne complétion.

    Autrement, il peut décider de détruire les briques bleues le plus rapidement possible en sacrifiant la complétion.

    Je trouve que ce niveau est intéressant car il oblige le joueur à viser avec précision alors qu’habituellement, il a possibilité de corriger la trajectoire lorsque la balle se rapproche de sa cible. Par contre, le joueur doit pouvoir récupérer ses balles assez facilement pour que le niveau ne soit pas frustrant ; ce qui limite les variantes possibles avec ce concept. Ici, ce problème est résolu en permettant au joueur de récupérer la balle de l’autre côté ou de taper sur les carrés roses qui sont suffisamment loin des balles roses.



    L’objectif de ce niveau est de libérer les balles blanches et de leur donner une autre couleur.

    Ce niveau est en quelque sorte un labyrinthe. Les 2 murs de briques incassables de chaque côté de l’écran ne donnent chacun que 3 couleurs différentes aux balles. Le joueur doit donc se frayer un chemin parmi les briques jaunes, rouges et roses à gauche et les bleues, vertes et jaunes à droite.

    Je pense que ce niveau est intéressant la première fois, mais qu’il n’est pas amusant à faire en time-attack une fois le plus court chemin trouvé.



    L’objectif de ce niveau est d’amener toutes les balles jaunes à la brique incassable bleue afin de les passer en balles bleues. L’objectif secondaire est d’éviter de détruire les briques jaunes.

    Pour une meilleure complétion, le joueur a tout intérêt à commencer par la balle la plus proche afin de ne pas réveiller toutes les balles au passage puisqu’une balle devenue bleue ne peut plus détruire de briques jaunes.

    Si le joueur vise le chrono, il aura plutôt tendance à réveiller toutes les balles dès le début pour se frayer un chemin vers la brique bleue plus facilement.

    Le gros problème de ce niveau est qu’il est trop fermé. Du coup, les balles semblent rebondir aléatoirement et le joueur perd la sensation de contrôle.

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Intéressante analyse. Avez vous réalisé des niveaux plus simples, pour faire apprendre aux joueurs les ces mécanismes/techniques ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Développer pour Android 3 sans Java bientôt possible
    Par Idelways dans le forum Actualités
    Réponses: 23
    Dernier message: 26/07/2011, 23h24
  2. Gestion de la raquette (casse-briques)
    Par mickl1722 dans le forum Débuter
    Réponses: 10
    Dernier message: 03/05/2011, 16h17
  3. Quelle bibliothèque graphique pour un casse-brique ?
    Par Adeel.dev dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 31/03/2010, 10h51
  4. [Projet en cours] Petit casse brique pour apprendre a développer des jeux sous java
    Par karas.uchiwa dans le forum Projets
    Réponses: 6
    Dernier message: 22/10/2009, 11h12
  5. pb de balle pour un casse brique en c++ builder5
    Par projetersi dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 19/04/2007, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo