Peut-être ne le savez-vous pas (aussi étonnant que cela puisse paraître) mais je suis actuellement en train de faire un "The Impossible Game" ou un "Geometry Dash".
Étant arrivé à un stade assez avancé du jeu, et ayant fini une grosse partie de celui-ci, je me suis dit que qu'il était temps de vous faire partager un peu plus en détail ce que je suis en train de faire.
*Transition*
Principe
Bon, je suppose que tout le monde connaît le principe, non ? Tssss...
Geometry Dash est un jeu qui a connu un grand succès sur mobile, à l'instar de Flappy-Bird ou de Don't Touch The Spikes. Le principe est simple : parcourir un niveau qui scrolle automatiquement horizontalement en évitant tous les pièges que vous rencontrerez. Pour cela, il vous faudra seulement sauter.... "seulement". Le but étant le plus souvent de retenir le niveau pour ensuite mieux anticiper les actions à réaliser. Une petite image pour vous rafraîchir la mémoire :
Quoi ?! Il y a un éditeur de niveau intégré ?
Eh oui ! Vous ne rêvez pas ! Mais arrêtons de crier si vous le voulez bien ! Vous pouviez jouer à Geometry Dash CE en cours de maths (ou autre d'ailleurs) : maintenant vous pourrez créer et éditer des niveaux directement sur votre calculatrice !
Pour cela, il vous suffit - dans le menu principal - d'appuyer sur pour éditer n'importe quel niveau et pour créer le votre !
Je ne détaille pas la marche à suivre ici mais si vous voulez plus d'informations, allez faire un tour au topic de l'éditeur de niveau intégré !
Par ailleurs, si vous aimez créer des niveaux, l'équipe des Geometry Dasheurs peuvent vous guider. N'hésitez pas à leur demander de rejoindre leur team ! Plus d'info en cliquant sur ce lien.
Comment puis-je créer mon propre niveau sur ordinateur ?
C'est relativement simple mais il faudra surtout avoir la patience de créer son niveau ! Voici les étapes à suivre :
- Téléchargez et installez Tiled, un logiciel qui sert à créer des niveaux de jeux à partir d'un tileset
- Téléchargez le tileset de Geometry Dash à cette adresse
- Créez le niveau d'un minimum de 10 tiles de hauteur et importez le tileset ("Cartes" → "Nouveau Tileset"). Vous pourrez bien sûr changer plus tard la taille de la MAP en allant dans le menu "Cartes" → "Redimensionner la carte"
- Quand votre niveau est terminé, exportez-le en .CSV
- Ensuite, allez sur ce site puis copiez-collez le contenu du fichier .CSV dans le "data" et mettez-lui un ou deux noms entre 1 et 8 caractères et une difficulté. Les espaces et les lettres sont les seuls caractères autorisés.
- Si votre niveau a des changements de contexte, mettez-les dans le champ adapté. La syntaxe est la suite : "Pour chaque changement de contexte, vous devez seulement mettre le numéro de tile du changement. Les changements doivent être séparés par une virgule. Attention à mettre un numéro pair de changements, sinon le convertisseur ne vous autorisera pas à importer votre niveau !". Pour plus d'informations, je vous conseille d'aller jeter un oeil à cette page.
- Une fois l'AppVar téléchargée, transférez-la sur votre calculatrice et... c'est tout !
N'hésitez pas à nous faire part de vos niveaux en les uploadant ! Ça me ferait hyper plaisir et ça pourrait en intéresser plus d'un
Une adaptation sur TI-83 Premium CE et sur TI-84+CE ?
Le programme était dans sa version finale (ou du moins 1.0), voici les features à ce jour disponibles :
- Fonctionnalités de base : ça ne prend qu'un élément dans la liste, mais ce fut une grosse partie qui on peut dire, est presque entièrement terminée. Elle compte :
- Gestion des blocks de base : Pics, Blocks, petits Pics noirs, doubles-sauts, et autres...
- Gestion du personnage, des collisions des sauts...
- Animations diverses et avariées
- Scrolling vertical permettant d'avoir des niveaux de plus de 10 tiles de hauteur
- Menus divers, squelette du jeu de base
- Support du mode inversé (la tête en bas)
- Possibilité de rajouter sa propre MAP via un système d'AppVars
- Support du vaisseau de la mort qui tue (wesh)
- Éditeur de niveau intégré
- Créer un niveau, le nommer, choisir sa difficulté (à titre indicatif, comme affiché dans le menu principal avec le smiley)
- Editer un niveau déjà créé
- Commandes de base :
- Insérer/Supprimer un tile
- Choisir le tile à insérer (voir l'image raccourcis clavier)
- Allonger/Raccourcir la map en X et en Y (mamène)
- Lancer le niveau qui est en train d'être éditer/Le lancer à partir de la position du curseur
- Ajouter un changement de contexte (Gravité/Vaisseau Spatial)
- Copier/Coller
- Convertisseur AppVar -> CSV pour pouvoir ensuite l'éditer via Tiled
Screenshots et téléchargement (mis-à-jour à chaque modification majeure)
Voilà à quoi ressemble la bête pour le moment (à noter que ce n'est pas la vitesse maximale, je me garde de la marge) :
Pour l'éditeur de niveau :
Show/Hide spoilerAfficher/Masquer le spoiler
Précédents Screenshots (du plus vieux au plus récent)
Vous pouvez télécharger l'actuelle version de Geometry Dash en suivant ce lien !
Voilou les pitchouns, je vous mets les avancées du projet ici à partir de maintenant, et pis quand j'aurai un problème, je saurai à qui m'adresser (eh eh...).
Je tiens en dernier lieu à remercier chaleureusement et comme il se doit :
- Anonyme0 qui a largement contribué au projet en me fournissant tout l'aspect graphique du jeu (malgré ses demandes pointilleuses en terme de reproduction du jeu original ).
- Shadow qui m'a autorisé à ajouter ses niveaux dans l'archive de Geometry Dash ! On monte (à l'heure où j'écris ces lignes) à 8 niveaux intégrés de base ! Merci à lui !
- TheMachine02 (ou TheMachichi42 pour les intimes) pour sa patience et pour son aide, par rapport aux aspects techniques de l'assembleur (notamment pour les timers toussa...)
- Grosged pour m'avoir très gentiment donné sa p'tite astuce pour tracer des ronds ! Ça m'a évité quelques heures d'écriture d'une routine d'affichage de disques
- Vous, pour m'avoir soutenu, pour avoir téléchargé le programme et pour avoir répondu au topic. Quoi ? Ce n'est pas déjà fait ?
- Enfin Adriweb et l'open-source qui m'a permis d'utiliser tivars_lib pour l'importateur de MAP ! J'ai par ailleurs légèrement modifié de la fonction
makeDataFromString($str = '', array $options = [])
du fichier TH_0x15.php qui comme son nom l'indique transforme une chaine de caractères en data pour être inséré dans le fichier.8xv. La modification me permet de mettre en entrée quelque chose du genre "10,45,68,..." au lieu de "0A2D44". Voici le code modifié :Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
public static function makeDataFromString($str = '', array $options = [])
{
$explodeDATA = explode(',', $str);
$bytes = sizeof($explodeDATA) + 1;
return array_merge([ $bytes & 0xFF, ($bytes >> 8) & 0xFF], array_map('intval', $explodeDATA));
}