It has been several weeks since I last posted comments regarding my ongoing development with the
AGKWorkbench. Well, today is a good time for an update as I am closing in on completing the last major module in the first release of this new desktop application.
The first release should be out in the next 4 to 5 weeks (or sooner). However, it will be a very raw release, given that the documentation has yet to be completed.
Currently, the application consists of 9 projects, all written in VB.NET.
I know that many people prefer the use of C# as their base language, but my code should be easily convertible since I use very common syntax without all the new bells and whistles that can now be implemented even in the VB.NET language.
In the future, I may do the conversion myself with a purchase of one of the excellent conversion tools from Tangible Software Solutions. But we will see.
Keeping with my policies of using the more mature tools of the Microsoft Development Environments, all of the projects in the application are compiled to .NET Framework Version 4.6. 4.6 is a very stable version of the original framework and has produced no issues that I have come across.
The database used is the completely free and Open Source
Firebird Database Engine, which is used with its embedded mode so that all the processes are localized to the application. The version of this database is 2.5.9 but should be easily upgraded to either the 3.x or 4.x Firebird Engines if that is what is desired.
Currently there are 100+ small stored procedures, all of which can be easily understood by anyone who has a working knowledge of the SQL language. And please be advised that working with a formal database engine, one must be knowledgeable of the SQL language as developers who would like to use this database engine for their OOBs will have to be able to write their own stored procedures to support their own data access requirements for their own games.
Nonetheless, the database design should be easily understood as it is rather straight forward in its implementation using primary tables with numerous support tables to provide enhanced flexibility for whatever data a developer would like to consider.
The database is designed to be able to store just about any OOB that a developer would like to create starting with ancients all the way up to modern implementations.
In many simulations there are only two opponents (the player as well as the AI or another Human opponent). However, for complex simulations that require multiple opponents, several of which could actually constitute a single side, the concept of the Opponent Group has been implemented so that all such opponents can be grouped within their own group. As a result, within a scenario, such opponents will have their Opponent Group representing them in addition to the singular opponents. This allows for easier database querying for multiple opponents within a given side.
The
Simulation has also now been implemented as the highest level in the system so that developers can create OOBs for multiple simulations within a single database. However, it is planned to be able to export an entire simulation's data into its own database so that manual extraction will not be required.
Once this initial database work has been completed, I will be implementing two AI routines that have already been completed and tested. These will be hexagon to hexagon distance calculation and a path-finding algorithm. A third AI technique, that of
Influence Mapping is planned for inclusion as well. However, research for this algorithm has not been completed.
Finally, the foundation of what makes the
AGKWorkbench what it is intended to be, will be a game prototyping engine that will be completely developed in
AgkSharp. I am hoping that this will allow a developer to test out the AI routines visually.
The entirety of this project will be Open Source and completely free to anyone who has an interest in using it.
For any questions or comments regarding the
AGKWorkbench, please just leave them here...
Steve Naidamast
Sr. Software Engineer