Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Just Too Many Mechanics 2 (JTMM2)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Just Too Many Mechanics 2 (JTMM2)

Posté le 22/09/2020 16:12

Dépôt du projet
cgit personnel
miroir sourcehut

Devlog quotidien
Trifouillages de Minuit #1
Trifouillages de Minuit #2
Trifouillages de Minuit #3
Trifouillages de Minuit #4
Trifouillages de Minuit #5
Trifouillages de Minuit #6
Trifouillages de Minuit #7

obsolète
Cliquez pour recouvrir
Bonjour ! JTMM2 (Just Too Many Mechanics 2) est un jeu de plateforme en cours de développement.
Je crée ce topic pour laisser une trace il n'est pas encore finalisé et un peu brouillon.

Mon objectif est de créer le meilleur jeu de plateforme jamais créé sur calculatrice(tm), avant que quelqu'un de doué ne s'y mette et grille la place x)

Cette fois-ci je tente de faire un code propre. A tout ceux qui ont lu le code de JTMM : pardonnez moi. Personne ne mérite ça

Mais surtout, je veux faire un bon jeu. Sur tous les plans. Je crois m'être amélioré en game design depuis JTMM, le futur nous le dira. Je ferai tout mon possible pour créer un jeu qui pardonne le joueur et lui donner un bon choix de mouvement (je t'ai entendu Lephé).

Je travaille entre environ 2 et 5 heures par jour sur le projet, alors attendez vous à un build décent d'ici la fin de l'année 2099

Pour suivre mon progrès, je vous recommande de lire les notes de commits sur Gitea.
J'essairai de poster ici à chaque étape importante du développement.

Si vous avez des remarques, suggestions, critiques ; que ce soit sur le code, le jeu ou ce topic : lâchez vous.
Je prend tout

Dépôt Gitea principal.
Dépôt de KBLE (en développement).

Remerciements
Cliquez pour recouvrir
Merci Lephénixnoir, merci pour gint et merci pour ton aide quand je galère sur des trucs stupides.
Merci beaucoup à Masséna pour avoir été la seule personne à s'être intéressé à JTMM premier du nom à un moment donné et m'avoir motivé à continuer. Il est aussi le graphiste principal du projet !
Merci à Tituya pour son support et les icônes.
Merci à tous les membres de Planète Casio m'ayant aidé d'une façon ou d'une autre.



1, 2, 3, 4, 5, 6 Suivante
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 22/09/2020 18:13 | #


Ahah enfin un topic !
Comme je l'ai déjà évoqué plusieurs fois en privé, bonne chance pour ce projet ambitieux !

Une image disponible du projet en ce moment ? Ou même tes objectifs de développement pour le moment ?
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 22/09/2020 18:53 | #


Eh merci
Voici une vidéo du build 90+E actuel (upload sur le link temporaire, je mettrai sur Tutube demain), avec le scrolling et des informations de debug à gauche (notamment la collision tout en bas).



Mon objectif cette semaine est de terminer les bases du moteur et créer un gameplay simple avec le feeling que je recherche (prototypage) et le bidouiller avec la résolution du jeu pour trouver l'aspect que je cherche.
ouais ouais
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 22/09/2020 20:41 | #


Et c'est parti pour relancer le train de la hype ! J'attends avec impatience le premier vrai build du moteur

KikooDX a écrit :
Merci beaucoup à Masséna pour avoir été la seule personne à s'être intéressé à JTMM premier du nom à un moment donné et m'avoir motivé à continuer.

Mais de rien, c'était un plaisir de faire un peu de contenu ! D'ailleurs, si tu as besoin d'un graphiste je suis disponible™, tu sais où me trouver...
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 22/09/2020 21:05 | #


Merci
Je vous tiens au courant de ma progression.

Massena a écrit :
D'ailleurs, si tu as besoin d'un graphiste je suis disponible™, tu sais où me trouver...

Je ne manquerai pas de t'exploiter demander tes services, merci beaucoup
ouais ouais
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 23/09/2020 16:17 | # | Fichier joint


Salut ! Aujourd'hui j'ai amélioré le code de caméra pour qu'elle se bloque au coin du niveau et se centre complètement si il tient en un écran.
Voici les commits concernés : https://gitea.planet-casio.com/KikooDX/jtmm2/compare/431297fa62...b0707eebe01c8ba35f2e9ffb8cf578a428c01c56
Une image d'écran centré sur un petit niveau.

ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 23/09/2020 19:52 | #


Wow, génial ! Serait-ce le tout premier add-in entièrement compatible Graph mono et Graph 90 ?

Vu ton expérience avec les platformers, j'ai aucun doute que ce sera un super jeu. J'espère que l'écran de la Graph mono arrivera à représenter les innombrables mécaniques le titre promet
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 26/09/2020 11:28 | #


Lephenixnoir a écrit :
Wow, génial ! Serait-ce le tout premier add-in entièrement compatible Graph mono et Graph 90 ?

En tout cas le premier jeu gint à ma connaissance
Le fait de développer pour 90+E et Mono en parallèle m'a permit d'apprendre à séparer l'affichage et la logique complètement, ce qui rend le code beaucoup plus propre au final Merci à toi d'avoir rendu ça aisément faisable, gint est un framework vraiment incroyable
Si une calculatrice avec un ratio différent est un jour supporté par gint, le programme devrait compiler en changeant quelques valeurs de la config. C'est théorique mais je suis content de ça.

Lephenixnoir a écrit :
Vu ton expérience avec les platformers, j'ai aucun doute que ce sera un super jeu. J'espère que l'écran de la Graph mono arrivera à représenter les innombrables mécaniques le titre promet

Merci beaucoup Pour la Graph Mono j'espère aussi, mais pour le moment ça se présente bien !
Je commence enfin à avoir moins peur des performances en C, je surmonte mon traumatisme Basic petit à petit x)

Ajouté le 28/09/2020 à 13:27 :
Bonjour, j'étais occupé pendant quelque jours par le concours de la rentrée, j'ai pu me remettre à travailler et j'ai fait des collisions simplistes pour pouvoir commencer à prototyper. Bon euh bonne nouvelle, ça fonctionne. Mauvaise nouvelle, c'est crade et je vais sûrement devoir tout réécrire
Commit concerné.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 28/09/2020 13:32 | #


C'est un peu tordu à utiliser mais en termes de code ça n'a pas l'air immonde en tous cas. Un peu de duplication au pire.

Btw: quand tu inclus <stdbool.h> tu peux écrire bool au lieu de _Bool. En fait c'est le but même de ce header que de fournir bool, true et false. Tu peux le voir si tu l'affiches :

cat $(sh-elf-gcc -print-file-name=include/stdbool.h)

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 28/09/2020 14:09 | #


Je vais garder les collisions pour faire des prototypes rapides, mais ça va changer. Rien que le fait de devoir passer l'ID du layer de collision en paramètre de fonctions de collision est complètement contradictoire x)

Merci pour bool, j'ai corrigé ça.
ouais ouais
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 22/12/2020 17:06 | # | Fichier joint


Bonsoir PC ! Après de nombreux mois d'inactivité sur le projet je m'y suis repenché un peu pour nettoyer le code et reprendre le développement. Comme me l'a suggéré Lephé', je ferai des builds réguliers quand il y aura des changements intéressants.
En résumé j'ai :
Commenté les parties importantes du code
Ajouté des TODO comme tout mauvais développeur
Nettoyé certaines sections et supprimé de la redondance
Implémenté de vraies collisions
Réimplémenté des collisions parce que les précédentes étaient trop lentes
Accélération (complètement pétée ATM) et friction
Des trucs que j'ai oublié, mais z'avez qu'à voir sur le Gitea
Je vais essayer de continuer à implémenter petit à petit des éléments importants tout en nettoyant les sources, j'aimerai que le code soit compréhensible et facilement modifiable par d'autres personnes.

Téléchargement des builds mono et polychrome :
https://www.planet-casio.com/storage/forums/JTMM2_preview_Tue_Dec_22_04-53-04_PM_CET_2020-180038.zip
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 22/12/2020 17:14 | #


Hey ! C'est très cool la compatibilité mono/poly, le premier jeu à faire ça à ma connaissance (hors jeux y'a C.Basic).

Le positionnement est vraiment précis, faisant du labyrinthe presque un de ces puzzles au seul gelé où tu peux avancer qu'en ayant un mur contre toit à tout instant : quand on n'a pas de mur pour se caler c'est quasiment impossible de passer dans les ouvertures de taille 1.

Sinon je me souviens avoir eu un doute mais je sais plus comment ça s'était fini : tu es toujours bien en vue de côté comme JTMM1, ou tu fais de la vue de dessus ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 22/12/2020 17:19 | #


J'apprécie beaucoup la caméra. Maintenant comme lephé, les passages sont complexes

Je me demande vraiment comment tu va réussir à faire des niveaux, le générateur va être complexe
Je n'ai pas eu de bug niveau collision

Hâte de voir ce jeu, il me donne vraiment envie
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 22/12/2020 17:19 | #


Lephenixnoir a écrit :
Hey ! C'est très cool la compatibilité mono/poly, le premier jeu à faire ça à ma connaissance (hors jeux y'a C.Basic).

Le positionnement est vraiment précis, faisant du labyrinthe presque un de ces puzzles au seul gelé où tu peux avancer qu'en ayant un mur contre toit à tout instant : quand on n'a pas de mur pour se caler c'est quasiment impossible de passer dans les ouvertures de taille 1.

Sinon je me souviens avoir eu un doute mais je sais plus comment ça s'était fini : tu es toujours bien en vue de côté comme JTMM1, ou tu fais de la vue de dessus ?

Merci

Le positionnement c'est temporaire, le jeu fera comme la plupart des platformers modernes et permettra au joueur de se "téléporter" autour des coins
Là c'est en effet inhumain sachant que le joueur fait exactement la taille d'une tuile et que le positionnement se fait en subpixels

Ce sera un platformer en vue de côté, je n'ai juste pas encore programmé la physique : je voulais des collisions fonctionnelles avant d'implémenter la physique, et j'ai bien fait vu le nombre de problèmes que j'ai eu avant d'avoir un truc qui marche x)

Ajouté le 22/12/2020 à 17:21 :
Tituya a écrit :
Je me demande vraiment comment tu va réussir à faire des niveaux, le générateur va être complexe
Je n'ai pas eu de bug niveau collision

Hâte de voir ce jeu, il me donne vraiment envie

Les niveaux seront créés par des humains, la génération est juste pour les tests Je pense utiliser Tiled comme éditeur.
Tant mieux !

Merci, ça fait plaisir
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 22/12/2020 17:22 | #


Kikoodx a écrit :
Là c'est en effet inhumain sachant que le joueur fait exactement la taille d'une tuile et que le positionnement se fait en subpixels

Vous avez adoré JTMM1, il était pixel-perfect. Vous raffolerez de JTMM2, le jeu subpixel-perfect !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 24/12/2020 11:13 | # | Fichier joint


Salut salut ! Le joueur se déplace désormais à une vitesse décente et il peut sauter, pas mal pour un platformer
Le saut fonctionne avec des grace frames, pour tous les fadas des jeu de platforme modernes qui assistent toutes les entrées #troll
Je n'aurai pas beaucoup de temps aujourd'hui mais j'aimerai implémenter le buffering des entrées (devrait être "facile").
Téléchargement des derniers builds mono/poly as usual :
https://www.planet-casio.com/storage/forums/JTMM2_preview_Thu_Dec_24_10-47-41_AM_CET_2020-180095.zip
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 24/12/2020 18:55 | #


Pas mal ! Le saut est un peu floaty, ça pourrait être pratique si les mécaniques sont précises. Le subpixel me tue toujours donc pour l'instant je trick out-of-bounds pour atteindre des zones où je peux me déplacer aisément. T'as pas envisagé de faire le joueur plus petit que 1×1 en taille ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 25/12/2020 14:06 | #


Merci, j'aime bien le saut pour le moment mais toutes les valeurs peuvent être considérées temporaires
Pour la taille du joueur elle est fixée à 1x1 pour le moment à cause de la manière dont je gère les collisions, mais je veux rendre ça dynamique le plus vite possible.
Avec les festivités je n'ai pas autant de temps que je le voudrais mais je compte rendre ça possible bientôt
En plus j'ai de petits bugs vicieux avec l'input buffering je travaille dessus.
ouais ouais
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 27/12/2020 13:29 | # | Fichier joint


Salut ! J'ai réglé le bug vicieux en recommançant de zéro la partie concernée (youpi). Le système pour l'input buffering est maintenant fonctionnel et presque terminé. J'ai mis une marge de 200 ms environ sur le saut, c'est très large.
Je pense remplacer les fonctions de Vec par des macros, je ne sais pas si il y aura un gain de performance mais vu leur simplicité ça vaut peut-être le coup.
Build en pièce jointe
Ne regardez pas les heures de commit.
ouais ouais
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 28/12/2020 00:39 | # | Fichier joint


Bonjour ! Il est tôt, ou tard selon votre humeur.
J'ai pas eu le temps de faire grand chose vraiment, j'ai juste changé le nombre de layers générés et changé le code de dessin pour qu'il les dessine tous (un for hyper simple). Je me demande combien de layers tiendront la route avec de vrais graphismes. Je commence aussi à préparer l'arrivée des graphismes mais ça c'est soon™ tier.
C'est donc un build pour le fun, sans grand but, en souvenir de la 3ème édition de la 1KBCJ3
https://www.planet-casio.com/storage/forums/JTMM2_preview_Mon_Dec_28_12-32-15_AM_CET_2020-180200.zip
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 30/12/2020 15:13 | #


Ce build semble un peu cassé chez moi, les collisions sont très bizarres.

Sinon pour ce qui est du nombre de couches, en termes de performances le plus important est de ne dessiner plusieurs couches que là où plusieurs couches existent, et dans ce cas le temps que ça prend c'est en gros proportionnel à la surface que tu dessines. Tu dois bien pouvoir mettre 3/4 couches sans perdre de frames si mon estimation des performances possibles est correcte.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
1, 2, 3, 4, 5, 6 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 81 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd