Limites de I7

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Limites de I7

Messagepar tvisarl le Dim Aoû 18, 2019 6:15 pm

J'avance bien sur mon dernier jeu, un dungeon crawler pour ados et pré-ados, histoire de voir s'ils savent encore lire. Et les résultats sont encourageants : ils ne savaient pas qu'on peut faire des jeux avec d'autres "scénarios" que tirer à vue tout ce qui bouge et même tout ce qui ne bouge pas, des "jeux avec une histoire", et ils sont tout surpris. Je vous en reparlerai.

A mon avis, ce jeu n'est pas énorme : 18 000 mots, 63 salles et 130 objets y compris les backdrops. Je pense finir à 22 - 23 000 mots.

Mais j'ai déjà du repousser les limites par défaut d'I7. J'en suis là :

Code: Tout sélectionner
Use MAX_NUM_STATIC_STRINGS of 50000.
Use MAX_PROP_TABLE_SIZE of 50000.
Use MAX_STATIC_DATA of 300000.

Ça m'inquiète.
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: Limites de I7

Messagepar StephaneF le Dim Aoû 18, 2019 6:43 pm

Non, je te rassure, tu peux y aller tranquille.

Avec un interpréteur genre Gargoyle ou Lectrote, ça ne posera aucun problème, jamais.

Dans le pire des cas ton jeu saturera la mémoire virtuelle si tu fais une version jouable en ligne, mais pour ça il faudrait que tu aies des milliers d'objets et un nombre déraisonnable de règles qui tournent en même temps (je le sais, ça m'est arrivé...)
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 536
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Limites de I7

Messagepar tvisarl le Lun Aoû 19, 2019 6:58 am

Merci.
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: Limites de I7

Messagepar Natrium le Mar Aoû 20, 2019 3:27 pm

Pour être exact (en tout cas si je ne me trompe pas), ces réglages ne concernent pas I7, ni même l'histoire compilée, mais la mémoire que le compilateur I6 alloue lors de la compilation.

Pour pas que le compilateur ne bouffe toute ta mémoire (la RAM, j'imagine), il alloue un certaine quantité fixe de mémoire pour stocker diverses choses lors de la compilation. Mais si le jeu est très gros, alors la quantité par défaut ne suffit pas et il faut l'augmenter. (C'est sûrement moins pertinent aujourd'hui que dans les années 90, quand a été écrit le compilateur I6. Aujourd'hui, le compilateur pourrait s'allouer beaucoup plus de mémoire par défaut, je pense.)

Tout ça pour dire que ce que tu atteins n'est pas une limite de la taille du jeu. Le jeu peut aller bien plus loin. Avec Glulx, c'est 2 Go, ce qui est équivalent en texte à quelque chose comme 20 % de tout Wikipédia en anglais. Donc tu n'as pas à t'inquiéter.

Néanmoins, si ton jeu possède beaucoup d'objets (plusieurs centaines), il pourra devenir très lent parce que les Standard Rules ne sont pas optimisées pour ce genre de cas extrême. Zarf a écrit une extension pour mitiger ce problème, mais ça n'arrive pas souvent.

Et si ton jeu est vraiment vraiment très très très gros, le compilateur I7 peut bloquer parce qu'il n'est pas vraiment testé dans ces conditions et donc peut avoir des bugs de ce côté. Mais à ma connaissance, ça n'est arrivé qu'à un seul projet I7 (un jeu pour adulte, je peux te donner le nom si tu veux aller voir à quoi ça ressemble).

StephaneF a écrit:Dans le pire des cas ton jeu saturera la mémoire virtuelle si tu fais une version jouable en ligne, mais pour ça il faudrait que tu aies des milliers d'objets et un nombre déraisonnable de règles qui tournent en même temps (je le sais, ça m'est arrivé...)


Ça, ça m'étonnerait que ça puisse vraiment arriver, sauf quand on fait quelque chose de « stupide », comme une règle qui se relance récursivement à l'infini. Dans ce cas, ça n'est pas spécifique à Inform, tous les programmes qui font ça font finir par planter, parce qu'il auront besoin de plus de mémoire que l'ordinateur peut fournir.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1148
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Limites de I7

Messagepar tvisarl le Jeu Aoû 22, 2019 9:07 am

Merci à toi aussi.
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron