Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Crimson Wizard

Pages: [1] 2 3 ... 427
How does it crash, what is the error message?

1000 sprites is pretty low, what is the resolution of the game you are working with and what's size of "acsprite.dat" file in your game folder?
If it's really approaching 2GB one final option that you have is turn sprite compression in General Settings, depending on case it may reduce sprite file size in half or more.

Yes, but I wondered if this could cover both cases, as long as any available script functions to restore the state were still available in a newer engine version. So the data version is just the script version, and you drop support support for loading an old restoration script in the same way that legacy functions are phased out (script version strictness).

Oh! Hm. Now that actually sounds quite interesting.
Not sure how it may be achieved with compiled ags script though.

Escoria has an interesting approach, where the save game file contains the script commands to restore you to your current point in the game. Potentially, could the 'cutscene' functionality be used to jump through a script if there are checkpoints set?

I have a feeling we are speaking of different things... I meant data format versioning, not game versions.

Engine Development / Does AGS need savegame versioning?
« on: Yesterday at 20:06 »
My background is large complicated software which writes and reads lots of files some of which may happen to be years old, and I guess my brain keeps working inside this scheme.
I've spent a lot of time inventing a savegame format for the engine that would be easy to update, where each component (Characters / rooms / etc) has its own version, and so in theory one could support reading saves made by older engines as much as they want.
With AGS in "normal" conditions people probably rarely load up saves from older versions of the engine, but such situation sometimes happened with ports: someone was playing original Windows version of the game released with e.g. AGS 3.3.3, then loaded it up in latest Linux port of AGS 3.4.0, or maybe just moved from the buggy version of the engine to play the game on newer one, and wants same saves keep working.
Another idea I keep having is that since program is popular and used by many people (both developers and players), the "documents" it creates should have format that is easy to decypher and proper distinct versioning in case someone wants to parse them for any reason.

But the problem is that... I start having doubts in rationality of my decisions. Maybe this is all because I was working alone for too long and had no one to discuss things with properly, or maybe that's because I constantly feel pressure of having to answer to people having issues with the program all the time. On one hand I want program to work consistent and have certain "discipline" in it, on another I am no longer sure if the requirements I set for it are valid.

Because the simpliest way would certainly be to just have savegame bound to the engine version and refuse to load anything else even though in theory it could, and if someone complains just say "sorry we dont support anything else".

I have a question: does anyone use this version already to make the real game?

Assuming I may change savegame format a little without assigning it a new version index, breaking saves in this WIP version, because I don't want to keep and support the previous incorrect variant, would that be a problem to anyone?

Also DynamicSprites are counting towards this limit, so if you are generatic lots of sprites and not deleting them you will run out eventually. (Well, if you are not deleting them you will run out memory anyway)

Do you know/remember the giant zombie cat from the "Cat Lady"? I think it served a good comic relief:

Savegame locations are explained in the manual:

Windows: %USERPROFILE%/Saved Games/<Your Game name>
Linux: $XDG_DATA_HOME/ags, if XDG_DATA_HOME is not defined then fallbacks to /home/.local/share/ags.

The latest stable 3.4.1 release has a limit of 30.000 sprites, and 2 GB of total size of sprites.

The next version, currently in WIP state, will have these two limits raised or removed completely.

Brief information on limits may be found in the manual:

I think there was a suggestion of rebranding 3.4.2+ as 3.5 anyway, just because of the level of change?

My point was, these are just numbers, and I was wondering what version ChamberOfFear means feature-wise.

My vote is drop support for Windows XP, but maybe wait to update .NET until AGS v3.5.0 so that Windows XP users can keep using prevous versions and receive minor bugfix support on v3.4.x

The question is about dropping it for the current WIP version, now known as 3.4.2 (but these numbers are temporary), because the mentioned problem is from one of its new internal features.

Engine itself should be able to continue running on Windows XP (although I did not test that yet).

Other than this I have no assets to test the limits of more than 2GB :-\ , so I only quickly tested for regressions...
There is more than just 64-bit file support in this test build, compared to latest officially released one there is also room design state serialization. Is there a way to know better what causes the crash? I do not understand the log, it posts a lot of warnings there.

Oh reading the log I get it why it doesn't work the Linux build, instead of just copying the files, AGS creates hardlinks - and fails. I would prefer it just copied the files over - or gave me an option somewhere to do this instead.
Normally it should fallback to copying if hardlink fails. Again, is it possible to find out at which point in code it fails?

Believe it or not, but it looks like I made support for files over 2GB.

Tested with 4.5 GB of sprites.

Test build:
Source branch:

WARNING: this version modifies data format of some files, and you won't be able to use saved sprite file with older editor even if it's smaller than 2GB, so don't open your real project yet without a backup.

In a regular script you do this using String.Format.

For example:
Code: Adventure Game Studio
  1. cEgo.Say(String.Format("Hello! What a nice car, is it a %s", CAR_MODEL));
Here the %s will be replaced with CAR_MODEL value (this may be either String variable or literal string).

As Cassiebsg said, when you are putting regular script commands in dialog scripts you need to just add couple of spaces before the command (this way AGS recognizes regular script commands within dialog).

For the option text this is complicated. You cannot put script commands right into option box, and unfortunately there is no function that would create new option text in script.
Unless I am forgetting a simplier solution, only way to do this is to use Custom dialog options rendering. This system lets you to draw dialog options in any way you like, and while doing so you may also print dynamically modified option text.

Recently morganw found an issue that would be easier to solve if AGS Editor would run on .NET Framework 4.5, but that would make it totally incompatible with Windows XP. If I understood correctly, this is not the only way, but over time such situations will happen more often.

Here is the table of Windows XP share among all AGS uses built from anonymouse user statistics:

It shows decline of Windows XP percentage in the past several years, but few people are still using it (unfortunately it does not show which versions of AGS).
There are also couple of anomalies, like the one around 2016-06 when Windows XP share suddenly rised from 3.64% to 71.50%, and 2017-04 when it rised to 12% for one month, but I cannot explain these.

I am also curious about people running AGS on Wine under Linux, which versions of .NET it supports?

Beginners' Technical Questions / Re: AGS Editor gitignore
« on: 18 Aug 2018, 01:24 »
I noticed this was not mentioned yet. There is a number of temporary intermediate output files that appear in the project's root directory for a split second during compilation, but if process breaks for some reason they may remain there.

game28.dta -- main game data, before getting packed into exe
~aclzw.tmp -- temporary file created during sprite or room background compression.

Full .gitignore from my latest project:
Add spoiler tag for Hidden:
Code: Text
  1. # Output and cache
  2. _Debug/
  3. Compiled/
  4. AudioCache/
  5. Crashcar.exe
  6. warnings.log
  8. # Backup files
  9. *.bak
  10. backup_acsprset.spr
  12. # Local user configuration
  13. *.user
  15. # Temporary files
  16. _OpenInEditor.lock
  17. ~aclzw.tmp
  18. game28.dta

pass to 64 bits the file where the sprites are stored to remove the restriction of the maximum 2GB.

I began working on this.

This is a known issue, because AGS script cannot declare static array of 0 size. The only way to solve this for the future is to declare array property and use that instead (e.g. Game.InventoryItems[]).

Oh thanks, then, in theory, I just need to install Windows in spanish language.

I think you could simply install additional language, you may have multiple languages installed in same system, but only one selected as "Language for non-Unicode applications" at a time.

<?xml version="1.0" encoding="gb2312"?>

Right, I googled and GB-2312 is Chinese encoding:
So it was probably all because you have Chinese as a default language in the system, so all the text you type in AGS is converted using Chinese locale which has different letter numbers, and does not match the regular font with Spanish letters.

Pages: [1] 2 3 ... 427