Now THAT is something we can get behind! A public test suite sounds like a great project, as does a community library... something that everyone can help out on...
I'm most interested in the community standard library.
The current Marketplace is filled with extensions that people still ask questions about but can't rely on community support with. Here are some common problems and obstacles:
- The extension is behind a pay wall
- The extension is from a different vendor than the one the responder is used to
- The extension employs poor development and deployment practices, such as having a dirty import (i.e. example code mixed with framework code), poor scope hygiene (e.g. declaring temporary variables in instance scope) or inconsistent style. This makes it more likely for the extension to conflict with other extensions, even if unrelated in functionality.
- The extension is supported by a sole publisher and it goes lights-out with nobody left to answer questions about it
At the same time, GML suffers from a lack of standard library functions that any other industry-standard language would take for-granted, and those needs are often still not served by the Marketplace. This is what the GMC can and should help address.
If it goes forward, here are some ideas that I would like to see realized by the end of 2018:
- Extended string/real functions
- Extended path-finding and other graph/tree algorithms
- Array-based data structures that support deep cloning and unified serialization
- Standards-compliant format parsing (JSON, XML, YAML, etc.)
- Linear algebra, matrix and vector math (i.e. "Numpy for GML")
- Basic industry-standard cryptography (HMAC, SHA-2/SHA-3, AES Rijndael, etc.)
- Responsive UI framework (grid system and UI elements)
- Cross-platform native text rendering, text with embedded styles
- A backport of MPlay or some other networking library that works across HTML5/native
- Virtual file system interface (for handling non-Sandbox or user-selected files/directories across exports)
What is this?
It sounds very interesting!
Well i think its something like Unit testing.
But frosty already made an excelent test suite. (Though, i would argue it woul benefit from a few more modern GM features, and some reflection, since we dont have annotations.)
I'm not talking about a unit-testing framework, I've handled that already and it's open-source. Though I'll happily rewrite it to suit a community coding standard and incorporate it into a "GMC standard library" if given the chance.
I'm talking about a public, comprehensive test suite for operators and functions in the latest version of GMS 2.x, with cases written by the general user base. Unexpected reappearances of serious bugs in basic functionality have been a persistent problem throughout 1.x's timeline. Not everyone benefits from a community game, but everyone benefits from a more stable GMS 2.x that has been tested against the test suite.
There had been rumours of an internal test suite called "GMDeath" on Mantis, so I'd hold on the idea until a staff confirms or denies it. If it exists, the GML portion of it could become open-source and serve as the first community project. We should know what GML operators and functions have been tested against, be able to present automated counterexamples when a bug arises, and have a degree of reassurance against unexpected regressions.
Ooohhh. I know just the community project to work on: a serialization framework! Or perhaps something akin to a bean, but for GM.
I'd love to see that happen as well, but I think it should wait until classes and non-ID-based buffers/data structures become a reality. A serialization framework done now would either need to rely on a schema or flaky array-based type markers, only to be rendered obsolete by the roadmap.