Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Six questions

A topic by Amaroq-Softfur created Feb 23, 2021 Views: 245 Replies: 3
Viewing posts 1 to 3

1. Do these extensions support atomic transactions?

2. Are they capable of compressing the contents of an INI file at all, and/or placing the INI file into (or retrieving it from) a ZIP?

3. Do they operate asynchronously and/or on multiple processor threads?

4. Do they work with writing UTF-8 files (without BOM), and reading INI files encoded in UTF-16 (or in UTF-8 that mistakenly contains a BOM)?

5. Can the extension choose the filename when writing an INI file?

6. Can the extension automatically obfuscate a string that it's writing?

Developer
  1. There is no need or capacity for atomic transactions in GML since there is no multi-threading.

  2. You can use file_ini_print and then buffer_compress. See this extension for creating actual ZIP files.

  3. This extension is pure-GML on native platforms and has a JS-based version for HTML5. As you might guess, it would not cost $4 if I had to recompile native binaries for a dozen platforms and even more architectures every time I made an addition/change/fix.

  4. This extension supports files in UTF-8, optionally with BOM. GameMaker lacks native support for UTF-16, so supporting that would take toll on speed of the extension.

  5. You have full control over that, including opening an INI from one path but saving it to another - see documentation.

  6. INI files by definition are intended to be human-readable configuration files, therefore it makes no sense to add such features. Regardless, you are free to use file_ini_parse and file_ini_print if you want a pre/post processing step to encrypt/decrypt the contents.

Er, on number 5 I meant to say file extension. I'm a dumb.

Developer

You can do that with both this extension and the built-in functions - it’s very uncommon to put any kind of restriction on which file extensions can be used.