Ajout
Remplacement de tous les modèles 3D assemblés avec plusieurs formes géométriques par leur équivalent en un seul bloc au format 3ds
Hit visible avec coloration rouge des modèles 3D
Pan sound sur press L et R dans database
Modification de ground en plus de atmosphere avec la touche debug 4
Manœuvre d'évitement si on se dirige dans la même direction que le barrel roll
Nouvel obstacle : Torii
Réglages
Texture Background (stars) en 4096 au lieu de 1024
Réduction de la taille des particules d'étoiles
Couleur de la charge
Lotus life passe de 50 à 100
Réglage du pan sound des boutons de l'écran titre
Colorisation des ombres en fonction de la couleur de ground
Couleurs classic VGA pour les Space Invaders
Mise en place de la durée des niveaux (SET_INSIDESHIP était interminable...)
Optimisations
Suppression du double affichage mine green/red dans database
Fusion des models Enemy et Asteroid
SkyBitmap passe de 64x64 à 1x3
GroundBitmap passe de 128x128 à 2x2
ShadowBitmap passe de 16x16 à 1x1
StarsBitmap passe de 4096x4096 à 2048x2048
FlatBitmap et TransparentBitmap passent de 8x8 à 1x1
Simplification ombre/sol/sous sol avec transparence en ombre/sol flat
Fusion de Nebulae, Stars et Gradiant Sky en un seul model
Simplification code détection Gamepad
Debug
Problème de Z order sur Android réglé : le viseur et le virtual gamepad ne disparaissent plus derrière le décor !
Scale automatique du background pour qu'il s'affiche correctement quel que soit le ratio de l'écran
Le visor ne passe plus à travers le sol
Plus de clipping dans les modèles 3D depuis l'import des fichiers 3ds
Le FX barrel roll s'affiche correctement par-dessus ground
Ajout
Nouveaux weapons : Laser ennemi
Nouveaux ennemis : Training Target
Nouveaux décors : Tower, WaterPlan, Pine Tree, Larch Tree
Remplacement des sphères astéroïdes small et big, visor, capsule et blimp par des modèles 3DS
Nouvelle icône vectorielle pour Android
Remplacement du pourcentage Hull par une jauge HUD
La touche debug sky gère maintenant la nébuleuse et le wormhole en plus du ciel
Nouveau bouton debug Sky pour Android
SoundTik sur bouton pause
Réglages
Suppression des touches haut/bas sur les menus de type gauche droite, c'était beaucoup trop dérangeant
Il manquait un Space Invader dans la database
Agrandissement de la collision box de Lotus Heart
Placement automatique des boutons du Virtual Gamepad en fonction de la résolution de l'écran
Réduction du volume du son d'activation du mode Debug
Les lasers bleus du joueur ne collisionnent plus avec son propre vaisseau
Ralentissement de la vitesse des lasers de Stalker et Moskito
Ajout des groupes de collision COL_LASERPLAYER et COL_LASERENEMY et des MASK qui vont avec
Petite passe sur les couleurs
Enfin le retour du fullscreen sans barre de navigation Android
Le quadrillage au sol est devenu de simples lignes
Vitesse de rotation du Lotus divisée par 4
Réécriture des Scraps en mode shape aléatoire
Meilleur positionnement des explosions et des scraps
Inside Ship devient Mothership
Réglage optimum pour la taille de Lotus Heart
On ne peut plus désactiver l'affichage FPS en mode debug
Taille de la collision box de SpaceInvader
Meilleure précision de tir
Augmentation de la limite de déplacement en X de -12/12 a -15/15
Suppression de CHIPTUNE NO.52 BY FRANK E.LARSEN, la musique était bien, mais beaucoup trop métallique et aiguë
Optimisations
Ajout de la phrase
Suppression de VGDebugText sur Virtual Gamepad
Suppression de fonction InitVirtualButton et clean code sur Virtual Gamepad
Suppression de la variable SoundData Array<String>
Une seule fonction pour le rendu des mesh player, enemy, onstacles, weapons et shadows afin d'éviter de modifier plusieurs fois le nom des mesh
Suppression des anciens modèles non utilisés
La prise de screenshot (touche F2) est maintenant instantanée alors qu'il fallait plusieurs longues secondes auparavant
Nouvelle gestion de la vitesse et du positionnement en Z du vaisseau durant les SmokeModel repassent en RenderOrder DepthSorted
Suppression de ScrapColor et ExplosionSphere
Le spawn debug boucle en fin de tableau
Debug
La zone de collision du vaisseau tourne enfin correctement avec sa rotation sur l'axe Z
Sur la dernière version de ZGE, on ne pouvait plus faire boucler les menus vers la gauche
Le jeu plantait si on affichait Lotus dans la database
La musique continuait de jouer quand le jeu perdait le focus sur Android
Suppression du warning
java.source=1.8
java.target=1.8
dans ant.properties ( ça correspond à jdk1.8.0_281 )
Le vaisseau du joueur continuait à fumer même lorsque son Hull repassait au-dessus de 25%
L'interface de jeu apparaissait en mode photo
Blimp arrête de tirer s'il est en train d'exploser
Ajout
Nouveau building et gateway pour plein de nouveaux paternes pour l'environement Town
Réglages
Réglage de la hauteur des ombres pour éviter le clipping sur Android
Debug
Les impacts lasers ne s'affichaient pas sur Android
Les bonus ne collisionnent plus par magie avec player lors de leur apparition. En fait il fallait set leur zbtSetPosition avant d'activer la collision zbtSetCollisionFilterGroupAndMask et zbtSetSleepingThresholds
Ajout
Randomisation du placement des étoiles de BackgroundStars au démarage. Je ne le fais pas à chaque génération de Background parce que la génération de BackgroundStars en 2048 freeze le jeu sur machine peu puissante
Réglages
Scale de 0 à 1 sur l'apparition des weapons
Positionnement initial de player laser en retrait
Réduction de la taille des particules de fumées du missile
L'affichage des ailes cassées du vaisseau dans la database n'apparait qu'en mode debug
Les mines font apparaitre 20 nails au lieu de 10
Optimisations
Mise à jour de la librairie SunVox de 1.9.4c à 1.9.6c
Mise à jour d'Android targetSdkVersion de 26 à 29
ZGameEditor utilise maintenant la librairie SDL2 au lieu de l'antiquité SDL1.2
ZGameEditor détecte maintenant l'unit LINUX pour ne pas avoir à gérer le chemin des librairies externes manuellement
Réduction du nombre de points BackgroundStars de 64 à 16
Simplification de la création de rigid body pour les ennemis
Remplacement du numéro de l'objet ayant un problème lors de la création de son Body par son nom, plus facile pour débugger
Debug
La génération du background et son affichage est géré quelle que soit la taille de l'écran et l'OS
Test pour empêcher le logo Txori de s'afficher à l'envers sur certain devices
Atténuation de la visibilité du bug des fonts sur Android en remplaçant le Transparency de BitmapFromFile en BlackColor plutôt que AlphaLayer
Les éléments de décors apparaissaient penchés en fonction de l'orientation du tir laser de player
La taille du virtual joystick influait sur la rotation maximum du vaisseau lors de ses déplacements
La position du virtual gamepad était mal récupérée au loading de la sauvegarde
La texture BackgroundStars se répétait sur un écran avec trop grande résolution
Ajout
Nouveaux modèles 3DS : SonicBoom
Database: Key repeat sur les boutons Previous et Next
Réglages
Le jeu est maintenant en mode 64bits et utilise la librairie ZgeBullet_x64.dll
Agrandissement de background pour ne pas afficher du noir en coin d'écran lors du camera shake
Ralentissement de EnemyLaser de 200 à 150
Après avoir vu le gars sur Twitch activer le mode debug par erreur, j'ai passé l'activation à 4 clicks et la désactivation à un seul click
La couleur du Visor s'adapte à la couleur d'arrière-plan
Optimisations
Simplification de l'export TEXT en vue de l'update classes de ZGameEditor
GroundColor passe de vec3 a mat4 pour le transfert des couleurs du sol au shader shadow
Suppression de SkyRenderSetColor maintenant que l'alpha de sky est géré par le shader
Remplacement de tous les =. en =0.
Désactivation des fonctions et const OpenGL non utilisées
Désactivation des fonctions ZgeBullet non utilisées
Debug
Une ligne de texte sur deux avait un problème de fond non transparent sur Android
Réparation du Camera shake qui n'avait jamais fonctionné
Problème de boite de collision non réinitialisée dans database
Les ombres s'affichent correctement !
Database: l'affichage du boss Lotus en mode debug cassait la rotation de l'affichage de la boîte de collision sur les autres modèles
La forme des montagnes et stalagmites générée aléatoirement ne l'était plus depuis la version 210331
Ajout
Nouveaux modèles 3DS : Canon, Blimp, Scrap, Stalagmite small & big, Ruin Pillar, Moai
Nouveau pattern : Torii gates
Nouveau set : Forest
Affichage du pourcentage d'ennemis abattus par niveau
Le pourcentage d'ennemis abattus se cumule au score en fin de niveau % x 10
Ajout de la table de HighScores et de l'écran NewHighScore
Le Power-up Shield colore la jauge de vie et l'Omeganaut
Légende d'utilisation sur l'écran Setup Virtual Gamepad
Timer sur l'écran Disclaimer pour passer à l'écran Title
Timer sur l'écran Title pour passer à l'écran HighScores
Option d'activation/désactivation des vibrations Gamepad dans l'écran Setup
Fonction Google Doc d'export de la liste des models affichables dans Database
Coloration rouge du cockpit et/ou wings de l'Omeganaut lors d'un hit
Apparition d'un Boss tous les trois Stages
Rotation de la lampe dans la Database pour mieux apprécier les volumes
Pas de temps de transition pour le premier Stage en mode Debug
Animation d'apparition du titre Omeganaut
Réglages
L'Omeganaut n'est plus bloqué dans le couloir. On peut forcer un peu pour sortir du couloir
Ralentissement de la vitesse des lasers ennemis : 150 → 130
Meilleur timing pour l'apparition de la fumée sur l'Omeganaut
Le tir chargé est moins OP (il ralentit et finit par disparaitre à force de collisions)
Réduction du damage cockpit 5 → 2
Suppression des noms aléatoires des niveaux
Modification taille et forme du missile
Réduction de la distance d'apparition sur les axes X et Y du MineField 40 → 32
Réglages Shake gamepad pour la fumée et le BarrelRoll
Suppression du triple tir → Charge facilitée
Réglage volume sur les sons Tick et Validation
Le Boss Lotus tire quatre fois plus de missiles
EnemyWasHit est indexé sur App.DeltaTime
Apparition des Weapons, Enemis et Decorium avec un Scale = 0
La collision des Weapons ne s'active qu'après qu'elles ont atteint leur Scale == 1
Réactivation de l'apparition des astéroïdes en tant que décors dans AsteroidField
Réglage de la distance caméra sur tous les objets de Database
Temps de transition entre niveaux différents selon le numéro de Stage et le Sector
Probabilité d'apparition de PowerUp différent selon le type d'ennemi détruit
Disparition du Fire Charge au-delà d'une distance de 300
Le son du Fire Charge se lance quand il est chargé au lieu du moment de son apparition
Interceptor 1.5x plus gros
Animation de rotation du logo Txori
Remplacement de tous les sound_vaildation par sound_tick
Optimisations
Le dégradé du ciel de Background n'est pas rendu dans les menus
Simplification de l'affichage du viseur
Réécriture totale de la fumée
Amélioration du déplacement des explosions et Scraps
Renommage de toutes les variables pour s'y retrouver plus facilement
Conversion des int qui ne peuvent dépasser 256 ou être négatifs en byte
Réécriture totale du spawn object sous la forme
Dummy.Position = vector3(0,0,10);
createModel(Dummy);
au lieu de
model m = createModel(Dummy);
m.Position = vector3(0,0,10);
Utilisation des paramètres RGB au lieu de XYZ pour les vector3
Clean des Mesh, Materials, Textures et Shaders non utilisés
Enemy.Behavior devient un int au lieu d'un Array, parce que les Array ne sont pas nominatifs aux Models
Réduction du shape AsteroidSmall par x0.5
Pas de création de Scraps au-delà d'une distance de 250
Réécriture de la gestion du spawn des obstacles en intérieur et la détection de la fin de ce genre de niveau
Réécriture de la gestion du tir chargé
Simplification de la coloration des particules catch PowerUp
Optimisation du nombre de tests Raycasting pour le Visor
Debug
La musique se relance dans l'écran setup si on fait "Music: On" ou "Reset Settings"
Le spawn Invader, Lotus et Mine sur une planète ne fait plus planter le jeu à cause de la fonction renderMesh. Tout se passe dans CreateShadow (à améliorer)
Réinitialisation des Timer.CurrentRelativeTime pour éviter les surprises d'apparition d'objets au mauvais moment
Réinitialisation des paramètres Camera en début de jeu pour éviter les problèmes
AsteroidSmall explosait instantanément à son apparition après destruction de AsteroidMedium
Le PowerUp pouvait entrer en collision avec autre chose que l'Omeganaut. Bug incompréhensible... Donc j'ai limité ce test de collision a une courte distance
Le patern Mine n'apparaissait que sur OnPlanet
La sortie de Corridor cachait le Virtual Gamepad
Les objets disparaissaient par le haut ou le bas de l'écran alors qu'ils étaient encore dans le champ de vision
Ajout
Nouveaux modeles colorés pour Interceptor, Moskito, Stalker et Blimp
La touche Debug permet de passer directement de l'écran Disclaimer au mode debug
Respawn rapide de l'Omeganaut en mode debug simplement en tirant
Fonction Google Doc d'export de la liste des models que l'on peut spawn en mode Debug
Petit shake gamepad quand le tir chargé est prêt
Les Power-Ups sont attirés vers l'Omeganaut lorsqu'il charge un tir
Son d'accélération de l'Omeganaut
Son woosh stéréo (axe X, il faut voir comment je vais faire pour Y) des objets environnants
Variable debug pour prendre des photos avec ou sans UI
Ajout du rollover souris sur tous les menus
Légère rotation aléatoire des arbres sur leur axe X et Z
Prise en compte du bouton Back sur les manettes Xbox
Réglages
Sur clavier, la touche Back [Z] disparait au profit de la touche [ESC]
Suppression de la détection de la touche Back dans Setup Keyboard
Basculement entre les channel 0 à 3 à chaque lecture d'un son pour éviter de saturer un seul channel
Désactivation du son de validation bouton sur le spawn Explosion en mode Debug
Limite threshold joystick pour les menus (0 → 0.2)
Réduction du shake gamepad pour la fumée (0.2 → 0.12)
Réduction du shake gamepad pour le roll (0.4 → 0.1)
Augmentation du nombre de particules Stars ([50,500] → [100,1000])
Suppression de l'accélération de l'Omeganaut lors du Game Over. Remplacé par un simple éloignement sur l'axe Z
Renommage Invader B. en Invader C.
Réglages vitesse de déplacement et caméra lors des transitions entre niveaux
Texture au sol pour délimiter la zone de déplacement sur l'axe X
Utilisation d'un shader basic pour l'affichage du Sonic Boom
Réduction de la longueur des Stages (25 → 20)
Division de la vitesse des Scraps à leur apparition par 4
Seules les ailes cassées de l'Omeganaut subissent des dommages de collision
Réduction du volume son Laser Hit (0.8 → 0.6)
La destruction des Asteroids medium et big donnent un nombre fixe de rejetons, au lieu d'un chiffre au hasard comme avant. Les règles doivent être strictes !
Les touches clavier ENTER et SPACEBAR ne sont plus prise en compte lors du setup clavier. Avant elle faisaient un Backbec
Suppression de la touche Back pour valider le nouveau highscore
À l'écran nouveau HighScore, le bouton Fire permet de valider une lettre ou de valider le nom si la dernière lettre est sélectionnée
Ajout du ButtonEscape pour différencier de ButtonBack, permettant plus de finesses entre UI clavier, gamepad et écran tactile
Lors du setup clavier, n'importe quelle touche clavier enclenche la détection, par contre les touches réservées ne sont plus prise en compte une fois le setup lancé
On peut maintenant quitter le Setup Gamepad ou Clavier en appuyant sur bouton Escape
Réglage de la précision du clic souris sur tous les menus
Blimp et Moai peuvent apparaitre sur le set Plain
Les Mountains n'apparaissent plus sur le set Plain
Suppression du spawn AsteroidBig sur Set_Moon
Réduction du nombre d'astéroïdes sur le set Moon
Beaucoup plus d'arbres dans la forêt
Arbres plus massifs
Optimisations
Les Shadow ne sont plus des Models, du coup le nombre de models affichés a été divisé par deux. Les Shadow sont directement affichées sur le onRender des Enemy, Objects et Weapons. Le seul model Shadow restant concerne le Player, à cause de sa rotation sur l'axe Z (Barrel Roll)
Simplification de la gestion des contrôles Virtual gamepad qui se trouvaient sur player au lieu de onUpdate du jeu
Suppression du contrôle souris
Simplification du code onUpdate de CatchPowerUp
Suppression de lookAtCamera(CurrentModel) sur CatchPowerUp et Explosion, apparemment il n'y a pas besoin de le tourner vers la caméra
Suppression du vieux model Manta qui trainait dans le projet depuis le début
Suppression de la collision physique sur le power-up. La collision se fait avec un simple CalculateDistance3D
Simplification de l'affichage PowerUp
Division du model Enemy en sous modèles EnemyState, comme pour le model Weapon
Suppression de CalculateEnemyMove et utilisation de CalculateVelocity à la place en passant l'EnemySpeed en négatif
Simplification du calcul de ralentissement de la rotation du ModelViewer
Simplification de l'animation basée sur le calcul du temps dans ModelViewer
Séparation des Obstacles et des Décors, ces derniers n'ont pas besoin de HitBox ni de Shadow
Le sprite Boost ne s'affiche que si Speed > SpeedMax
Réécriture totale de la gestion du rebond de l'Omeganaut lors d'une collision sur les ailes
Simplification du Database Render Mesh
Suppression du model SonicBoom. Maintenant, c'est un effet directement intégré dans l'affichage de l'Omeganaut
Simplification du code du FX hit
Réduction de la texture des planètes/lunes de 256x128 à 128x64 pour éviter la saute sur petite config
Plus qu'une seule fonction Google Doc pour exporter VARS et DATA au même endroit
Apparition Invaders avec 2 boucle "for" au lieu de 5...
Déplacement de la gestion des boutons de navigation du model Database au state Database
Debug
La note passée dans la fonction PlaySound3D n'était absolument pas prise en compte...
Réinitialisation du Roll et BarrelRoll au respawn de l'Omeganaut
La collision entre Omeganaut et un bonus ne se faisait plus pendant le Game Over
L'App.DeltaTime n'était pas pris en compte dans la réduction des scraps
On ne pouvait pas mettre le jeu en pause à la fin d'un niveau avant l'affichage de "PRESS FIRE"
Les scraps et la charge tir n'avaient pas d'ombre
LevelCleared n'était pas réinitialisé en début de partie, si bien que le LEVEL CLEAR s'affichait en mode debug si on a avait quitté à ce moment-là
Suppression de la gestion de l'axe Y pour le volume du son parce qu'il était inaudible dans l'espace et trop fort au sol...
Même cassées, la collision des grandes ailes étaient toujours prises en compte
Reset des Timers sur le OnLeave de GameState pour éviter d'avoir un immeuble qui passe sur l'écran HighScore
Il manquait la signature TGA en fin de fichier de capture photo pour produire une image vraiment compatible
Pour éviter plusieurs problèmes, la sauvegarde des settings se fait à chaque fois qu'on revient à l'écran Setup
Le changement de taille du Virtual Gamepad n'était pris en compte que pour le cercle externe
Ajout
Suppression des musiques MOD temporaires. J'aurais dû le faire avant, mais maintenant que le moteur de musique fonctionne, il faut que je me remette à l'écriture de ma propre partition !
Ajout d'un HeartShape en plus du BodyShape pour les Ennemis
L'activation du mode debug photo permet de prendre des photos avec le bouton X de la manette XBox
La touche photo permet de prendre des screenshots sur tous les écrans, pas seulement pendant le jeu
Jauge de vie pour les Boss
Tige de collision sur les modèles dans Database en mode Debug
Transition de rotation du Visor pour éviter les sautes lors d'un Barrel Roll
Réglages
Le Barrel Roll annule le tir chargé
Suppression du délai KeyTime sur l'écran Setup VG
L'Omeganaut revient à son scale Z normal durant les transitions si ce n'est pas un wormhole
Le Lotus tire 2x plus de lasers
Gros boulot sur les boites de collisions
La taille du pointage laser dans Database varie en fonction de la distance de la caméra, pour que ce soit toujours bien visible
Optimisations
Suppression du support Android OUYA
Debug
Le physic body des ailes de l'Omeganaut était en vrac...
L'icon de l'exe ne prenait pas en compte la nouvelle icon pour Android
Ajout
Tir sur les ennemis facilité grâce à l'aide à la visée
Détection haut et bas des objets environnants le player pour un rendu du son en stéréo
Remplacement des explosions 2D par de la 3D
La pression d'un bouton manette désactive le Virtual Gamepad s'il était affiché
Variable de mode DEBUG global, permettant de skip automatiquement l'écran Disclaimer et Title
Variable DEBUG_WEAPON pour choisir son niveau de tir
Nouveau système de génération de nébuleuse qui peut s'animer et changer de couleur
FX lignes de vitesse
Le changement de Zone ou de Sector en mode debug permet de sortir de SET_MOTHERSHIP
Aspiration des power-ups au lieu d'une simple disparition
Augmentation du Score façon Pinball
Réglages
Taille et durée des particules catch Power-Up
Les explosions n'ont plus leur propre vitesse sur l'axe Z, mais celle de la vitesse du player
Remplacement du modèle sphère par une icosphère pour les planètes
Je n'utilise plus la texture pour les planètes. Simplement des vertex colorés, comme le reste des modèles
Position du "soleil" beaucoup plus éloignée
Augmentation de la vitesse de dégagement du wrong path sur les côtés
Accélération de l'aspiration des power-ups avec la diminution de la distance avec PlayerShip + set d'une distance minimale pour les attirer
PlayerShip ne fume plus pendant qu'il est invincible
Blur de 8 sur la texture wormhole
Réglages HP Asteroid Medium 12 -> 10, Asteroid Big 40 -> 30, Moskito 4 -> 2, HP Stalker 4 -> 3, Rhino 15 -> 10
Position Z max des Decorium 4000 -> 3000
Temps de transition entre niveaux 4 -> 5
Réglages rotation axe X de l'Omeganaut pendant les transitions 0.1 -> 0.06
Les laser player apparaissent plus proches de l'Omeganaut
Optimisations
Le calcul du timer fumée ne se fait qu'une seule fois lors d'un damage au lieu d'une fois par frame
Réduction de la taille de la texture nébuleuse de 128x64 à 64x32 pour rester à 60fps pendant les transitions
Simplification de la rotation des planètes (suppression de RenderTransformGroup)
Debug
Les valeurs PlayerWasHit, PlayerWingLeftWasHit et PlayerWingRightWasHit n'était pas reset au spawn de l'Omeganaut
La vitesse du Blimp n'était pas branché sur le fps, du coup, il ralentissait beaucoup trop sur les ordinateurs rapides
Le déplacement de Decorium (planetes, lunes...) n'était pas branché sur le fps
J'avais oublié de désactiver DEBUG_PHOTO_UI ce qui engendrait le bug "Oh... You can hide the reticle"
La fonction TestLimits faisait disparaitre les lasers de l'Omeganaut sur les côtés de l'écran en position Z = 0
Le tir chargé restait coincé en fin de niveau s'il était chargé à fond
Ajout
Relief des planètes aléatoires
Affichage des coordonnées et velocity de PlayerShip en mode Debug
Gonflement des mines avant explosion
Ajout d'une touche Kill Switch (0) en mode debug
Remplacement du sprite de boost vitesse par un modèle 3D
Remplacement des vieux "Space Pillars" par le vaisseau amiral BFG
Shake de l'Omeganaut pour toutes les accélérations
Téléportation de tous les objets à l'origine de World à la fin de chaque Stage pour éviter les surprises si on s'éloigne trop
Différenciation entre object fixe (qui peut passer dans le sol), mouvant (qui nécessite un update de son body à chaque frame) et enemy (pareil que mouvant, mais fait fonctionner le visor)
Petite mise en scène du pourcentage de complétion en fin de stage
Disparition du tir chargé en fin de stage
Gestion des ombres au sol dans Mothership
Branchement des couleurs random sur les murs et sol du Mothership
Fusion des deux path en un seul decorium si la zone est la meme (ex: planet town et planet forest)
Réglages
Inversion des mouvements des objets du jeu : Au lieu que ce soit tous les objets qui viennent a la rencontre de la caméra, c'est le PlayerShip et la caméra qui avancent
Rotation Z des missiles en fonction de leur rotation Y
Branchement du nombre, taille et vitesse des StarParticles en fonction de la vitesse et du set
Réorder des touches debug 5,6,7 -> Next Zone, Next Sector, Random Stage
Réduction du cone de visée automatique 44 -> 40
Réduction du nombre de faces sur Moskito
Rhino tire deux salves de missiles
Les missiles sont beaucoup plus agressifs
Le waterplan qui n'a pas besoin de collision et ombre est devenu un décor au lieu d'un obstacle
Désactivation des anciennes montagnes 3D en attendant de voir comment les réintégrer proprement
Apparition des obstacles/ennemis à TimerTransisiton - 1 seconde pour qu'il n'y ait pas d'attente pour avoir de l'action en début de niveau
Les PowerUps comptent comme un ennemi pour ne pas envoyer la fin de stage directement après avoir tué le boss
Réglages de life en fonction du tir chargé qui fait pile 5 points de dommages maintenant :
Rhino 10 -> 5, pour pouvoir être tué avec un seul tir chargé
Asteroid Medium 10 -> 5
Asteroid Big 30 -> 15
Lotus 400 -> 200
Stalker 4 -> 3
Blimp 50 -> 20
Asteroid Field: moins d'astéroides d'un coup (ça fait freeze le jeu) mais plus souvent
Grossissement et armement des Weapon deux fois plus rapide, pour éviter de tirer à travers les ennemis trop proches
Optimisations
Suppression de la mise à jour de la physique des obstacles à chaque frame
Simplification du nombre de faces du modèle 3D FX line 8 -> 1
Suppression totale de tout ce qui faisait fonctionner l'ancienne Mountain
Debug
Quasiment toutes les boites de collisions basées sur du zbtCreateScalableSphereShape étaient deux fois trop grosses (diamètre au lieu de rayon...)
L'explosion des astéroïdes en collision avec le sol passait sous le sol à cause de Velocity.Y
Le tir Charge ne fait plus de dégâts lors de sa disparition
La position du Collision Body Heart n'était plus updatée à la mort du Boss Lotus et pouvait entrer en collision avec l'Omeganaut
Ajout
Waypoints pour que les ennemis circulent entre les obstacles
Animation du texte du path
Nouveaux patterns : M_RUINPILLARx3, M_RUINPILLARFALLEN
Variable DEBUG_WAYPOINTS pour afficher les waypoints
Réinitialisation des coordonnées de Texture_Ground lors du NextStage
Ralentissement de la caméra lors du Game Over
Le laser player et le tir chargé ont une portée maximum de 250
Le viseur ne s'allume pas au-delà d'une portée de 250
Ajout de la touche shift en mode debug pour faire circuler le spawn menu de 10 en 10
Réglages
Taille des lasers player et enemy
Set Plains devient Ruins
Le Stalker tire plus longtemps, mais moins soutenu
Le Stalker utilise FollowWaypoints
Position du spawn horizon (-500 -> -600) pour permettre aux gros objets d'apparaitre dans le brouillard plutôt que poper d'un coup dans le champ de vision
Minimum Terrain_Size à 16 plutôt que 0 parce que ça ne rendait pas bien du tout
Augmentation du nombre de bandes de montagnes 32*16 (512) à 64*16 (1024) pour qu'elles apparaissent dans le brouillard
Réduction du nombre d'asteroides:
- Big émet 3 medium au lieu de 4 medium et 2 small
- Medium émet 2 small au lieu de 6
Zone de clic sur les flèches haut et bas de la page HighScore plus grande
Skip de l'écran Disclaimer (mais je ne peux pas m'en débarrasser parce que l'initialisation de l'écran sur Android est cassé sinon...)
Optimisations
Grosse simplification du code spawn decorium. Plusieurs appels de fonctions (genre randomColors) étaient en double, voire en triple...
Simplification des explosions pour obtenir plus avec moins de code et de modèles
Suppression de la transparence des SpeedLines
La ZExternalLibrary XInput n'est pas chargée sur Android ni Linux
Simplification du code de positionnement des montagnes
Suppression du paramètre pour tester ou non la sortie des objets en dehors du champ de vision. Maintenant ça se fait de base, sauf pour le BFG
Remplacement des composants Timer_EmitEnemy, Timer_EmitObstacle et Timer_EmitDecors par des variables
Affichage de tous les modèles en Normal au lieu de DepthSorted. Ça bouffe de la patate et ce n'était intéressant que pour afficher les smoke2D correctement derrière les modèles 3D
Réduction du CameraGame ClipFar 1000 -> 500 pour améliorer la précision du z-buffer (https://www.khronos.org/opengl/wiki/Dep … _Precision)
- CameraGUI ClipFar 200 -> 100
- CameraDecorium 20000 -> 10000
Fusion de la texture de Ground et Terrain, comme ça plus besoin de faire défiler la texture du sol manuellement, celle-ci est directement projetée sur terrain
Suppression de Ground, le sol est géré directement dans State_Game
Remplacement des smoke 2D (player et missile) par smoke 3D
Ajout de la balise ZBT_CF_STATIC_OBJECT sur les obstacles pour ne pas avoir à set leur position a chaque frame pour être repoussés par le sol
Debug
Des fois le Terrain flottait par-dessus le Ground
La variable DEBUG_LENGTH faisait apparaitre autant de boss que sa valeur
Le dernier bloc de Corridor de MotherShip ne peut plus recouvrir le sas de sortie
Le viseur s'affichait derrière les montagnes
PlayerSpeed n'augmentait durant la transition vers Wormhole
Le pourcentage de completion de niveau s'affichait pour enemyTotal ==1 (Boss)
Ajout
Nouvel enemy : Tick
Nouveau weapon: Charge Enemy
Écran de validation du Reset sauvegarde
Boutons de Zoom - et + en mode Debug dans l'écran Database pour gérer le zoom facilement
Ajout de la liste de Zoom Database dans le DataDoc
Disparition de la couleur Shield en Alpha pour sa dernière seconde
Réglages
Diamètre des boites de collisions de forme sphérique, conique et cylindrique
Player speed 60 -> 55
Rhino speed -20 -> 0
Invader speed -50 -> -40
Timer Smoke Missile 0.01 -> 0.02
Réduction du cône de visée 20 -> 15
Timer d'apparition du premier ennemi de chaque niveau 1 -> 2.5
Uttilisation du material smoke pour les speed lines (blanc transparent au lieu de jaunasse)
Apparition de Tick dans Space, Wormhole et Town
Apparition d'Asteroid small et medium dans Moon Canyon
"Worm hole" devient "Wormhole", c'est quand même beaucoup mieux...
Blend de la Font en Alpha/One vers Color/OneMinusSourceColor pour mieux discerner les contours sur fond lumineux
Suppression du blend sur le visor (GL_ONE_MINUS_DST_COLOR, GL_ZERO) -> Affichage simple en cyan
Suppression de la détection des boutons D-Pad dans le Setup Gamepad
Désactivation totale du bouton Back sur Android
Modification des contrôles sur la page New High Score
On ne peut plus quitter le jeu à l'écran titre en appuyant deux fois sur le bouton Back
Skip de l'option Music On/Off dans l'écran Setup tant qu'il n'y a pas de musique dans le jeu
Optimisations
Mise à jour player ZGE Linux
Amélioration de la détection des Models passant à proximité de PlayerShip, ce qui permet d'émettre un son différent par Model, ou de ne plus rien faire, comme pour CorridorWall ou Ground
Le Background est rendu avec sa propre caméra, loin du jeu
Amélioration du dégradé de ciel avec une hauteur de 5 au lieu de 3 et une couleur transitoire = (bas + haut) / 2
Remplacement de "precision mediump float;" par "precision highp float;" dans les VertexShader : ShadowShader, GroundShader, VertexDiffuseShader, VertexDiffuseShaderNoFog (planet), HyperspaceShader, HitShader (red color), ExplosionShader, TextureShader (planet ring), GhostShader, ShieldShader
Suppression du calcul manuel de ScreenWidth et ScreenHeight, maintenant que App.ScreenWidth et App.ScreenHeight fonctionnent
Les arrays LTrigger et RTrigger sont désormais en int au lieu de float
Suppression de SmokeMaterial et SmokeBitmap qui n'étaient plus utilisés depuis les explosions en 3D
Simplification de l'appel à la fonction de prise de screenshot
Simplification de la détection RollOver et Click sur tous les boutons (menus et debug)
Suppression de l'interface de debug sound dans l'écran Database. Il n'avait rien à faire ici et il reviendra sous une meilleure forme par la suite
Réécriture totale du système de particules. Le set de ParticlesPerSecond, ParticleWidth, ParticleHeight et Speed n'avaient rien à faire dans OnEmitExpression...
Debug
Réparation de la librairie externe ZgeBullet qui faisait n'importe quoi avec les collisions entre objets ayant subi une rotation
La taille des boites de collisions correspondent finalement entre Database et le jeu
Terminé le clipping sur certains devices Android !!!
L'appel de XInput dans OnUpdate faisait planter le jeu dès le début sur Linux. Comme il n'y a pas moyen de détecter si les drivers XBox ont été installés sur Linux, j'ai désactivé le support XInput pout ce système, et le gamepad XBox se comporte comme un gamepad standard
Il fallait cliquer 4x sur le titre au lieu de 3x pour activer le mode Debug. J'ai toujours cru que c'était parce que je ne cliquais pas au bon endroit...
Les Models DOOR et DOORBIG n'avaient pas de boite de collision, du coup, c'était remplacé par une sphère en plein milieu qui entrainait une petite collision
Il fallait 3 clics au lieu de 1 pour enlever le mode Debug si on était allé sur une autre page que l'écran titre entre temps
Le background s'affichait à la mauvaise taille selon la résolution de l'écran
La boite de collision d'Obstacle a l'air d'être déplacée lors d'une collision avec un Enemy (ex: Blimp VS Wagon). Du coup, je refais un zbtSetPosRot sur Obstacle a chaque frame en attendant de trouver mieux
Suppression du lag lors du BarrelRoll. Il ne fallait pas multiplier par App.DeltaTime
Le D-Pad des gamepads génériques sur Android fonctionnent enfin !
Le clic souris / touchscreen entrainait la détection clavier dans l'écran Setup Keyboard