mardi 19 novembre 2013

[Interlède Nocturne] Ca cube ici

Salut à tous! Ca fait une paye, dites-moi! Haha, je sais, je sais... Mais au moins je reviens pas les mains vides! (Mais si c'est le test que vous attendez, c'est mal parti, je n'ai rassemblé que les grosses idées). J'ai trouvé un joli petit creux entre mon emploi du temps scolaire et extrascolaire pour vous! Je devrais en rajouter plus, ça me manquait d'écrire! :p

Niveau rétrogaming, c'est un peu le désert. Je joue bien de temps en temps à Earthbound, mais je me tâte de perdre mon temps en jeu pour le récupérer en temps de programmation. Faut dire aussi que j'ai un truc plutôt intéressant sur la planche de travail. J'ai, en avance sur le programme, attaqué la programmation OpenGL. C'est assez... verbeux. Le nombre de fonctions qu'il faut utiliser pour dessiner un cube est juste trop grande, alors imaginez quand on s'attaque à un moteur de voxels à la Lego... Yep, je m'attaque à un éventuel report de Walk-o-Bot (ou du moins le TRPG qui s'en suivait) en 2D à la 3D. C'est juste totalement différent, et aussi monstrueux. J'ai actuellement un système de génération/gestion/affichage de monde... comme Minecraft. Ce jeu revient souvent car nombre sont les gens qui s'attaquent à la programmation d'un clone (avant qu'il ne tombe dans l'oubli total). Quoi qu'il en soit, je pense tâter dans un système de jeu résultant d'un mix entre FFTA et un sandbox game. Lors d'un duel, des délimitations sont définies, les équipes se forment, et baston. L'avantage de mon engine est la possibilité d'altérer le monde afin de retourner l'avantage. Archers ennemis en vue? On place des blocs pour leur obstruer la vue. Un pont? Faisons-le se casser pour que les ennemis tombent...
Meh. Bizarrement, sur mon ordi,
la transparence du texte ne se fait pas...

Certes, on n'en est pas encore à la partie stratégie, mais j'ai déjà réussi à gérer un monde empli de chunks, avec une génération asynchrone (en italique car je sais pas si je peux sortir ça dans un thread pour le moment. Peut-être qu'avec un mutex...), et à gérer quelques problèmes qui se sont soulevés. je vous les laisse, elles sont très intéressantes à étudier:

  • Comment gérer/stocker les blocs?
  • Comment générer le monde? Doit-on générer tout d'un coup?
  • Comment optimiser le rendu?
  • Comment rendre correctement des blocs transparents/translucents? (Celui est assez particulier)
Un screenshot plus vieux : On retrouve la génération
à la Walk-O-Bot...
OpenGL est dur à manier, mais avec moultes astuces, on peut obtenir quelque chose de joli et sympatique. Je vais pas tarder à publier les sources sur un autre GitHub. C'est relativement une bonne (ici encore, je mets en italique car je sais que l'on peut faire mieux et plus poussé, mais heh! Je bosse pas chez Mojang) base.

Ensuite, niveau calculatrices, j'ai complètement abandonné les Casios ces temps-ci au profit d'un concours et de Hinawa Battle Engine. Parlons un peu de ce dernier.

Je sais pas si je vous en ai déjà parlé, mais je planche sur un port du moteur de combat de Mother 3 sur TI 83+/84+ en Axe Parser. Je n'ai pas de screen récent sous la main, mais le bousin tourne bien. Il me faut encore les stats de 3 personnes, ainsi que celles du monstre, et je pourrai attaquer à la programmation des tours. Par rapport aux versions précédentes, j'ai gagné un nombre assez important d'octets que j'ai réutilisé pour gérer d'autres routines, ou optimiser d'autres, comme celle d'affichage du monstre, ou celle du HUD. La différence notable avec les jeux originaux et à présent et pour le moment l'absence des rolling meters pour les PP pour les persos qui n'ont pas la possiblité d'utiliser les attaques PSI.

Pour le fameux concours, j'ai crée un petit jeu nommé Furious Pong
6.5Mo de GIF PUR FURIOUS!
, une sorte de Pong sous anabolisants et stéroïdes. Combinez un pong avec un multiball pouvant aller jusqu'à 150 sur une simple calculatrice + des power-ups bien salauds pouvant vous rendre chèvre,  le tout dans des graphismes pas trop moches et une vitesse exceptionnelle pour un tel jeu, si c'est pas beau! Un petit GIF vaut mieux que mille mots, je vous laisse avec le screen final du jeu. Passez une bonne nuit!