mardi 25 février 2014

CodeName Little Witch Adventure : Carnet de dev

Dans le dernier post je vous montrais les différentes positions du joueurs selon son mouvement. Le passage d'un mouvement à un autre était très haché, forcément on passait d'une position à l'autre en 1 image ...

J'ai donc mis à profit la routine de rotation pour fluidifier le changement de position, et ce sans utiliser d'image intermédaire. Je translate et fait tourner les différentes parties du sprite de manière programmé pour atteindre leur nouvelle position.

Voici ce que cela donne en vidéo.



vendredi 21 février 2014

Codename LWA : des avancées ...

Et oui, je n'arrive pas à m'arrêter .. J'ai fait l'assemblage des sprites et l'animation ...

Voici en vidéo l'avancée :



Et j'ai également améliorer ma librairie pour gérer rotation par le centre, et le zoom (pas encore par le centre) :



Dernière info, vous pouvez dès à présent télécharger le kit de dev Dreamcast ainsi que ma librairie graphique (+ un exemple) sur http://bfglesite.site90.com/ rubrique "Tutoriaux" puis "Dreamcast" !! Bon coding !!
(N'oubliez pas de dégager le Dynarec sous NullDC pour vos tests sous peine de crise de nerfs !!) :) :)

Voilou !!

jeudi 20 février 2014

CodeName Little Witch Adventure : Bug corrigé ?

Il est bien possible que le "bug" soit corrigé ... Et qu'en fait le bug en soit, n'existait pas ... mais qu'il y en avait un autre gros comme une baraque à frite (mais qui ne faisait pas planter la chose).

D'abord je tiens à remercier PatBier (Dynamite Dreams) ainsi que Johannes Graf (Duranik) pour leurs tests ainsi que leurs corrections.

Leur tests ont donnée des résultats différents, mais après analyse, ce sont les même problème qui sont apparu. Pour afficher un "sprite" il faut mapper une image sur des polygones. Ces polygones on des coordonnées x,y en 2D, mais comme on est sur DC on à la 3ème dimension qui rentre en compte, la z.

Or, mes sprites avaient tous une priorité Z = 1. Ce qui veut dire que tout les sprites sont sur le même plan. Ceci marche sur l'émulateur mais pas sur la vrai console. D'ou PatBier au premier test de ma rom pensait que le programme plantait depuis le début car le fond de l'image écrasait tout les sprites :)

Johannes lui me renvoie le code avec la technique pour incrémenter à chaque sprite la valeur Z. Ce qui fait que le dernier sprite dessiné à une priorité supérieure au précédent. Donc le programme tourne correctement sur Dreamcast, sans plantage.

Maintenant, j'ai cru à un miracle mais non, le programme plante toujours sur NullDC... SAUF si on enlève l'option de compilation dynamique de l'émulateur !! Ce qui rend l'émulation plus "fiable" mais plus lente en même temps.

En tout cas, pour le moment, plus de plantage sur nullDC ! Je pense donc que depuis le début, je cours comme une grosse andouille sur un bug dû à l'émulation. J'ai tellement l'habitude de l'émulateur sur Coleco que je sais maintenant coder pour que le jeu tourne sur l'ému ET la console.

Bien entendu, gros noob sur Dreamcast, je me suis fait certainement avoir ...

En tout cas, je remercie mille fois PatBier et Johaness pour leur temps, leur patiente et leur gentillesse Merci à Zouzzzz de Dreamcast-news pour m'avoir donné les contacts :) Et merci à ceux qui m'ont encouragés sur les différents site par le biais de leur commentaire !!

. Je vais à présent prendre quelques Leximol et faire un break jusqu'à la semaine prochaine ... je crois que je l'ai bien mérité :) :) (Je dis ça, mais je sais que ce soir je serais déja en train d'assembler mes sprites pour avoir mon joueur animé à l'écran !!).

mercredi 19 février 2014

CodeName Little Witch Adventure : Carnet de dev

Suite des aventures du bug maudit !!!

J'ai 2 pointures du coding Dreamcast qui m'aident sur le sujet. Il semble que mon programme soit tout à fait correct (ouf, je ne suis pas si mauvais que ça :) ) mais qu'on se tourne vers soit un problème de l'émulateur sur lequel je teste (leurs avis), soit éventuellement un problème de ma toolchain de programmation (mon intuition) voire les 2.

Pourquoi la toolchain ?

Je suis repartit de la base et j'ai compilé le programme de démo qui affiche une simple image. Lancé sur nullDC et la vrai Dreamcast, je vois apparaître quelques pixels roses parasites.
J'ai envoyé ce programme à patBier de la DynamiteDream Team qui lui l'à recompilé et ne voit pas les pixels roses.

J'ai repris son .elf (exécutable sortit du cul du compilo) et transformé pour le faire avaler par nullDC. Je vois les pixels roses !! Il va me falloir donc trouver un système pour injecter directement le .elf à la Dreamcast et vérifier que ce n'est pas le convertisseur .elf --> .bin qui merde.

Pour le jeu, il faut que je trouve un moyen de faire tourner l’exécutable sur la dreamcast avec les données sans griller un CD à chaque fois :) Le dernier essai que j'avais fait avec Nero pour le multisession s'étant révélé infructueux, il va falloir que je trouve un autre outil ...

Stay tuned ! L'avenir s'éclaircit :)

mardi 18 février 2014

CodeName Little Witch Adventure : Carnet de dev

Bon, je ne vais pas y aller par 4 chemins, c'est la merde totale ...

En effet, j'avais remarqué que le jeu plantait aléatoirement, après moultes tests, débug and co, je pensais avoir réglé le problème ...
Dans le post précédent du Carnet de dev, je parlais de développer un petit outil sur Dreamcast pour assembler des morceaux de sprites pour former le joueur. J'ai développé l'outil et j'ai tout bêtement commencé à l'utiliser.
Et devinez quoi ... CRASH !! Ça recommençait. En gros le programme peut tourner 1 heure sans crasher, comme 3 minutes.

Bref, je suis dans une situation bloquante. J'ai beau retourner le problème dans tout les sens, c'est insoluble. J'ai contacter des pros dans le domaine de la Dreamcast et j'ai envoyé le code source (qui n'est pas bien gros, j'ai dégager tout ce qui ne servait pas ...). Que dire de plus ... je ne sais pas. J'ai encore quelques tests à effectuer de mon coté sur la vrai console, mais je pense que le résultat sera le même ... J'ai déjà passer des 10 aines d'heure sur ce problème, j'ai même ce midi réinstallé la toolchain sur une autre machine pour voir si ça ne pouvait pas venir de la version de Windows/Cygwin utilisé.

Bilan, un midi pour rien ... Bref, là j'avoue que j'ai quasiment tiré toutes mes munitions. Il y aurait bien un plan B et C, c'est d'utiliser SDL pour Dreamcast ou développer mes propres routines 2D pour la Dreamcast, mais là ça va se compter encore une fois en 10aine d'heure pour un résultat qui à mon avis ne sera pas génial en terme de performance ... (et puis je ne suis pas à l'abris d'un bug encore non maîtrisé).

Voilà, je croise les doigts pour qu'un pro de la DC puisse m'aider et me dire ce que j'ai merdé ... Sinon ... Je ne sais pas ...

mardi 11 février 2014

CodeName Little Witch Adventure: Carnet de développement

Ça y est, on entre dans le concret et dans les contraintes techniques. Et oui, ce n'est pas parce qu'on est sur Dreamcast qu'il n'y à pas de contraintes !

Concrètement, la Dreamcast à 8 mégas de mémoire vidéo. Les planches de sprites que j'utilise sont en fait des textures = images carrées. En mémoire, une de ces texture occupe : hauteur*largeur*2 octets.
Globalement, on ne peut stocker en mémoire que 16 textures de 512*512.

Or, pour le shoot, il nous faut 20 images d'animation pour le joueur * 5 directions * 5 transformations, soit 500 images ... (100 images par transformation).

Illustrons ceci en image. Voici les 5 "transformations" possible du joueur :


Pour 1 transformation, voici les 5 "mouvements" possibles :

Et pour 1 mouvement, voici la planche de sprites :

Vous comprendrez bien qu'on va, rien qu'avec les sprites du joueur, saturer rapidement la mémoire vidéo. Alors qu'elle est la solution ?

Et bien la solution est plutôt "simple". Les parties animées du personnages sont la cape et la robe. Nous allons alors découper l’héroïne en parties "animées" et fixes (par exemple la tête). Ensuite la position du personnage est faite à partir de rotation. La Dreamcast gérant des textures sur les polygones, les changements d'angle du personnage, se feront de manière "programmé". Ce qui nous donne au final en planche de sprite, pour 1 transformations et 5 directions :








Soit, 35 images au lieu de 100 pour une tranformation, mais comme les images sont plus petites de ce fait, c'est encore plus de mémoire vidéo de gagné !

La difficulté, pour moi, va donc être d'assembler les morceaux, et de trouver les bons angles pour faire pivoter la cape, le balais etc etc, pour avoir les 5 mouvements vues précédemment :

Heureusement que Patbier de la Dynamite Dreams Team est en support, il m'à gentillement offert l'alorithme de rotation, et les premiers essais s'avèrent concluants. (J'ai une sorcière qui tourne maboule autour d'un axe :) ).
Voilà, après le blabla je n'ai plus qu'à passer à l'action !

Stay tuned !


vendredi 7 février 2014

OIB Live session 1

Voilà, c'est fait, le 1er épisode de OIB live session est en ligne depuis hier ... Voici ce que ça donne pour un premier épisode, et il faut l'avouer, il y à de nombreuses choses à améliorer ...


jeudi 6 février 2014

Dungeons and Trolls Work in progress du 06/02/2014

Voici une vidéo de développement de Dungeons and Trolls (oui le jeu à changé de nom :) :) ) sur Colecovision.

Comme vous pouvez le voir sur la vidéo, il y à encore pas mal de bug à corriger, des graphismes de bonus à ajouter, du réglage de difficulté. Les salles spéciales ainsi que le boss du donjon n'est pas encore implémenté ni bien entendu le son. On peut considérer le jeu terminé à 75%. Les 25% restant sont bien entendu toujours les plus durs à régler ! (Du genre les os quand les ennemis meurent se déplacent ?!! Alors qu'ils ne sont pas programmé pour :) :) )


lundi 3 février 2014

Codename : Little Witch Adventure

Bonjour,

 en ce jour je dévoile un peu plus le projet de shoot'em up Dreamcast en développement. Le nom de code du projet est Little Witch Adventure, car je voulais faire à la base un shoot'em up du style Cotton, mais comme vous allez le voir ensuite, pas mal de choses ont évolué.

Tout d'abord j'ai eu la chance d'être contacté par 2 graphistes Apoka et Badinette qui l'un et l'autre sont des graphistes pro qui ont un style bien à eux, et c'est grâce à eux que le look du jeu à évolué vers tout autre chose.



Hé, oui les premiers concepts des niveaux nous font approcher d'un style plus ressemblant à Patapon qu'à un cotton. Ce que vous allez voir ici bien entendu ne sont que des essais et de nombreuses choses vont certainement évoluer, mais le style graphique est je pense trouvé.


A ce style piquant du joueur (qui évoluera selon les nivaux, ici on à son mode "je suis très très en colère"), se mèlera également des choses plus rondes .




Mais je fais confiance à mes 2 compères graphistes à 100% Car ils n'ont pas uniquement des talents de graphistes ce sont également des fans de jeux vidéo ! Et ça se ressent dans les idées d'armement de gameplay and co. Mais ça, ça sera dévoilé plus tard.

Quand à moi, j'ai passé mon Dimanche à traquer un bug aléatoire qui faisait planter le Proof of Concept du jeu depuis des mois. Et cette fois ci je pense que c'est la bonne. Le POC à tourné 1 heure non stop sans crash ... Voici un peu ce que donne le moteur en vidéo :


Bien entendu pas encore de scrolling sur cette vidéo même si des routines de scrolling sont développées ... En effet, je suis en train de voir si je ne peux pas utiliser autre chose que des tiles ...

Voilà, c'est tout pour le moment, l'équipe est très motivée, et j'espère pouvoir montrer un scrolling fonctionnel dans quelques semaines !

dimanche 2 février 2014

Bfg le site de nouveau online



La nouvelle adresse est : http://perso.numericable.fr/michel.louvet/

Je ne suis pas sur que c'est la dernière version :) Il faut que je vois si il n'y à pas un autre backup qui traine chez moi :)