GUI, FX et autres…

En ce début 2014, je me consacre principalement à obtenir une expérience de jeu telle que j’ai pu l’imaginer. Depuis fin novembre, le jeu est « autonome ». J’entends par là qu’il y a un menu fonctionnel qui renvoi vers le premier niveau, si le joueur meurt le niveau se relance et s’il atteint la fin du niveau, quelques statistiques sont affichées et on retourne au menu étant donné qu’il n’y a qu’un niveau pour le moment. Presque tout les éléments de gameplay sont intégrés, le scoring par exemple reste à finaliser. Ce qu’il manque le plus à ce premier niveau, c’est un bon rythme et une difficulté progressive.

Du point de vu design, j’ai retravaillé le HUD pour qu’il soit proportionnel quelle que soit la résolution. J’ai aussi fixé le ratio au 16/9. Dans le même esprit, j’ai lu sur un forum une discussion à propos des frame rate fixe (30 ou 60fps) dans les shmup. C’est un point auquel je n’ai pas pensé. A voir s’il je l’applique mais, pour le moment j’ai des soucis de performance sur les machines peu véloces. Je me suis rendu compte qu‘iTween en était la principale cause : j’ai voulu faire simple et animer les rotors des avions avec iTween. Sur ma machine princpale (core i5 3570k, gtx 670) ça passe sous soucis et je n’avais pas l’impression que ça ait un impact. Mais sur mon portable (core2Duo T9400, ati HD3650), le jeu était étrangement lent, j’ai pensé d’abord à l’impact des shaders. Les supprimer n’a rien changé, j’ai fini par désactiver les rotors et le fps à doublé…

Toujours sur le HUD, j’ai ajouté une « barre de scratch » qui permet de se représenter la quantité de scratch à faire avant de franchir un nouveau palier. J’ai aussi représenté dans chaque palier le coût de celui-ci.

Côté FX, j’ai retravaillé les sons de tir du joueur, c’est pas encore ça…mais c’est en progression. Mais chose pour l’aspect des bullets qui devient plus convainquant. Il me reste encore à faire pour présenter et diffuser une version convaincante et fun à jouer.

A suivre…

quoi de neuf depuis…

Alors histoire de donner des nouvelles fraîches et de montrer qu’il y a au moins encore une personne qui utilise Gamecore voici deux, trois infos.

Depuis plusieurs semaines je travaille en dilettante non sans faire de bonnes avancées, comme un problème de synchronisation entre la vitesse de déplacement de la camera et du joueur. Ce bug était présent depuis la première version du script et le problème venait d’UNE variable exécutée au mauvais moment 😦

Le point sur lequel j’ai le plus avancé est le système de création de pattern de tir. Dans cette première version, chaque NPC dispose de 5 slots. Selon le type de pattern voulu, un ou plusieurs slots peuvent être utilisés. Le principe de base repose sur une rotation de la bullet par rapport à son point de départ, rotation qui s’incrémente d’une x valeur à chaque nouvelle création jusqu’à atteindre un maximum. Après soit la rotation est remise à zéro ou inversée. Voici à quoi ressemble la liste des variables pour un slot :

patternType[0].fireRate = 4;
patternType[0].fireRateReset = 4;
patternType[0].patternLoop = 4;
/***********************/
patternType[0].activSlotOne = true;
patternType[0].invOne = true;
patternType[0].slotOneRot = 0;
patternType[0].slotOneRotRst = 0;
patternType[0].slotOneRotVal = 0;
patternType[0].maxOneRot = 0;
patternType[0].minOneRot = 0;

A l’écran voici à quoi ressemble mes premiers essais avec ce script de pattern :

 [vimeo  28306310 w=400&h=245]

Ces nouvelles lignes de codes m’obligent à faire beaucoup de nettoyage, entre du code obsolète, les doublons, les loops qui devraient ne faire q’un tour… Côté level design, je concentre sur un premier niveau et principalement sur le rythme de celui-ci : où et quand envoyer des NPC, quels patterns  les faire tirer, etc…

Enfin, côté design pur c’est toujours le calme plat bien que, tout en travaillant sur le rythme d’un premier niveau, j’essaie différentes façons d’accélérer la modélisation. Au final, la plus évidente est de partitionner les objets pour les assembler ensuite, pourquoi refaire 5 fois la même chose. Il me sera plus simple, et plus rapide, de faire 5 variations d’un fuselage et d’y ajouter les mêmes ailes. Vu de l’extérieur cela peut paraître évident, mais pas pour moi quand j’ai commencé ce projet.

IA, acte 2

Les bases du nouveau système sont en place, les NPC, une fois créés, vont vers un point défini au préalable. J’ai encore à mettre en ordre le code de déplacement où il reste des plusieurs reliques.

The foundations for the new system are in place, the NPC, once created, will go to a predefined point . I still have to clean  the code where remains several relics.