1
AGI Development Tools / WinAGI Version 3.0.0-alpha11.1
« on: January 02, 2025, 08:51:40 PM »
Happy New Year everyone!
My resolution this year is to finish a production version of WinAGI in C#/Visual Studio. To that end, here is the latest pre-production release:
https://github.com/AGKorson/WinAGI-GDS/releases/tag/v3.0.0-alpha11.1
The progress point I'm currently working on is the Defines Editor. In WinAGI VB this is used to manage defines that are considered global in scope. WinAGI VB's compiler automatically loads these defines (as well as defines for reserved variables/flags and resource ID labels) without needing to explicitly define them in logic source code or in a text file (like defines.txt) I thought that was a good idea twenty years ago, but since then I've come to realize it's not ideal. So I'm making a major design change to WinAGI C# that no longer assumes values for IDs, reserved and global defines.
In this release, I've completed that change. Now all define names must be declared and included either in the source file itself, or in a separate file to be accessed via an #include directive. WinAGI still provides automatic management of these features, but the code output will always look more complete because nothing is assumed inside the compiler regardless of how you configure your game for defines support.
There are now three new game properties, IncludeIDs, IncludeReserved and IncludeGlobals that you can use to tailor the coding experience to your own preference. Each is associated with pre-defined text file (resourceIDs.txt, reserved.txt and globals.txt) that WinAGI will automatically create and update as you make changes to your game (by adding, removing, renumbering, renaming resources, renaming reserved defines, adding, removing or renaming game-specific global defines). Logic source code is also automatically updated based on these properties to add the appropriate #include directive to every source file.
My goal is to create an experience similar to the 'using' directive in Visual Studio. It gives users the option to take advantage of WinAGI's powerful features to automatically manage naming and usage of defines (which is what WinAGI VB did) but also makes it extremely simple for those who would rather manage all game defines manually.
An added benefit of this approach is that it makes the source files much more portable. You could for example use the source code and defines files in AGI Studio without needing any modifications.
I am very interested in any opinions out there regarding this change. So please take a look at this version, and play around a bit with the auto-Include features and let me know what you think.
My resolution this year is to finish a production version of WinAGI in C#/Visual Studio. To that end, here is the latest pre-production release:
https://github.com/AGKorson/WinAGI-GDS/releases/tag/v3.0.0-alpha11.1
The progress point I'm currently working on is the Defines Editor. In WinAGI VB this is used to manage defines that are considered global in scope. WinAGI VB's compiler automatically loads these defines (as well as defines for reserved variables/flags and resource ID labels) without needing to explicitly define them in logic source code or in a text file (like defines.txt) I thought that was a good idea twenty years ago, but since then I've come to realize it's not ideal. So I'm making a major design change to WinAGI C# that no longer assumes values for IDs, reserved and global defines.
In this release, I've completed that change. Now all define names must be declared and included either in the source file itself, or in a separate file to be accessed via an #include directive. WinAGI still provides automatic management of these features, but the code output will always look more complete because nothing is assumed inside the compiler regardless of how you configure your game for defines support.
There are now three new game properties, IncludeIDs, IncludeReserved and IncludeGlobals that you can use to tailor the coding experience to your own preference. Each is associated with pre-defined text file (resourceIDs.txt, reserved.txt and globals.txt) that WinAGI will automatically create and update as you make changes to your game (by adding, removing, renumbering, renaming resources, renaming reserved defines, adding, removing or renaming game-specific global defines). Logic source code is also automatically updated based on these properties to add the appropriate #include directive to every source file.
My goal is to create an experience similar to the 'using' directive in Visual Studio. It gives users the option to take advantage of WinAGI's powerful features to automatically manage naming and usage of defines (which is what WinAGI VB did) but also makes it extremely simple for those who would rather manage all game defines manually.
An added benefit of this approach is that it makes the source files much more portable. You could for example use the source code and defines files in AGI Studio without needing any modifications.
I am very interested in any opinions out there regarding this change. So please take a look at this version, and play around a bit with the auto-Include features and let me know what you think.