Bonjour à tous les nouveaux et habitués de la Revue des Projets. J'ai l'honneur de tenir la Revue des Projets de cette semaine de rentrée chargée de promesses. Équipez-vous de votre imagination, c'est parti !
Certains d'entre vous se s(ouviennent de l'époque où Kirafi était le VIP de la RDP ; aujourd'hui ce titre revient à Ninestars, qui même a droit à une interview de Shadow15510 !
Le gros projet qui vaut à Ninestars sa présence régulière dans la RDP est Windmill, un moteur 3D immersif sur Graph monochrome. Au fil des jours, le moteur s'est amélioré et a maintenant dépassé tous les autres projets similaires. Aujourd'hui les membres commencent à penser aux applications !
Le moulin qui fait l'emblème de Windmill
Ninestars et Shadow15510 a écrit : Bonjour à tous ! Ninestars et moi-même avons eu l'idée de faire une sorte de petite "interview" sur ce grand projet qui passionne, j'ai nommé Windmill ! Nous pensons que ce « type » d'article changera un peu des autres articles et l'originalité n'a jamais tué personne ! Je jouerai donc le rôle du journaliste en posant quelques questions à Ninestars.
Bonjour Ninestars ! Bonjour à tous !
Tout d'abord, merci d'être avec nous ce soir ! Je vais essayer d'être concis, tu n'as pas que ça à faire ! Premièrement, pourquoi avoir eu l'idée de faire un projet comme Windmill ? La 3D a quelque chose d'un peu mystique. C'est une des choses que j'ai toujours essayé de programmer. Vainement jusqu'à mes années de prépa qui m'ont données les outils mathématiques nécessaires. L'évènement déclencheur a été la découverte d'un tutoriel pour faire de la 3D "from scratch" (comme disent les anglophones) : Scratchapixel. Site formidable que je conseille vivement !
Un tel projet ne doit pas être mené à la légère et les débuts ont dû être difficile, quel était le but originel de ton programme ? À la base, mes attentes étaient assez simples. Il n'y a qu'à voir les premières vidéos. Je voulais faire un petit moteur pour faire de la 3D vue de haut uniquement. Vos retours m'on poussé à faire mieux, mais honnêtement, j'y croyais pas une seconde.
Vous avez bien lu ! Quand on vous donne les liens des topic, c'est parce que le feedback est un réel moteur ! D'ailleurs, depuis combien de temps travailles-tu sur Windmill et qu'est-ce qui t'a motivé durant tout ce temps ? Et si tu devais donner un conseil à un programmeur pour réaliser un projet d'une telle ampleur ? Cela fait deux ans et demi que j'ai commencé à faire ce moteur 3D. Mais on peut encore reculer la date car j'avais réalisé un petit moteur 3D pour un jeu de vaisseau spatial un peu avant. On pouvait naviguer dans l'espace, les planètes tournaient autour du soleil et on pouvait se poser sur une planète. C'était pour faire un No-man sky. J'avais rejoint un membre de PC qui voulais faire ce projet, Az je crois… Ce jeu m'a permis d'avoir les bases de la 3D.
Ce qui m'a poussé à continuer ? La passion. J'adore ça, ça me détend. Il y en a qui font du Sudoku, moi je programme. J'ai décidé de ne pas faire de la programmation mon métier, je suis dans la mécanique industrielle. Peut-être que ça aide à garder de l'envie. De plus Windmill est suffisamment complexe pour qu'il y ait toujours quelque chose d'intéressant à faire.
En fait mon conseil ? Avoir un projet complexe afin de toujours y trouver un intérêt.
Un projet aussi complexe doit demander une sacrée organisation ! Quel élément du code as-tu attaqué en premier et quelle a été la partie la plus dure ? La technique ! J'ai commencé par les points les plus difficiles comme la rotation des points dans l'espace, l'affichage des textures, puis le z-buffer (ce qui fait qu'on ne voit pas à travers les murs). C'était ce qui m'intéressait le plus.
Le plus difficile a été le débuggage ! Sans aucun doute. À chaque fois que je rajoutais une fonction il fallait tester, nettoyer le code et corriger les erreurs, de compilation ou pas. L'erreur du Jour 7 était tellement tordue que j'ai bien dû y passer une vingtaine d'heures à me tordre les neurones J'ai facilement passé plus du double du temps à corriger qu'à réellement ajouter des fonctions.
Merci beaucoup d'avoir pris le temps de répondre à nos questions
Et merci à toi Shadow pour avoir pris le temps de les poser !
Notre présentateur suivant est Massena, qui nous entretient de son projet Evocalc. Il s'agit de reprendre en Basic le principe d'Evoland, un jeu de rôle dont le moteur et l'univers changent au cours du jeu pour retracer l'histoire des jeux vidéo.
Massena nous a déjà envoyé du lourd avec ces graphismes dans des articles précédents, si vous les avez ratés allez y jeter un oeil !
Résumé des épisodes précédents
Massena a écrit : Salutations bande de travailleurs
En cette semaine de rentrée scolaire, j'ai plus eu l'occasion de ressortir ma chère calto. Et vous savez quoi ?
J'ai avancé dans le projet Evocalc.
Eh oui, je vous promettais un moteur de combat depuis QUATRE semaines, et je viens de le terminer. rip ma deadline Une image vaut mieux qu'un long discours, voici deux screens du moteur de combat :
Donc, pour résumer, il y aura ~12 monstres existants (dont un easter egg). À chaque tour, la roue tourne. Si le point est de votre côté, vous infligez vos PA aux PV de l'adversaire. Si c'est le contraire... Ben c'est l'inverse. Vous commencez l'aventure avec 100 de PV et 10 de PA et tous les ~60 pixels parcourus vous tombez sur un monstre. Chaque monstre a des stats différentes (Points Attaque / Point Vie / Chance de spawn).
Je pense publier dans une prochaine RDP une liste d'objets et de monstres. Actuellement j'ai réparti les objets en plusieurs catégories :
• Potions : Vous redonne des PV
• Armures : Augmente votre total de PV
• Armes : Augmente votre total de PA
• Incantations : Modifie la probabilité que le point tombe sur vous
• Evobijoux : Objets d'évolution dans le jeu
• Autres : Clés, Objets de quêtes secondaire, etc.
Je pense avoir fait le tour de l'avancée du jeu. Les monstres sont trop facile à battre, je vais PULVÉRISER LES PV ET LES PA DE CES DERNIERS
Bonne soirée,
Votre dévoué (ou pas) Masséna
Eh bien voilà des graphismes qui en ont à revendre ! Décidément ce projet ne nous déçoit jamais. À quand une démo jouable ?
Vient ensuite Yatis pour nous présenter un nouveau projet : une variation de Warning Forever, un ancien shoot-them-up avec uniquement des boss !
Yatis a écrit : Voilà une bonne semaine que je bosse sur l'adaptation de Warning Forever. Le jeu est « simple », il suffit de battre un boss le plus de fois possible. Le truc c'est qu'il « évolue » à la fin de chaque combat selon la façon dont vous l'avez battu.
C'est assez compliqué à programmer (du moins pour mon niveau) mais, doucement, ça commence à prendre forme. En l'état, le jeu n'est pas encore jouable, car pour l'instant il y a :
• Une « intro »
• Le menu principal avec ses animations
• Les dalles en fond (jouez à WF et vous comprendrez )
• Le vaisseau : déplacement, viseur, tirs
• Les collisions avec le boss (du moins en partie)
• L'affichage du boss (croyez-moi ce n'est pas un simple sprite)
• Une petite partie de "l'évolution" du boss (pour l'instant il peut avoir 60 évolutions différentes).
Pour résumer il me reste les collisions, l'évolution du boss et la gestion des caméras pour avoir une « alpha » jouable.
Je suis en train d’implémenter les caméra, il y en a 2 : une vissé sur le joueur et une autre libre pour voir ou est le boss. On peut « switcher » entre les deux modes. Je vais aussi refaire la gestion du viseur car les contrôles sont juste horribles. Ça n'a pas l'air de grand-chose mais j'en ai au moins pour une bonne autre semaine à faire tout ça...
Pourquoi ce jeu en particulier ? Simplement parce qu'à la base je voulais juste refaire "ma" lib (un combo MonochromeLib + usefull) pour continuer Roulette Knight. D'ailleurs j'ai réécrit la plupart des fonctions de base et hardcodé ML_clear_vram() ainsi que ML_dislay_vram() ; elle n'est pas encore finie mais (si un jour je la finis) j'aimerais avoir les feux verts des auteurs de usefull.h et MonochromeLib.h pour la mettre à disposition de tout le monde.
Dans combien de temps la v1 va sortir ? Mmmmmmm dans longtemps au mieux :/
Je suis confronté à de gros problèmes de « lecture » du jeu à l'écran ainsi qu'à un problème d'ergonomie au niveau des contrôles. De plus le jeu est compatible uniquement SH4 car je pense utiliser le TMU pour certaines choses (donc j'ai viré toute la partie « gestion clavier » pour SH3). M'enfin bref voila à quoi ressemble le jeu actuellement et je vous donne aussi une image montrant le boss à un certain stade d'évolution :
(PS: Comme vous allez le constater j'ai de gros problèmes avec l'algo de rotation de bmp (ya des trous partout). Si une personne Ninestars, (sans vouloir pointer du doigt Lephenixnoir une personne en particulier) pouvait m'aider à avoir un algo qui fasse pas de trous ça m'aiderait <3).
Un gros projet en perspective ! Pour ta bibliothèque, nul besoin de t'inquiéter, ni PLL ni Dodormeur n'ont jamais empêché personne de réutiliser leur code. Vérifie juste les conditions de license s'ils en ont partagé !
On arrive presque au bout de cette Revue des Projets, il nous reste une ultime présentation : le portage de MicroPython pour Graph 75 de Zezombye, déjà un classique !
Zezombye a écrit : CasioPython avance, et j'ai fait la première release plus ou moins stable (v1.1).
Si ce n'est pas déjà fait, je vous invite à le tester et à signaler tout bug : Add-in Casio - MicroPython
Maintenant, quelques sondages :
• La touche backslash \ n'est actuellement pas disponible sur le clavier, il faut passer par le menu des caractères. Actuellement, le seul emplacement libre en mode alpha est la touche AC/ON qui sert à supprimer devant le curseur (tandis que [DEL] supprime avant le curseur). Est ce que je mets Alpha+AC/ON en backslash, ou je le laisse en "suppr" ?
• Pour les fonctionnalités, est-ce que je travaille d'abord sur le shell (implémenter l'historique, le curseur, etc) ou le micropython (implémenter math/random, les fonctions qui causent des bugs, etc) ?
Voilà, avec les cours j'ai un peu moins de temps pour travailler sur ça mais le projet avance toujours
Joli avancement ! On attend avec impatience la reproduction sur la Graph 75 des exemples algorithmiques de la Graph 90 pour signer définitivement l'entrée de la Graph 75 dans les calculatrices Python à la rentrée, une entrée qui évitera aux propriétaires des Graph monochromes standards d'avoir à acheter une nouvelle calculatrice.
Ainsi s'achève cette Revue des Projets de la rentrée ! Bon courage à tous, où que vous soyez
Merci ! Elle était prête et j'ai pas mal de choses à faire aujourd'hui, la publier m'éviter d'oublier.
Pour Yatis, je dois ajouter que l'usage du TMU n'est pas une raison suffisante pour n'être compatible qu'avec les SH4 ! Ce n'est pas très difficile de changer l'adresse du TMU au cas où tu es sur SH3 au début du programme
Pour Zezombye :
• Le backslash est rare, je préfère personnellement avoir le suppr sous la main.
• S'il y a des bugs urgentissimes corrige-les, mais je suggère de bosser sur le shell avant les fonctionnalités.
Pour Yatis, je dois ajouter que l'usage du TMU n'est pas une raison suffisante pour n'être compatible qu'avec les SH4 ! Ce n'est pas très difficile de changer l'adresse du TMU au cas où tu es sur SH3 au début du programme
Je sais, je sais, je règle ça une fois que j'arrive a avoir une version stable et jouable du jeu
Massena a écrit : @Yatis je te souhaite bonne chance !
Ce projet a l'air sympa, mais quelles sont les évolutions possibles du boss ?
Merci
En fait le boss évolue en fonction de comment tu la battue.
Il a 4 "bras" de base et sur chaque "bras" il peut en faire pousser 2 autres puis sur chacun des 2 autres il peut en faire pousser 2 autres, etc, etc...un peu comme un arbre
D'ailleurs chaque "bras" est un arbre binaire qui s’agrandit au fur est à mesure des combats.
Chaque "étage" de l'arbre est représenté graphiquement par une image et chaque image contient un point d'ancrage et un point de rotation (les deux points sont en bordure d'image) d'où le fait que l'algo utiliser pour rotationé les image laisse des trous x)
Au passage je viens de finir d’implémenter une des 2 camera. Je m'attelle donc a la compatibilité SH3 - SH4
Rotation autour de (x⁰, y⁰)
src = Image source
θ = Angle de rotation
R = Rectangle large contenant l'image tournée
Pour chaque pixel de (x', y') de R :
x = x⁰ + (x' - x⁰)cos(-θ) - (y' - y⁰)sin(-θ)
y = y⁰ + (x' - x⁰)sin(-θ) + (y' - y⁰)cos(-θ)
Si (x, y) est dans les bornes de src :
Dessiner en (x', y') la couleur de src[x,y]
Ensuite, encore mieux : tu améliores la façon dont tu choisis le pixel (x,y) en fonction des parties décimales de x et y (interpolation, moyennage, etc).
Ninestars Je ne suis pas pressé du tout, j'ai un tas de problèmes à résoudre pour l'instant et je verrai cette histoire de trous de rotation une fois tout mes problèmes résolut.
De plus la rotation des images se fait pas forcément au milieu du bmp...*regarde le moulin de windmill* ...j'ai rien dit (merci beaucoup pour ce projet au passage )
Superbe RDP ! Il serait temps que je donne des nouvelles de mon propre jeu.
@Yatis : Les contrôles de ton jeu ont l'air compliqués. Tu peux peut-être te servir des touches du bas du clavier (touches numériques et touches de calcul, etc.) Parce que, personnellement, je trouve que les touches directionnelles (REPLAY) ne permettent pas d'être assez réactif (c'est chiant d'appuyer dessus), et que les touches F1~F6 sont trop éloignées des autres touches pour jongler facilement entre les différentes commandes. Autrement, ton jeu est très prometteur.
Un petit bravo à Shadow et Ninestars pour l'interview, c'est une excellent idée. C'est sûr que, pour faire ça, il faut vraiment être un passionné.
@Massena : Et, est-ce que ton moteur de combat est rapide et réactif ? Je suis curieux d'avoir une idée du temps d'affichage !
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Moi je trouve que c'est très intelligent d'opter pour un système de combat qui ne nécessite pas d'affichage rapide. C'est aussi ça, l'optimisation en Basic : ajuster son concept pour mieux coller à la plateforme. Bravo, je testerai avec joie !
Les gens qui râlent à cause d'un "trop plein de pictures", il ne faut pas les écouter.
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
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
Citer : Posté le 09/09/2018 14:41 | #
Elle est nickel cette RdP mais juste une question : pourquoi la mettre si tôt ?
Citer : Posté le 09/09/2018 14:45 | #
Merci ! Elle était prête et j'ai pas mal de choses à faire aujourd'hui, la publier m'éviter d'oublier.
Pour Yatis, je dois ajouter que l'usage du TMU n'est pas une raison suffisante pour n'être compatible qu'avec les SH4 ! Ce n'est pas très difficile de changer l'adresse du TMU au cas où tu es sur SH3 au début du programme
Pour Zezombye :
• Le backslash est rare, je préfère personnellement avoir le suppr sous la main.
• S'il y a des bugs urgentissimes corrige-les, mais je suggère de bosser sur le shell avant les fonctionnalités.
Citer : Posté le 09/09/2018 15:22 | #
Pour Yatis, je dois ajouter que l'usage du TMU n'est pas une raison suffisante pour n'être compatible qu'avec les SH4 ! Ce n'est pas très difficile de changer l'adresse du TMU au cas où tu es sur SH3 au début du programme
Je sais, je sais, je règle ça une fois que j'arrive a avoir une version stable et jouable du jeu
Citer : Posté le 09/09/2018 15:38 | #
@Yatis je te souhaite bonne chance !
Ce projet a l'air sympa, mais quelles sont les évolutions possibles du boss ?
Citer : Posté le 09/09/2018 17:32 | #
@Yatis je te souhaite bonne chance !
Ce projet a l'air sympa, mais quelles sont les évolutions possibles du boss ?
Merci
En fait le boss évolue en fonction de comment tu la battue.
Il a 4 "bras" de base et sur chaque "bras" il peut en faire pousser 2 autres puis sur chacun des 2 autres il peut en faire pousser 2 autres, etc, etc...un peu comme un arbre
D'ailleurs chaque "bras" est un arbre binaire qui s’agrandit au fur est à mesure des combats.
Chaque "étage" de l'arbre est représenté graphiquement par une image et chaque image contient un point d'ancrage et un point de rotation (les deux points sont en bordure d'image) d'où le fait que l'algo utiliser pour rotationé les image laisse des trous x)
Au passage je viens de finir d’implémenter une des 2 camera. Je m'attelle donc a la compatibilité SH3 - SH4
Citer : Posté le 09/09/2018 17:44 | #
Algo naïf :
src = Image source
θ = Angle de rotation
Pour chaque pixel (x,y) de src :
x' = x⁰ + (x - x⁰)cos(θ) - (y - y⁰)sin(θ)
y' = y⁰ + (x - x⁰)sin(θ) + (y - y⁰)cos(θ)
Dessiner (x', y')
Algo peut-être plus intelligent :
src = Image source
θ = Angle de rotation
R = Rectangle large contenant l'image tournée
Pour chaque pixel de (x', y') de R :
x = x⁰ + (x' - x⁰)cos(-θ) - (y' - y⁰)sin(-θ)
y = y⁰ + (x' - x⁰)sin(-θ) + (y' - y⁰)cos(-θ)
Si (x, y) est dans les bornes de src :
Dessiner en (x', y') la couleur de src[x,y]
Ensuite, encore mieux : tu améliores la façon dont tu choisis le pixel (x,y) en fonction des parties décimales de x et y (interpolation, moyennage, etc).
Citer : Posté le 09/09/2018 19:05 | #
wow la vidéo est impressionnante !! C'est super-beau !!
Citer : Posté le 10/09/2018 08:13 | #
Sympa les projets de cette semaine
@Yatis : je vais essayer de trouver le temps de refaire l'algo pour la rotation sprite cette semaine.
Citer : Posté le 10/09/2018 08:18 | #
@Ninestars: Mais à part ça ça progresse le jour 20 de Windmil ? (Je veut pas du tout te mettre la pression )
-Planétarium 2
Citer : Posté le 10/09/2018 10:06 | #
Ninestars Je ne suis pas pressé du tout, j'ai un tas de problèmes à résoudre pour l'instant et je verrai cette histoire de trous de rotation une fois tout mes problèmes résolut.
De plus la rotation des images se fait pas forcément au milieu du bmp...*regarde le moulin de windmill* ...j'ai rien dit (merci beaucoup pour ce projet au passage )
Citer : Posté le 10/09/2018 14:02 | #
Superbe RDP ! Il serait temps que je donne des nouvelles de mon propre jeu.
@Yatis : Les contrôles de ton jeu ont l'air compliqués. Tu peux peut-être te servir des touches du bas du clavier (touches numériques et touches de calcul, etc.) Parce que, personnellement, je trouve que les touches directionnelles (REPLAY) ne permettent pas d'être assez réactif (c'est chiant d'appuyer dessus), et que les touches F1~F6 sont trop éloignées des autres touches pour jongler facilement entre les différentes commandes. Autrement, ton jeu est très prometteur.
Un petit bravo à Shadow et Ninestars pour l'interview, c'est une excellent idée. C'est sûr que, pour faire ça, il faut vraiment être un passionné.
@Massena : Et, est-ce que ton moteur de combat est rapide et réactif ? Je suis curieux d'avoir une idée du temps d'affichage !
Ajouté le 10/09/2018 à 14:44 :
Oh, et, qu'en est-il des programmes publiés cette semaine ?
https://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=3618&page=last
https://www.planet-casio.com/Fr/programmes/programme3619-last-Plus-ou-moins-Python-math680-a6.html
Citer : Posté le 10/09/2018 17:15 | #
Aha oui, je n'ai pas pris l'habitude de cette rubrique. Je les ai ajoutés.
Citer : Posté le 10/09/2018 19:12 | #
Excellente RDP Lephenixnoir! Commencer d'emblée par une interview ajoute une touche d'originalité, bravo à Shadow et Ninestars!
@Massena: Ton projet avance bien, j'aime bien l'idée d'une roue qui détermine le tour. Sans compter la qualité des graphismes, je t'encourage.
@Yatis: Ton jeu est magnifique! Que ce soit au niveau des graphismes et de la rapidité. Personnellement, ça me fait beaucoup penser à Time Rider II
Citer : Posté le 10/09/2018 19:53 | #
L'idée de l'interview était bonne effectivement et je ne remercierais jamais assez Ninestars d'avoir marché et d'avoir répondu aux questions
Citer : Posté le 10/09/2018 20:03 | #
Merci bien Redeyes ! Moi j'aime beaucoup ton nouvel avatar. Le même personnage si je ne me trompe pas, tu peux m'en dire plus ?
Citer : Posté le 10/09/2018 20:31 | #
Merci! Pas de soucis, je viens en mp
Citer : Posté le 10/09/2018 20:47 | #
@Drak La rapidité d'affichage est excellente ! mais par contre je prend les 20 pictuuuures...
@RedEyes Merci beaucoup ! Je me suis inspiré de l'excellent jeu gratuit et sur téléphone Tinker Island !
Citer : Posté le 10/09/2018 20:48 | #
Moi je trouve que c'est très intelligent d'opter pour un système de combat qui ne nécessite pas d'affichage rapide. C'est aussi ça, l'optimisation en Basic : ajuster son concept pour mieux coller à la plateforme. Bravo, je testerai avec joie !
Citer : Posté le 10/09/2018 20:54 | #
J'ai entendu des gens qui ralaient pour le trop-plein de pictures. Bon.
Et j'ai que 11 monstres.
Citer : Posté le 10/09/2018 22:03 | #
Les gens qui râlent à cause d'un "trop plein de pictures", il ne faut pas les écouter.