Je viens de refaire les 4 premières missions de Dune 2 en tant qu'Atreides (comme d'hab), ça fait des années que je ne l'avais pas fait.
Sur la centaine d'unités que j'ai tuées lors de la 4ème mission, 20-25 soldats + troopers + Sardaukars (simples ou triples) ont été récoltées avec moissonneuses et tanks légers (ça m'a quand même coûté plusieurs tanks)
PS: tu as quelle quantité approximative de code/données, actuellement ?
Au total il y a 58k de graphismes et 51k de code (non compressés !). Concernant le code, la barrière des 64k sera bientôt franchie.
Ouais, c'est sûr que la barrière des 64k ne va pas tarder, notamment à cause des tourelles...
L'ajout d'un DLL et le découpage du programme sont des pessimizations significatives, mais dans un jeu aussi riche, je ne vois pas comment les éviter. Même avec des approches inhabituelles du type "préprocessing d'une partie du code avec M4 + génération de bytecode + utilisation d'un interpréteur" (de mémoire, Calcrogue fait comme ça), si une telle approche est utilisable ici...
Ou alors on peut lui donner 3 unités qui servent à rien, voire 3 moissonneuses si on n'est pas pressé de récolter de l'épice (puisque les moissonneuses sont rapportées automatiquement).
Ouais, des Trike ou Quad en général (les vers bouffent souvent les unités rapides qu'on envoie en exploration).
Tu comptes réimplémenter le bug des unités Atreides ou Harkonnen déviées par un Déviateur Ordos, qui restent contrôlables (une seule fois) après la dissipation de l'effet "déviation", si c'était cette unité qui était préalablement sélectionnée ? Il est marrant, celui-là
Il vient de me passer une idée par la tête: si on utilise HW2/3Patch, comme de nombreux utilisateurs de 89/89T/92+/V200, que je sache, on n'a plus à se soucier de la protection d'exécution en RAM. C'est donc moins difficile de découper le programme en morceaux, de charger tous les morceaux dans la RAM, et de sauter (jsr / rts) d'un bout à l'autre quand c'est nécessaire.
Par exemple, minimap, système de sélection des prochaines missions, mentat, pourraient être mis dans d'autres morceaux, les morceaux communiquant par exemple à travers une global register variable pointant sur la mémoire partagée. Eventuellement plusieurs points d'entrée par morceau auxiliaire.
Je suis pas sûr que j'aurai bien le temps dans les prochains jours, mais ça m'amuserait d'essayer ça avec des programmes triviaux (lecture/positionnement des valeurs dans la mémoire partagée). Naturellement, je n'infligerai pas un tel traitement à ma pauvre 89 HW2, je testerai ça sur TIEmu