Forums Casio - Actualités

Index du Forum > Actualités > La revue des projets - 121
Lephenixnoir
En ligne
Administrateur
Points: 12532
Défis: 136
Message
Posté le 09/09/2018 13:46

La revue des projets - 121 :

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

N'oubliez pas que Windmill est disponible ici !

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

Cette semaine, deux programmes ont été publiés :
- BataillonIA de Disperseur
- Plus ou moins Python de Math680

Lire la dernière RDP : La revue des projets - 120
Soumettre un article à la RDP : Formulaire de soumission





Shadow15510
Hors ligne
Rédacteur
Points: 1755
Défis: 15
Message
Citer : Posté le 09/09/2018 14:41 | #
Elle est nickel cette RdP mais juste une question : pourquoi la mettre si tôt ?
----------------------------------
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   70%
Lephenixnoir
En ligne
Administrateur
Points: 12532
Défis: 136
Message
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.
----------------------------------
Rise.
Yatis
Hors ligne
Membre
Points: 305
Défis: 0
Message
Citer : Posté le 09/09/2018 15:22 | #
Lephenixnoir a écrit :

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
Hors ligne
Membre
Points: 294
Défis: 3
Message
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 ?
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Yatis
Hors ligne
Membre
Points: 305
Défis: 0
Message
Citer : Posté le 09/09/2018 17:32 | #
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
Lephenixnoir
En ligne
Administrateur
Points: 12532
Défis: 136
Message
Citer : Posté le 09/09/2018 17:44 | #
Si une personne pouvait m'aider à avoir un algo qui fasse pas de trous ça m'aiderait <3)

Algo naïf :

Rotation autour de (x⁰, y⁰)
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 :

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).
----------------------------------
Rise.
Shadow15510
Hors ligne
Rédacteur
Points: 1755
Défis: 15
Message
Citer : Posté le 09/09/2018 19:05 | #
wow la vidéo est impressionnante !! C'est super-beau !!
----------------------------------
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   70%
Ninestars
En ligne
Membre
Points: 2078
Défis: 22
Message
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.
----------------------------------
Disperseur
Hors ligne
Membre
Points: 736
Défis: 0
Message
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 )
----------------------------------
Yatis
Hors ligne
Membre
Points: 305
Défis: 0
Message
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 )
Drak
Hors ligne
Rédacteur
Points: 1761
Défis: 38
Message
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
----------------------------------
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 !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Lephenixnoir
En ligne
Administrateur
Points: 12532
Défis: 136
Message
Citer : Posté le 10/09/2018 17:15 | #
Oh, et, qu'en est-il des programmes publiés cette semaine ?

Aha oui, je n'ai pas pris l'habitude de cette rubrique. Je les ai ajoutés.
----------------------------------
Rise.
Redeyes
Hors ligne
Membre
Points: 220
Défis: 1
Message
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
----------------------------------
Be perseverant in all that you undertake, and get stronger everytime... Shining hope
Shadow15510
Hors ligne
Rédacteur
Points: 1755
Défis: 15
Message
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
----------------------------------
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   70%
Lephenixnoir
En ligne
Administrateur
Points: 12532
Défis: 136
Message
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 ?
----------------------------------
Rise.
Redeyes
Hors ligne
Membre
Points: 220
Défis: 1
Message
Citer : Posté le 10/09/2018 20:31 | #
Merci! Pas de soucis, je viens en mp
----------------------------------
Be perseverant in all that you undertake, and get stronger everytime... Shining hope
Massena
Hors ligne
Membre
Points: 294
Défis: 3
Message
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 !
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Lephenixnoir
En ligne
Administrateur
Points: 12532
Défis: 136
Message
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 !
----------------------------------
Rise.
Massena
Hors ligne
Membre
Points: 294
Défis: 3
Message
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.
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Drak
Hors ligne
Rédacteur
Points: 1761
Défis: 38
Message
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.
----------------------------------
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 !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !


Index du Forum > Actualités > La revue des projets - 121

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 47 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd