Forum de la communauté SFML

Général => Projets SFML => Discussion démarrée par: Anakin le Avril 16, 2012, 09:49:08 pm

Titre: [SpinyENGINE 1.0] - Sonic The Hedgehog
Posté par: Anakin le Avril 16, 2012, 09:49:08 pm
(http://www.spiny-engine.com/data/banniere_mini.png)

Bonjour à tous,

Je vous présente ici mon principal projet que je développe seul depuis le courant de l’année 2009 : SpinyENGINE.
www.spiny-engine.com

Bande Annonce

Voici la première bande annonce du projet.
http://www.youtube.com/watch?v=RQCvl-jy5e0 (http://www.youtube.com/watch?v=RQCvl-jy5e0)

Présentation

Avant-propos

Au premier abord, l'idée du projet peut paraître peu originale. En réalité elle est simplement née d'une certaine nostalgie et d'une volonté de relever un défi ambitieux, celui de reproduire le plus fidèlement possible le moteur de jeu de la série Sonic The Hedgehog des années 1990.

Le projet SpinyENGINE est destiné à tous les fans ou nostalgiques des premiers opus de la série Sonic The Hedgehog mettant en scène le célèbre hérisson bleu.

Le projet dans son ensemble

Le projet a débuté en 2009. L’ensemble du code a été réécrit au dernier trimestre 2011. Cette dernière refonte est également le point de départ du développement de l’éditeur de levels.

Le projet s’articule donc en réalité autour de 2 développements :
En vrac
Graphismes

Actuellement la plupart des images ont été reprises sur internet car mes compétences sont limitées dans ce domaine et je ne suis pas capable de les reproduire. Ainsi seules les plateformes et quelques images ont été créées.

Néanmoins les images ont été retravaillées. Le travail minimum consiste à créer une planche quadrillée afin de disposer les images avec un espace précis.

Voici un extrait de la planche du héros principal :
(http://www.spiny-engine.com/data/planche_mini.png)

SpinyMapEditor

SpinyMapEditor est un éditeur de levels simple et efficace répondant aux besoins du projet en matière de création de levels.

Entièrement réalisé en C++ à l’aide de la librairie Qt, le programme est relativement optimisé.

Il permet de disposer à l’aide de la souris les différents éléments qui composeront les niveaux du jeu et propose un certains nombre de fonction telles que :
Chaque élément est défini par un fichier XML ainsi qu’un fichier PNG.

Les fichiers levels (*.LVL) sont écrits en binaire.

Le mot de la fin

Le site du projet vous permettra de trouver d’autres informations et d’accéder aux liens de téléchargement.
www.spiny-engine.com/site/download.php

Il est évident que toutes les remarques, critiques ou commentaires (positifs ou négatifs) sont les bienvenus et feront l’objet d’une attention particulière.
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Avril 29, 2012, 08:08:56 pm
Bonsoir,

Le programme utilise maintenant la version 2.0 de la SFML.

Autre nouvelle, l'éditeur de level"Spiny Editor" s'est vu ajouté la fonction "Play" qui permet aux utilisateurs de lancer le test de la map en cours de création. Cela sera disponible très prochainement dans la version 3.0 du programme.
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: shingo le Mars 23, 2013, 10:33:38 pm
C'est dommage que ton projet n'est encore populaire car je le trouve tout simplement énorme. Je suis un fan des premiers Sonic et cela ma donné envie de découvrir ce spy engine.
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Mai 29, 2013, 07:22:28 pm
Salut,

Merci beaucoup !
Le projet avance à grands pas et je suis sur le point de sortir une petite démo très prochainement  :)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Mai 29, 2013, 09:36:53 pm
Vivement la démo , je croyais le projet mort.
tu comptes nous parlé de comment tu as géré les collisions ? ne me donne pas le lien du sonic physic guide ^^
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 03, 2013, 07:13:04 pm
Salut, non le projet n'est pas mort, bien au contraire  :D

Pour les collisions oui je peux vous exposer comment je m'y prends. C'est du 100% made in home  ;)
A mon sens il s'agit de la partie la plus complexe car le moteur gère les collisions à 360°.

Un début d'explication :

Mes entités physiques sont classées en 2 catégories distinctes. Une entité physique peut être :

Ainsi les différents cas de collisions qui se présentent sont les suivants :
- cercle VS cercle (ex : 1 héros contre un ennemi)
- cercle VS polygone (ex : 1 personnage contre 1 plateforme)
- polygone VS polygone (très rare... ex : un bloc déplaçable par le héros)

En ce qui concerne les polygones, ils sont donc constitués de différents segments. Chaque segment se voit attribuer des propriétés de collisions.

Si cela intéresse du monde il faudrait que je m'attache à écrire un document pour présenter un peu le fonctionnement du moteur.



Annonce
Je poste également ce soir pour annoncer la sortie imminente d'une nouvelle démo !  :)
Je reviendrai vers vous lorsqu'elle sera en ligne, d'ici quelques jours...


[attachment deleted by admin]
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 03, 2013, 08:01:26 pm
Tant mieux ^^ , j'ai hâte de voir cela , Tu découpes aussi la physique en 4 suivant la vitesses et la direction du joueur pour le faire "coller" aux mur ou tu t'y prends autrement ? si je comprends bien , pas de collisions au pixel alors.
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 03, 2013, 09:23:05 pm
Citer
Tant mieux ^^ , j'ai hâte de voir cela
D'ici quelques jours si tout va bien  ;)

Citer
Tu découpes aussi la physique en 4 suivant la vitesses et la direction du joueur pour le faire "coller" aux mur ou tu t'y prends autrement ? si je comprends bien , pas de collisions au pixel alors.
Non pas de pixel perfect. La partie physique est complétement dissociée de la partie graphique.
Pas de découpe par 4 non plus car je gère les collisions à 360° (courbe / looping), et donc il est nécessaire d'utiliser la notion de vecteur.
Titre: Re : Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 03, 2013, 10:34:24 pm
Non pas de pixel perfect. La partie physique est complétement dissociée de la partie graphique.
Pas de découpe par 4 non plus car je gère les collisions à 360° (courbe / looping), et donc il est nécessaire d'utiliser la notion de vecteur.

ce que je voulais dire par 4 , c'est que ton personnage à un vecteur gravité "v(0,9.8)" par exemple, mais lorsque qu'il cour très vite
& qu'il entame une pente vers la droite qui le mène à un angle droit son vecteur gravité change en v(9.8,0). en lisant le physic guide de sonic , j'ai compris qu'il gérais les collisions 360 de cette manière.
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: totorigolo le Juin 04, 2013, 04:43:10 pm
Même si je ne suis pas un grand fan de Sonic, j'ai hâte de voir une démo de ton moteur :)

Mais je me demande si tu compte aussi reproduire les glitch du jeu original  :P  J'imagine bien un mode "avec glitch"...  ;D
Titre: Re : Re : Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 04, 2013, 11:12:11 pm
Non pas de pixel perfect. La partie physique est complétement dissociée de la partie graphique.
Pas de découpe par 4 non plus car je gère les collisions à 360° (courbe / looping), et donc il est nécessaire d'utiliser la notion de vecteur.

ce que je voulais dire par 4 , c'est que ton personnage à un vecteur gravité "v(0,9.8)" par exemple, mais lorsque qu'il cour très vite
& qu'il entame une pente vers la droite qui le mène à un angle droit son vecteur gravité change en v(9.8,0). en lisant le physic guide de sonic , j'ai compris qu'il gérais les collisions 360 de cette manière.
Ah oui je vois ce que tu veux dire  :)
Effectivement dans les jeux officiels la détection des collisions se fait grâce à des "capteurs", sorte de lignes associées au héros et qui servent à détecter la position par rapport aux pixels des plateformes.

Quand je me suis lancé dans le développement de mon moteur je n'avais aucune idée de la façon dont la physique était gérée dans les jeux Megadrive. J'ai opté pour l'utilisation de segments et j'ai eu l'idée d'assimiler les personnages à des cercles pour les calculs.

Ainsi tous mes calculs de détection de collisions est basée sur des calculs de projection de position (cercle / extrémités de segment), ainsi que des calculs d'intersections entre cercles et segments.

Au final je suis très satisfait de ce choix car il m'a mené à une gestion de collisions relativement fiable  :)

Par ailleurs je te remercie car je n'avais jamais lu ce fameux "Sonic Physic Guide". J'avais visionné des centaines de vidéos  :D  mais certains points de ce guide vont compléter tout ça et vont me permettre de paufiner certaines choses. Donc merci à toi  ;)
Titre: Re : Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 04, 2013, 11:13:34 pm
Même si je ne suis pas un grand fan de Sonic, j'ai hâte de voir une démo de ton moteur :)

Mais je me demande si tu compte aussi reproduire les glitch du jeu original  :P  J'imagine bien un mode "avec glitch"...  ;D
Merci pour ton message ! Ne compte pas trop sur les glitch mais la démo va arriver d'un jour à l'autre :)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 04, 2013, 11:41:25 pm
je suis très intéressé par ton système de collision , j'ai hâte de voir tout ça en action , y a intérêt que ca colle à la mégadrive !   ;D
Tu t'es bricolé un éditeur de tuiles segment alors ?
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 07, 2013, 12:11:34 am
Salut !

Bien sûr que ça colle à la Megadrive  ;) En tout cas c'est l'objectif 1er du projet !

En ce qui concerne l'éditeur, j'ai développé un programme avec Qt qui permet de créer de fichiers binaires charger par le jeu.
Chaque élément est défini par un fichier XML et un fichier PNG.

Exemple :
<?xml version="1.0" ?>
<element id="2000022">
        <z>3500</z>
        <Propulsion>1500</Propulsion>
</element>
 

L'éditeur ne gère ainsi que des éléments simples (1 image + des paramètres modifiables). Je les place avec différents outils. Je peux donc créer mon level très rapidement en ne me souciant que de la position de mes éléments et de quelques paramètres.

Ce n'est ensuite que dans le jeu que les segments sont fixés dans le code pour chaque élément.
Exemple pour le ressort, il est constitué de 4 segments (autour de l'image).

Un petit aperçu de l'éditeur en fichier joint.

Par ailleurs une démo du moteur sera mise en ligne ce week-end, sans doute demain soir si je ne trouve rien à corriger d'ici là  ;)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 07, 2013, 01:01:45 am
Haa , Compatible linux j’espère ?  :)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 09, 2013, 06:57:40 pm
Hélas non pas dans l'immédiat en tout cas car je n'ai pas de quoi le compiler sous linux. Mais je vais essayer de vois ça  ;)

Tu n'as pas de quoi le tester sous Windows ?

Une démo avec plusieurs petits levels du style "Engine Test" seront en ligne ce soir, quand j'aurai fini. Donc peut être un peu tard  :P
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 09, 2013, 07:08:33 pm
J'ai un windows 7 x64 , mais très peu dessus. si il te faut un coup de paluche pour une compilation Linux , je peu te filé un coup de paluche y a pas de problème.
J'ai hâte à ce soir ;) , en attendant je vais usé la touche F5 sur cette page ^^
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 10, 2013, 12:10:12 am
La démo est disponible à la page suivante :

www.spiny-engine.com/downloads/Spiny_Engine_Test.rar (http://www.spiny-engine.com/downloads/Spiny_Engine_Test.rar)

Les levels sont courts mais donne une bonne idée de l'avancement du moteur.
D'autres levels seront disponibles dans la semaine.

Have fun  ;)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 10, 2013, 09:31:27 am
Super sympa, manque le fullscreen ^^
le décompte de la noyade prend effet même pendant un game over ^^
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 10, 2013, 07:00:52 pm
Merci  ;)

Tu as testé les 2 personnages ?

De mon côté et je corrige quelques petites choses. Suite à cela j'ai un nouveau problème de collision. Un truc absurde que j'espère trouvé rapidement  :P

Quand à l'histoire du décompte pendant le Game Over merci c'est corrigé !
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 10, 2013, 07:07:55 pm
oui j'ai testé les 2 ^^
il faut des niveaux plus grand & des pièces  :P
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 10, 2013, 07:13:57 pm
Oui disons que l'idée était de présenter les possibilités du moteur.

Je vais mettre en ligne 2 autres levels dans la soirée  ;)

Rien à signaler au niveau bugs/erreurs ?
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 10, 2013, 07:36:55 pm
non pour le moment , trop cour pour le dire.
juste une petite chose :
je suis mort a cause de la plateforme mobile qui descendait , alors que j'étais collé à coté. on aurais dit un bug de la mégadrive ^^
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 10, 2013, 07:45:42 pm
En fait c'est voulu. C'est à dire que si jamais l'angle de la plateforme touche le héros alors qu'il est au sol, le héros se fait écraser.

Ca peut paraitre être une sanction sévère lorsqu'on a l'impression de ne pas vraiment être dessous mais le moteur détecte une collision malgré tout  :P
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 10, 2013, 09:16:03 pm
Une mise à jour est en ligne avec cette fois 2 levels supplémentaires à tester  ;)

www.spiny-engine.com/download/Spiny_Engine_Test_10juin.rar (http://www.spiny-engine.com/download/Spiny_Engine_Test_10juin.rar)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 11, 2013, 04:10:28 am
voila mon nouveau test:

- pas assez contrôlable dans les airs
- mort au deuxième niveau après le pont & après le passage à 90° , j'ai voulu le reprendre , en sautant vers le pont je suis mort.
- 2° niveau , partie mobile , je tape le bord , je meurt.
- la friction de l'eau est trop élevé
- les ressorts "plat" se déclenche à peine dessus

Continue comme ca , j'aadoore :D
Titre: Re : Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 12, 2013, 12:05:50 am
Salut !

Continue comme ca , j'aadoore :D
Merci  ;)
J'effectue et teste quelques réglages au niveau des détections de collisions.
Par ailleurs j'ai bien lu tes retours et vais te répondre point par point :

- pas assez contrôlable dans les airs
Je me suis pourtant efforcé de reprendre au mieux les valeurs des constantes physiques des jeux officiels.
Peux-tu préciser ce qui te parait difficile à contrôler ?
Es-tu certain que cela diffère des jeux officiels ?

- mort au deuxième niveau après le pont & après le passage à 90° , j'ai voulu le reprendre , en sautant vers le pont je suis mort.
Une petite question, cela m'arrangerait que tu répondes oui  :P
Es-tu mort dans les airs ou bien en touchant une plateforme ?
Est-il possible que tu sois simplement retombé sur un projectile balancé par le cameleon qui se trouve à cet endroit ?

- 2° niveau , partie mobile , je tape le bord , je meurs.
C'est ce dont on a parlé hier ou bien il s'agit d'autre chose ?
Car effectivement si tu es en contact avec le sol et que la plateforme mobile vient te toucher, tu meurs.
J'ai une idée, je vais tester un autre traitement pour le cas où seul un angle touche le héros.

- la friction de l'eau est trop élevé
J'ai volontairement voulu un contraste élevé entre l'air et l'eau.
Il se trouve que le calcul sous l'eau n'est pas le même dans les jeux officiels. Néanmoins c'est relativement proche au niveau du résultat.
Si besoin je pourrai faire un mix des 2 techniques.

- les ressorts "plat" se déclenche à peine dessus
En fait la collision est détectée lorsque la position suivante dépasse le segment du ressort.
Ainsi le ressort est réactif mais se déclenche uniquement lorsqu'il y a collision.


Merci beaucoup pour tes retours, je garde tout dans une liste et vais continuer mes tests de réglage  ;)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Cpl.Bator le Juin 14, 2013, 12:17:48 pm
j'ai refait un test ce midi :

- Lors d'une collision avec le bord gauche de l'écran , il faut éliminer la vélocité du joueur qui continue a faire effet.

- Le spin dash n'est pas comme l'original , si tu maintiens le saut et que tu lâches la touche bas ,  il pulse en l'air ^^

- pour la mort en sautant , c'est bien le caméléon. ;)

Pour le contrôle dans les airs , le sonic original est plus "maniable" lors d'un saut ( juste un poil )
J'ai hâte à la suite ^^
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Juin 14, 2013, 05:29:38 pm
Salut  ;)

Merci pour tes retours !

Depuis la démo, j'ai effectué un certains nombre de réglages sur la partie physique et ai corrigé d'autres choses. Le moteur me parait prêt à attendre de nouveaux retours de la part des joueurs.

J'aurais bien sorti une nouvelle démo mais je ne sais pas si j'aurai le temps car pas de PC pendant 2 semaines à partir de demain. Je pourrai juste passer de temps à autres sur les forums.

En attendant voici un schéma qui décrit (un peu simplifié) l'une de mes formules de détection de collision :

(http://www.spiny-engine.com/download/collision_directe.png)
Titre: Re : Spiny Engine - Sonic The Hedgehog
Posté par: Anakin le Octobre 20, 2013, 10:33:23 pm
Bonsoir à tous  ;)

Voici le lien vers une nouvelle démo :

http://www.spiny-engine.com/download/Sonic_&_Knuckles_SFML_(Demo_octobre_2013).rar (http://www.spiny-engine.com/download/Sonic_&_Knuckles_SFML_(Demo_octobre_2013).rar)

Si vous avez aimé Sonic, vous aimerez "Sonic & Knuckles SFML" :
Titre: Re : SpinyENGINE - Sonic The Hedgehog
Posté par: Cpl.Bator le Novembre 05, 2013, 09:45:41 am
Super sympa cette démo, à quand une version Linux ?  :)
Titre: Re : SpinyENGINE - Sonic The Hedgehog
Posté par: Sarcarx le Juin 19, 2014, 10:02:05 am
Salut,

Je ne comprends pas vraiment pourquoi c'est complique de porter ton projet sur linux, SFML/Qt permettent de porter ton projet très facilement, au mieux mets les sources pour que les gens compilent, si tu ne veux pas partager ton projet tu peux toujours compiler un projet pour linux.
Titre: Re : SpinyENGINE - Sonic The Hedgehog
Posté par: Anakin le Juillet 03, 2014, 06:21:44 pm
Salut,

Je n'ai jamais évoqué le fait que c'était compliqué  ;)
Il faut juste que je m'en occupe, c'est tout. L'explication c'est que le code est en permanence en évolution et que je devrais de temps en temps me stopper et faire une compilation Windows + Linux, peu importe si je n'ai pas tout à fait fini  ;) C'est de ma faute je l'avoue.

J'en profite pour vous indiquer que le projet est toujours en cours de développement même s'il a été en stand by pendant quelques mois.

J'effectue une refonte totale du moteur. J'avance doucement.

Par ailleurs, voici le nouveau logo du projet SpinyENGINE :

(http://www.spiny-engine.com/download/new_logo.png)

A bientôt  :D