Na overleg met @NMe is besloten dat ik hier de volgende vraag kan stellen:
Een Engelstalig vriend ontwikkeld mbv Tyranobuilder een Visual Novel met als doel die te kunnen verkopen.
Tyranobuilder is een engine die hier speciaal voor ontwikkeld is, intern een JavaScript subset gebruikt en executables voor meerdere platformen kan genereren.
Een eigenschap van Tyranobuilder blijkt nu te zijn dat het images cached. Nu is dat voor een 'gewone' Visual Novel geen probleem omdat de scenes sequentieel verlopen (met hier en daar wat branching) en dat deze alle referenties verliezen als een scene is afgelopen en dus voer zijn voor de GarbageCollector.
Echter door de opzet van deze Visual Novel blijven scenes herhaalbaar en dus blijven ook de referenties bestaan alsmede de images in de cache. Sterker nog, het lijkt of Tyranobuilder steeds opnieuw dezelfde images erbij laadt (het programma is 500MB en na een 20 min. spelen gebruikt het al 5GB aan geheugen).
Mijn vraag is dan ook: is er een mogelijkheid om deze plaatjes zelf uit het geheugen te verwijderen?
Tyranobuilder kan overweg met scripts voor JS, HTML en CSS.
Relevante software en hardware die ik gebruik:
Tyranobuilder, meest recente versie, voor de VN.
Daz3D voor de images.
Wat ik al gevonden of geprobeerd heb:
Ten eerste nog even dit: een andere engine is eigenlijk de laatste optie omdat deze VN in etappes wordt opgeleverd (en dus steeds groter wordt, vandaar nu pas het opduiken van het probleem) en er al meerder mensen voor betaald hebben, die een maandelijkse release verwachten.
Wat hebben we geprobeerd (ik ben zelf geen JS kenner dus ik zal wel fouten maken in de expressies):
- delete var;
- var==null;
- Cache.Delete();
- Cache-Control: no-cache;
- Cache-Control: max-age=xx;
Hierbij aangetekend dat Cache-Control wel voor Tyranobuilder zelf kon worden aangepast maar dat deze
setting niet aan de uiteindelijke executable wordt doorgegeven.
- Tyranobuilder maakt gebruik van een interne 'Jump' instructie om naar een scene te springen en deze hebben we vervangen door een 'Call' om zo een scene als subroutine te behandelen. Elke scene bevindt zich hierbij in een aparte file.
Beide instructies lijken ook erg op elkaar 'Call label' of 'Jump label'.
Het enige wat nog iets leek te doen was om Tyranobuilder een executable te laten genereren voor een browser, dan Chrome te downloaden en dan aan te passen om Tyranobuilder programma's local te kunnen spelen.
Maar om dit voor mensen die even een spelletje willen spelen en het al hebben gekocht achteraf verplicht te stellen is 'not done'.
Graag zie ik jullie (mogelijke) oplossingen tegemoet!
Een Engelstalig vriend ontwikkeld mbv Tyranobuilder een Visual Novel met als doel die te kunnen verkopen.
Tyranobuilder is een engine die hier speciaal voor ontwikkeld is, intern een JavaScript subset gebruikt en executables voor meerdere platformen kan genereren.
Een eigenschap van Tyranobuilder blijkt nu te zijn dat het images cached. Nu is dat voor een 'gewone' Visual Novel geen probleem omdat de scenes sequentieel verlopen (met hier en daar wat branching) en dat deze alle referenties verliezen als een scene is afgelopen en dus voer zijn voor de GarbageCollector.
Echter door de opzet van deze Visual Novel blijven scenes herhaalbaar en dus blijven ook de referenties bestaan alsmede de images in de cache. Sterker nog, het lijkt of Tyranobuilder steeds opnieuw dezelfde images erbij laadt (het programma is 500MB en na een 20 min. spelen gebruikt het al 5GB aan geheugen).
Mijn vraag is dan ook: is er een mogelijkheid om deze plaatjes zelf uit het geheugen te verwijderen?
Tyranobuilder kan overweg met scripts voor JS, HTML en CSS.
Relevante software en hardware die ik gebruik:
Tyranobuilder, meest recente versie, voor de VN.
Daz3D voor de images.
Wat ik al gevonden of geprobeerd heb:
Ten eerste nog even dit: een andere engine is eigenlijk de laatste optie omdat deze VN in etappes wordt opgeleverd (en dus steeds groter wordt, vandaar nu pas het opduiken van het probleem) en er al meerder mensen voor betaald hebben, die een maandelijkse release verwachten.
Wat hebben we geprobeerd (ik ben zelf geen JS kenner dus ik zal wel fouten maken in de expressies):
- delete var;
- var==null;
- Cache.Delete();
- Cache-Control: no-cache;
- Cache-Control: max-age=xx;
Hierbij aangetekend dat Cache-Control wel voor Tyranobuilder zelf kon worden aangepast maar dat deze
setting niet aan de uiteindelijke executable wordt doorgegeven.
- Tyranobuilder maakt gebruik van een interne 'Jump' instructie om naar een scene te springen en deze hebben we vervangen door een 'Call' om zo een scene als subroutine te behandelen. Elke scene bevindt zich hierbij in een aparte file.
Beide instructies lijken ook erg op elkaar 'Call label' of 'Jump label'.
Het enige wat nog iets leek te doen was om Tyranobuilder een executable te laten genereren voor een browser, dan Chrome te downloaden en dan aan te passen om Tyranobuilder programma's local te kunnen spelen.
Maar om dit voor mensen die even een spelletje willen spelen en het al hebben gekocht achteraf verplicht te stellen is 'not done'.
Graag zie ik jullie (mogelijke) oplossingen tegemoet!