Fangame Sonic

Bonjour tout le monde, cela fait depuis un bon moment que j’ai commencé à faire un fangame Sonic, pour mon amusement personnel. Je pense que c’est le bon moment pour lancer un topic à ce sujet.

J’ai commencé à réaliser ce jeu en ayant appris à utiliser GDevelop en autodidacte (pas beaucoup de documentation sur internet, à part le wiki, dommage!) à l’aide des exemples qui étaient fournis avec (super exemples au passage, il m’ont permis de commencer un gameplay basique :slight_smile: ).

Commençant à plus trop y arriver, je sais plus vraiment quoi faire pour avancer, j’ai donc décidé de m’inscrire sur le forum de GDevelop pour demander un peu d’aide et montrer l’avancement de mon jeu (j’ai d’ailleurs une petite question, y a-t-il un hébergeur de fichiers pour ce site? Faut-il compiler les jeux avant de les poster? Parce que je suis aussi sur le Blender Clan, la communauté francophone des utilisateurs du logiciel 3D Blender, où il y a un hébergeur de fichiers propre au site). Voilà tout pour ma petite présentation, place au jeu! :slight_smile:

J’ai pu commencer un gameplay basique, avec l’automatisme plateforme (configuré pour foncer! :smiley: ) qui m’a permis de configurer un petit Sonic. On peut ramasser les Rings (les connaisseurs je vous rappelle pas ce que c’est!) et il y a un compteur qui permet d’afficher combien on en a. Il y aussi un chronomètre, mais qui a été configuré de manière un peu “bourrine”, ce qui fait que je peux pas l’arrêter pour faire un écran de fin de niveau (où sera affiché le temps, je pense également à reprendre le système des notes dans les Sonic récents). Il y aussi des piques et des ennemis qui font perdre des Rings lorsqu’on les touche, Sonic prend une animation quand lorsqu’il est touché, et il la garde pendant tout le niveau! :angry: . Donc si mon projet intéresse quelqu’un, est-ce qu’il pourrait m’expliquer comment faire un système qui donne une invincibilité temporaire au personnage quand il prend un coup (comme dans tout les jeux de plateforme, pour éviter de se faire “one-shot”!).

Merci d’avance!

Salut !

Tu as des screenshots de ton jeu ? Ou encore mieux, un exécutable pour voir l’avancée du travail ? :wink:

Salut et merci de ta réponse :slight_smile: .

Désolé mais là je n’ai pas beaucoup le temps pour faire des screenshots du jeu. (de toute façon j’espère que vous serez indulgents, les graphismes du niveau c’est pas trop ça, la priorité est pour l’instant de faire gameplay fonctionnel.)

Ce soir donc, je posterai un nouveau post (wow la répétition!) avec quelques screenshots et éventuellement un .exe avec la scène de Sonic (ne flippez pas si vous lisez Sonic.exe lol), bien qu’encore assez incomplète. Je projette aussi (mais quand déjà le gameplay avec Sonic sera fini) d’inclure d’autres personnages pour d’autres niveaux (Tails, Amy et Knuckles).

A ce soir les gars donc :wink:

Ça y est! J’ai pu faire quelques screenshots du jeu, bon comme je l’ai dit plus haut le niveau n’est pas encore très beau:

(désolé une partie de l’écran n’est pas sur l’image, il manque ce début d’interface sur celle-ci…)

Voici un ennemi du jeu, touchez-le et vous perdrez toutes vos Rings… et recommencez le niveau avec cette animation! :smiley:

D’ailleurs j’en profite pour reposer ma question: avez-vous une méthode pour avoir pendant un court laps de temps une invincibilité temporaire, quand on se fait toucher par un ennemi, qui serait manifestée par l’animation que l’on voit sur la dernière image, afin d’éviter de se faire tuer directement (comme c’est le cas ici, avec le bug d’anim en plus)?

Bon normalement j’uploaderai la scène du jeu plus tard parce que là j’ai bien peur que ma connexion n’apprécie pas trop (la campagne, vous savez, connexion pourrie…).

Sinon bonsoir tout le monde!

Bon je dois encore me retaper un message, ça n’a pas voulu me mettre l’exécutable en pièce jointe, je vais tester avec le .gdg.

Comme ça vous pourrez directement voir ce qu’il ne va pas :slight_smile:

De toute façon, rien ne vous empêche de le tester!

Pour les graphismes, ce n’est pas ce niveau qui sera utilisé dans le jeu final, mais ne servira que pour la programmation du gameplay de Sonic, une sorte de modèle pour les autres niveaux. Inutile de trop s’attarder dessus, ça ne ferait que faire perdre du temps. Comme j’ai dit, actuellement la priorité est sur le dev’ et non sur les graphismes :wink:

Donc libre à vous d’éplucher les évènements, chercher les bugs et si possible m’aider à résoudre ce problème déjà cité ci-dessus.

Merci d’avance!
Sonic_test_level1.gdg (140 KB)

Salut, attention aux triples postes, y a une fonction éditer, tu as posté le .gdg mais y a pas les images, si tu veux poster le .exe, compresse le en zip (clic droit sur le fichier> 7zip> addTo “NonDuJeux.7z”)

Salut, désolé pour le triple post.
Désolé mais je peux pas transférer l’exécutable dans un .zip, ça m’écrit que le fichier est trop lourd. Je comprends pas, j’ai pourtant bien nettoyé le fichier avant de le compiler…

Faudra-il passer par un hébergeur de fichier?

Un hébergeur genre 1fichier.com (je crois que celui la n’ai pas chiant) sinon le mieux c’est dropbox ou google drive (gratuit sans limite de temp)

Pour l’invincibilité tu peux ajouter une variable sur ton perso pour définir son état normal ou invincible par exemple et vérifier la valeur de la variable au moment de la collision si la variable est sur normal il y a des dégât et si la variable est sur invincible il n’y a pas de dégât, ensuite tu utilise un timer pour conserver l’état invincible que pendant quelques seconde seulement, et avec un dégâts tu remet le timer à 0 et l’état sur invincible…
pour faire clignoter le perso (c’est la norme) tu dois pouvoir jouer avec l’opacité ou la visibilité du perso par alternance avec là encore un timer

Remix: Merci, je vais peut-être passer par les hébergeurs de fichiers que tu m’as proposé (et si il n’y a pas besoin de s’inscrire, ce sera encore mieux!)

KamiGeek: En fait j’avais justement essayé avec une variable et un timer, mais le problème c’est que j’arrive pas à utiliser un timer sur GDevelop (médaille du noob de l’année!). Comment faites-vous un timer? :confused:

Bon après je vais faire un système se rapprochant des jeux Sonic, c’est-à-dire tu touche un ennemi une fois et tu perds toutes (ou un certain nombre) tes Rings. Tu touches un autre ennemi sans Rings et là… c’est le drame! :smiling_imp:
Après je sais bien que le perso clignote dans 90% des jeux, mais comme je veux faire simple (juste une animation, je trouve que ça revient au même), je pense faire avec une animation bien précise quand on a pris un coup (avec peut-être un effet de recul) et un son que ceux qui ont déjà joué à un Sonic reconnaîtront.
Ce système de “si j’ai plus de Rings je recommence le niveau” est déjà fait, il n’y a plus qu’à faire un système de vies et de game over.

Je vais m’y mettre un peu et peut-être ce soir poster l’avancement du jeu (si il y en a eu!) et éventuellement l’exécutable que vous attendez tant :slight_smile: .

un exemple avec Babs Bunny :stuck_out_tongue: je fait avec ce que j’ai sous la main :slight_smile:
http://uplea.com/dl/BB406EFD2E00479
le projet est un projet natif et non pas Web

donc le perso “Babs Bunny” devient temporairement invincible après avoir pris un coup ici après avoir toucher les cactus donc le perso perd un cœur, clignote pendant 3 seconde et prend l’état 1 qui fait que les collision avec les ennemis ne sont plus pris en compte une fois les 3 secondes écoulées le perso redevient tangible et reprend l’état 0 et donc prend de nouveau des dégâts et peux de nouveau perdre des cœurs, je n’ai pas gérer la mort du perso j’ai fait ça vite fait

la page événement :

ne pas faire attention à l’action “Faire -1 à la variable globale Vie” c’est un truc que j’ai oublié de retirer j’ai gérer la vie avec la largeur d’un objet mosaïque à la place c’était plus rapide pour l’exemple mais j’ai totalement oublié de retirer l’action en trop

OK merci de ta réponse. :slight_smile: Pas de problème, moi aussi je développe mon jeu en Natif, c’est plus rapide pour les aperçus et surtout parce que je prévois d’utiliser un système de sauvegarde et/ou de high score.

Ça ressemble un peu à ce que j’ai fait (chez moi c’est plus le bordel, c’est ça l’inconvénient de la programmation visuelle sans code, c’est simple mais on s’y perd vite!), mais ça devrait m’aider à rendre ça plus fonctionnel…
Sinon ça a l’air intéressant, ça pourrait bien m’aider. :wink:

Bon plus tard (dans la nuit plutôt lol) je devrais refaire un post. Donc à tout à l’heure (pour les insomniaques ou ceux qui profitent bien de leurs vacances comme moi!) les autres à demain!

Edit: C’est bon, quand on prend un coup Sonic ne garde pas cette animation où il a vraiment une tête d’ahuri. Premier bug corrigé donc. :wink: A présent ma question est: comment fait-on pour qu’un objet ne détecte plus les collisions d’un ennemi ( [voix de vieux mage] le fameux secret de l’invincibilité!!! [/voix de vieux mage] )?

Ça y est! La première version que vous attendiez est disponible!

https://1fichier.com/?l8f6zh65ib

Alors actuellement on peut se déplacer, sauter (dites ce que vous pensez de la maniabilité, ou si vous trouvez mon Sonic trop lent…), le bug d’anim quand on est blessé est corrigé, il ne reste plus qu’à rajouter l’invincibilité temporaire (touchez les piques ou l’ennemi du niveau, vous vous ferez “one-shot”!), ainsi que d’autres petits trucs comme une fin de niveau inachevée, avec Sonic qui vous sourira. J’ai tenté de faire un petit game over vite fait, ça a foiré, mais c’est pas grave pour le moment. J’avais aussi rajoutez des rampes qui vous feront sauter automatiquement, pour rendre le jeu plus rapide et dynamique. Je vous rappelle qu’il s’agit d’un niveau “expérimental” si on peut dire ça comme ça, et que donc ne me râlez pas dessus si vous trouvez les graphismes pas très jolis.

Allez, sur ce, à demain!

as tu regarder le fichier que j’ai linker ? l’invincibilité y est
je redonne le lien je l’ai changé de place : http://uplea.com/dl/BB406EFD2E00479

Non effectivement je n’avais pas regardé ton jeu. :blush:

Je confirme que l’invincibilité y est, mais j’ai beau regarder tes événements attentivement, je ne trouve pas ce qui rend le perso invincible… :confused:

Bon sinon, as-tu testé mon jeu? Je souhaiterais savoir s’il y a des trucs qui vont pas!

Edit: Ah désolé l’hébergeur a supprimé le fichier… Je ré-uploaderai plus tard, désolé pour ce problème.

c’est ça :

la variable objet etat permet de définir si le perso peut prendre ou pas des dégats, autrement dit le perso prend des dégats Si il est en collision avec un ennemis Et Si la variable objet Etat est = à 0

Ah oups désolé! J’avais pas compris! Bon maintenant c’est plus clair! :slight_smile:

Bon, à présent je vais pouvoir terminer cette fonctionnalité, peaufiner 2-3 petits trucs par-ci par-là, et essayer de rajouter quelque chose de faisable et que ne serait pas trop prise de tête (j’ai rédigé un fichier texte contenant toutes mes idées pour le projet que je complète au fur et à mesure).

Normalement, demain je ferait un post avec l’avancée qu’il y a eu et je vais réessayer de mettre en ligne le jeu, j’espère que tout se passera bien!

Merci à vous, vous m’avez permis de redémarrer le projet qui était un peu en standby faute de connaissances! :smiley:

Bonsoir, petit up du projet!

Bon je n’ai pas pu faire tout ce que j’ai voulu faire, et surtout le problème de l’invincibilité est encore là!

Où est-ce que je me suis encore planté? Screenshot des événements:

(si vous avez besoin du .gdg, demandez-moi et je le mets en ligne)

Bonne prog à tous! :smiley:

dans mon exemple j’utilise une variable objet alors que toi tu utilise une variable normale je ne sais pas si cela à une incidence (j’ai encore pas mal de chose à apprendre sur le soft) j’ai également définit la variable l’as tu fait également ?

Je vois rien qui cloche(enfin qui empêche le fonctionnement de l’invincibilité), par contre l’invincibilité ne dur que 1 seconde, 1 petit truc, normalement ça fonctionne quand même, mais je pense qu’il vaut mieux mettre les chronos à la fin des événements,

Edit: À et on n’est pas obligé de déclarer une variable, c’est fortement conseiller pour si retrouver, surtout sûr de gros projet car au bout d’un moment y en a un paquet