Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Windows / Database for Military Simulations...

Author
Message
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 18th Mar 2023 18:20
Hello All...

I am in the process of developing the last 2 modules for an entire database system that will support the creation of opponent hierarchies for military simulations or what are more commonly known as "war games"...

The interface provides for adding in data for all required entities in such applications as well as bringing all that data together in officer hierarchies and unit assignments.

The database engine is currently the Open Source Firebird Database Engine (version 2.59) and is accessed through approximately 100+ stored procedures and the standard ADO.NET provider as developed by the Firebird Development Team.

Once I release the project, which will be freely available as Open Source, I will be more than happy to assist anyone interested in using it as documentation will take a while to develop given the complexities involved.

Military Simulation development is the most difficult form of programming one can engage in outside of the AI and Robotics Communities. Providing database support for such development appears to be rather lacking in the industry in general, or at least promoted for those wanting to develop in such
a genre.

My development aims to provide the most flexible database support for any type of military simulation one can develop. The project will also provide additional modules such as distance calculations between two hexagons on a map-board as well as basic path-finding between a starting hexagon and an ending hexagon. I also hope to add basic influence mapping algorithms to allow for a foundation for AI player decision making capabilities.

Eventually, when enough data support has been implemented, I hope to also add a testing module for visualizing hexagonal maps, which I am hopeful will become the basis for my first military simulation, something I have always wanted develop.

All of the graphics that will be implemented will be using the AGKSharp Toolkit, this thhename for the project, the "AGK_Workbench".

Like many developers here, my language of preference has always been BASIC, though I have gained fluency in over 12 different languages over my many years in the profession. As a result, the entire project is written in VB.NET.

If you have any questions or comments, please let me know here. I will be more than happy to explain whatever particulars you would like to discuss or ask questions about.

Steve Naidamast
Sr. Software Engineer
MadBit
VIP Member
Gold Codemaster
14
Years of Service
User Offline
Joined: 25th Jun 2009
Location: Germany
Posted: 19th Mar 2023 11:06
Hello, that sounds interesting.
Would it be possible to create something like the UMS back then on the Amiga with your - I'll just call it 'Universal Military Engine'?

Share your knowledge. It\'s a way to achieve immortality. (Tenzin Gyatso)

Donations are always welcome.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 21st Mar 2023 14:46
Hi MadBit...

I apologize for the delay in my response. I have been very busy cleaning up my home-office, which has become a terrible mess with all my military history books lying about...

In regard to your question, I am not sure what you are asking.

However, currently the project is will support all of the back-end processes required by a military simulation. Nonetheless, I have plans to add additional components to round out what the project will hopefully become, a complete testing toolkit for those who want to get into such development, as well as a basis for my own game development.

That said, you should be able to build any military hierarchy with the project that you like providing you with a complete user-defined OOB (Order of Battle) for each individual opponent.

As it regards "opponents" the project denotes a difference between "opponents" and "opponent groups". This allows for easier management of all types of opponents. Thus, for a simulation that would have only two opponents in conflict, one would need only to define two opponent OOBs/hierarchies. However, if one were to design a simulation such as "Waterloo" whereby the Allied side would have several opponents fighting against the French, one would define an "Opponent Group", which would have all of the Allied opponents defined underneath it, each with their own defined OOBs/hierarchies.

I hope this answers your question. If not, please clarify what exactly you would like to know...

Steve Naidamast
Sr. Software Engineer
MadBit
VIP Member
Gold Codemaster
14
Years of Service
User Offline
Joined: 25th Jun 2009
Location: Germany
Posted: 21st Mar 2023 20:33
Does your project relate only to the military hierarchy?
So that there are two or more groups.
These belong to different factions and thus form a certain attack strength and defense in certain characteristics.
Thus a suitable strategy for warfare can be defined.

Or the units within this hierarchy can also be defined.
Such as movement range, attack range, attack strength, defense against certain types of attack, air-ground-water unit, morale of the unit, etc.
So that the strategy/tactics take place directly on the battlefield for example tank division 'A' attacks dug-in infantry 'B'.
Your engine would then calculate the losses of both units, taking into account unit characteristics and topography and perhaps weather conditions.

I hope I haven't expressed myself in too complicated a way.
Share your knowledge. It\'s a way to achieve immortality. (Tenzin Gyatso)

Donations are always welcome.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 21st Mar 2023 23:48
Hi MadBit....

A military hierarchy or Order of Battle (OOB) is primarily based upon the officer rankings in any opponent's officer cadre.

Thus, my project sets up its hierarchies in the following manner so that both officers and combat units can be placed in a specific hierarchy.

Simulation
|_ Scenario (multiple scenarios can be defined)
|_ Opponent Group (multiple groups can be defined)
|_ Opponent (multiple opponents can be defined)
|_ Opponent (an opponent defined outside a group means that only one specific Opponent may fight an Opponent Group or another Opponent
|_ Service Type (allows member officers and units to be categorized by their service type (ie: Army, Navy)
|_ Equipment Type (allows units to be assigned specific types of equipment (ie: artillery)
|_ Unit Officer (allows for a hierarchy for up to 10 officer rankings - can be any type of officer from an NCO to a general / as many service type hierarchies as needed can be defined for any one Opponent within a Scenario / See image below)
|_ Unit (allows for as many units to be defined as required to any part of a officer hierarchy)



Once at least two Opponents have been defined with their officers and units within a scenario, developer would now have the ability to return that data at any point for the game engine either for the AI Opponent or the Human Player.

The data itself would not define tactics or strategies but allow those processes to incorporate such data.

From what I have seen from the military simulations I have played, mots of the data is stored in text files. This allows for corruption by a user and if playing against a Human opponent allows for cheating.

The defined units in a hierarchy usually sit at the bottom of any officer hierarchy but not necessarily and my software allows for placing units at any level if that is what is required.

Officer data provides for movement and cohesion (morale) modifiers while unit data provides for all data that a combat unit would normally have... Movement, strength, fatigue, and the like...

Both officer and unit data contain a field for the actual hexagonal map positions in "XXX-YYY" format, which allows for 999 X-coordinates and 999 Y-coordinates (total hexagons = 999 x 999).

If you would like, I could send you the entire project in its current form. However, I am in the middle of testing of the Officer Units hierarchies and all the code for this part is not completed. I haven't even gotten to the Unit Data yet.

Nonetheless, as you go through the application's interface, it will give you an idea as to how all this data is being built.

I hope I have answered your questions. If not, please ask me to clarify any part of my answer...

Steve Naidamast
Sr. Software Engineer
MadBit
VIP Member
Gold Codemaster
14
Years of Service
User Offline
Joined: 25th Jun 2009
Location: Germany
Posted: 22nd Mar 2023 19:56
Ok, now I have a rough idea of what it will be.
I will definitely be curious.

I saw in your screenshot that you have an 'AI Process' tab.
Will that only be aimed at wayfinding on a hex grid?
Or are there other things planned as well?
Share your knowledge. It\'s a way to achieve immortality. (Tenzin Gyatso)

Donations are always welcome.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 23rd Mar 2023 16:02
Hi MadBit...

The AI tab in my application will have more than just a distance calculation and a path-finding algorithm. At least that is my hope.

The two mentioned algorithms have already been developed and tested successfully.

My next AI component will be that of "influence mapping", which is used as a basis for many such simulations as a basis for AI decision-making processes.

I also plan to use your AKGSharp software to provide the graphics part of the application so one can see the AI actually work.

As I build up these components, it will provide me with the basis for the development of my own simulation, which right now I am looking at the famed "Battle at Zama" as a starting point.

I have the current "officer" module to complete and test and then the "unit" module to develop. Once these two modules have been completed, I will release the project and its source code.

In the beginning however, the documentation will be somewhat sparse due to the complexities involved in writing it. But I will write it.

Steve Naidamast
Sr. Software Engineer
MadBit
VIP Member
Gold Codemaster
14
Years of Service
User Offline
Joined: 25th Jun 2009
Location: Germany
Posted: 24th Mar 2023 07:40
I am still curious and looking forward to its publication.
Share your knowledge. It\'s a way to achieve immortality. (Tenzin Gyatso)

Donations are always welcome.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 24th Mar 2023 18:28
Hi MadBit...

I am working as fast as I can but some of the code is quite complex...

Steve Naidamast
Sr. Software Engineer

snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 6th Apr 2023 22:08 Edited at: 6th Apr 2023 22:34
Hi MadBit...

I have gotten a lot done in the past few weeks.

I am completing the second to last module for the first project release, which leaves me only one more. This last module should go rather quickly since most of the hierarchical processing is related to the "officer units" module, which is the one I am currently finishing up.

I will provide some notes on the project when I do finally release it, since the documentation will take a while to put together due to the complexities involved.

Once you get a chance to review the work maybe then you may find an interesting use for it with your own endeavors...

Steve Naidamast
Sr. Software Engineer
MadBit
VIP Member
Gold Codemaster
14
Years of Service
User Offline
Joined: 25th Jun 2009
Location: Germany
Posted: 7th Apr 2023 10:54
Glad to hear you are making progress.

I'm looking forward to the results.

Don't let yourself get under pressure and take your time.
I think quality is more important than quantity
Share your knowledge. It\'s a way to achieve immortality. (Tenzin Gyatso)

Donations are always welcome.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 8th Apr 2023 16:21
I have begun some of the documentation for a first release.

As to the quality of my work, I don't let it out the door until I feel that the software is working to my standards.

Professionally, my work has always stood the tests of time and large usage...

Currently, most of the work is now simply copying and modifying code for the database processes and this code has already been well tested...



fubarpk
Retired Moderator
19
Years of Service
User Offline
Joined: 11th Jan 2005
Playing: AGK is my friend
Posted: 11th Apr 2023 00:45
Im also curious and looking forward to see what you come up with
fubarpk
https://fubarpk.itch.io/
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 11th Apr 2023 16:21 Edited at: 11th Apr 2023 16:43
Work is progressing nicely for a first release.

The Unit Officer hierarchy module is basically completed with only the transactional delete of all subordinated officers and units to be completed (based upon an officer in the hierarchy selected fro deletion).

Once completed, that leaves only the Unit module for completion. This is where the bulk of the data will be stored in terms of actual data for game play.

Here is the current definition for the Unit table...

CREATE TABLE UNITS (
U_KEY INTEGER NOT NULL,
U_NAME VARCHAR(50) NOT NULL,
U_UNIT_TYPE_KEY INTEGER NOT NULL,
U_OPPONENT_KEY INTEGER,
U_OFFICER_REPORT_TO_KEY INTEGER,
U_UNIT_EQUIPMENT_KEY INTEGER NOT NULL,
U_UNIT_STATUS_KEY INTEGER,
U_UNIT_QUALITY_RATING INTEGER NOT NULL,
U_UNIT_TROOP_COUNT INTEGER NOT NULL,
U_UNIT_ARTILLERY_COUNT INTEGER,
U_UNIT_MAX_MOVEMENT INTEGER NOT NULL,
U_UNIT_OFF_FIRE_STRENGTH INTEGER NOT NULL,
U_UNIT_DEF_FIRE_STRENGTH INTEGER NOT NULL,
U_UNIT_SUPPLY_SUPPORT INTEGER NOT NULL,
U_UNIT_SUPPLY_MUNITIONS INTEGER NOT NULL,
U_UNIT_QUALITY INTEGER NOT NULL,
U_UNIT_COHESION INTEGER NOT NULL,
U_UNIT_FATIGUE INTEGER NOT NULL,
U_UNIT_XY_HEXAGON_POSITION VARCHAR(7));

It should be noted that all table definitions are subject to modification as other components are added and\or design requirements change as development advances.

Currently, I have completed close to 100 easy to understand stored-procedures, which keeps all of the data access code much cleaner than if it were all done inline.

Advanced operations such as the development of working Unit Officer and Unit tables has yet to be applied as this will be needed once a scenario is initiated for play.

Another advanced operation will be the implementation of database creation on a per simulation-basis. Thus, the primary database will be used for all simulation definitions but when being applied to a single simulation for testing or production deployment only a specific simulation's data
will be required thus needing the ability to export selected simulation data into a new and separate database.

For those who are interested in such development and want to learn the SQL Database Language, since the SQL being used is for the most part very straight forward, I recommend the following tutorial site for studying this language... https://www.w3schools.com/sql/default.asp

The entire project will be freely available as Open Source under the generous MIT license.

My hope is that this work will provide incentive for Game Creator Developers using the AGKSharp interface\API to consider entering the area of simulation development. And given that the AppGameKit development is done in Dark Basic, my project is completely written in the .NET VB.NET language will make any transitioning to .NET Framework easier.

For those who prefer to work in C#, using a good conversion tool (I recommend Tangible Software Solutions tools at... https://www.tangiblesoftwaresolutions.com/) will allow for efficient conversion of all the code since I maintain a KISS paradigm to my coding standards. This means that my code is still based upon the original constructs of the .NET languages and does not include any of the newer features that the C# language has introduced. This also allows for easier understanding of the code base.

If there are any questions on my design and implementation, or even the use of .NET and Visual Studio, please don't hesitate to ask.

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 23rd Apr 2023 17:12
This is an update on the ongoing development of the AGKWorkbench, which is the name of the application that I am currently working on. As noted previously, the first phase of this work is to implement a localized database that is being designed to be as flexible as possible to support the requirements of a majority of military simulations that one may envision.

Currently, there are only two modules left to complete. This is one more than I have reported in the past updates top this thread. However, with the research required for the UNITS module, I found that a unit quality rating table would be more beneficial than simply incorporating such a rating within the unit record itself. This will allow developers to design their own rating systems thus, allowing for greater flexibility within this area of the data. This will have to be implemented into the UNIT-OFFICERS table as well.

An additional delay with the UNITS module has been the necessary research required to make the underlying table capable of supporting certain aspects of a game AI engine such "Influence Mapping", which is a new algorithm I have been working on in order to understand how one would not only work within such simulations but also how to incorporate the necessary information to support it within the existing data structures.

Work on the remaining modules should begin this week.

If you have any questions or comments, please leave them here and I will respond as soon as I am able.

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 30th May 2023 15:25
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
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 8th Jun 2023 18:31
I just want to let everyone know who are following this thread that the first phase of the AGKWorkbench has been completed.

I am currently writing documentation that would suffice for an initial release. However, this first release will be rather raw. There is a lot of code in this application, making it a somewhat complex one. However, the patterns of the implemented design (not formal design patterns but they way I implement source code) will become rather evident to any experienced developer.

In any event, I am also going to go through the entire source base to clean up any inconsistencies in terms of my own coding standards, which have been quite successful over many years of development.

I hope to have this first release out the door in the next 2 weeks. So, please check back for the upcoming release announcements...

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 30th Jun 2023 22:57
As I had mentioned in my last update, the coding for the first phase of the AGKWorkbench has been completed.  In the interim, clean-up and corrections have been also completed. 


Again, it should be noted that this first release is a rather raw one.  As a result, I expect those developers who are interested in using the project for their own work will have many suggestions and criticisms.  A number of expected criticisms have already been addressed in the Release Notes for the project's documentation.


The first-phase documentation has also been completed with only a few touch-ups to the Firebird SQL Helper data access layer documentation remaining.


Work has now commenced for the creation of the distribution package, which should be ready for release some time in the coming week.


Please also note that developers who need assistance in understanding database, or in particular, the Firebird Database Engine, as well as coding SQL for their own needs may contact the Black Falcon Software website (http://www.blackfalconsoftware.com) through the site's Contact Page for support or simply leave your questions in this thread.

Thank you all of you who have been waiting for this release for your patience...

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 4th Jul 2023 19:05
The AGKWorkbench has finally been released.

The project has been a tremendous effort over the last 5 or 6 months. And the more I designed and implemented the features, the more I found that needed to be considered and eventually implemented as well.

For those who have been waiting for this release, I thank you and appreciate your patience. I hope you find my work worth this wait.

You may download the package in zip-file format from the following link... https://blackfalconsoftware.com/agkworkbench/

Please review the included ReadMe File so that you know where to find both of the included HELP files, the project source, and the solution (.sln) file.

This package is completely free and Open Source.

If anyone requires any assistance with any part of the system or the database aspects of the current release, please don't hesitate to contact me through the Contact form of my website or directly at the following email address... blackfalconsoftware@outlook.com

Steve Naidamast
Sr. Software Engineer
MadBit
VIP Member
Gold Codemaster
14
Years of Service
User Offline
Joined: 25th Jun 2009
Location: Germany
Posted: 9th Jul 2023 19:34
Wow, this is really a very complex project.
You really need some time to get to grips with it.
I think a little tutorial on how to start building the database and how to use it later would be helpful.
Or is that also described in the documentation?
I only had a quick look.
Share your knowledge. It\'s a way to achieve immortality. (Tenzin Gyatso)

Donations are always welcome.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 9th Jul 2023 22:15
Hi MadBit...

There are two HELP files included with this initial release.

You do not have to do anything directly with the database. All data additions, modifications, and deletions are done through the interface.

You create the data hierarchies by starting at the top of the "Data Administration" drop-down options and simply work yourself down to the last option, which should be the "Units" option.

The system will let you know if you need to add prior data before working with an option.

However, you are correct in that I should offer a more descriptive explanation in the HELP file for the AGKWorkbench as it regards actually building the hierarchies. I do intend to write an instructive article on using this first release with the database portion of this system.

This HELP file also lists issues that have yet to be rectified and\or included in the system, which I intend to get to but right now I need a break from this coding. In this interim I am going to be studying the implementation of "influence mapping" so I can add this type of algorithm into the AI section of this system, which will be the 3rd such algorithm to be added. The first is a distance calculation between hexagons on a map-board, which uses the Manhattan Distance formula as its basis. The second algorithm is a database-based path-finding algorithm, which uses a standard technique for determining paths between two hexagons on a map-board. This second algorithm does not have blocked-hexagons as part of its implementation. This latter will have to be added later as I develop more of the decision-making algorithms such as the "influence mapping".

The goal of this project is to develop as many support processes as is necessary to allow me to eventually build out a basic military simulation from it.

I am hoping others will try out the project as well for their own military simulation endeavors.

If you have specific questions about the project or need help with SQL coding for your own queries, please don't hesitate to ask....

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 25th Jul 2023 20:14 Edited at: 25th Jul 2023 20:17
Just a small update here...

I have begun work on the necessary cascaded delete processes.

This will allow developers to delete all of the associated data for the delete level that is selected. For example, if a developer decides to delete a simulation record, all data associated with the selected simulation record will be deleted. This means that all scenarios, opponent groups, opponents, unit officers, and unit data.

Please leave any comments, suggestions, or questions on this thread...

Steve Naidamast
Sr. Software Engineer

snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 8th Aug 2023 16:30
Another update on developments for the AGKWorkbench...

I have nearly completed the work for the cascaded deletes of the hierarchies inherent in the AGKWorkbench.

This work required a number of updates to the database engine, which will now have to be implemented into the application with an easy-to-use interface for developers reviewing this software. This additional interface work will make it very easy for developers to simply update the database based upon an interface option.

However, in doing this work, I came across a major issue with the Equipment Editor, which if selected in the interface,will not insert or update properly. This is because of an additional field to the EQUIPMENT table that was not accounted for in the processing.

This work has just been completed and is in testing for the integrity of the processes.

I am hoping to get these updates out to the field in the next several weeks.

Until then, if anyone has any issues with running the processes in this application, please contact me at my email address... blackfalconsoftware@outlook.com

Thank you...

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 11th Aug 2023 22:31
Work continues on refining the AGKWorkbench, which will hopefully see a new, updated release in several weeks.

Numerous interface modifications have been made to those aspects of the interface that were either found to be not functioning properly or providing idiosyncratic behavior. However, the largest amount of work has gone into implementing cascaded deletes, which allows for clearing out of all data associated within any specific level of the overall hierarchy of data. For example, if one deletes a simulation record, than all scenarios, opponent groups, opponents, unit officers, and unit data related to this simulation would all be deleted.

This implementation also includes quite a number of the modifications to the database so that numerous new stored procedures and table updates have been developed to support it.

The last piece of work that needs to be completed is an easy to use interface option that will allow a developer to easily update the database without having to do any work with all of the SQL code involved.

Please leave any comments, suggestions, or questions regarding the AGKWorkbench in this thread or use my site’s Contact Form at http://www.blackfalconsoftware.com

Steve Naidamast
Sr. Software Engineer
Resourceful
10
Years of Service
User Offline
Joined: 29th Jan 2014
Location: every ware
Posted: 25th Aug 2023 06:03
@snaidamast

sound interesting
But since I am just understand some parts of AGK2 Tire 1 level
I would need to that in that coding level .

c or c++ is not what I know how to do
and installing c or c++ take way to long
to download and and lots of space to get running

I look forward to seeing what you have
even if I can't use what your providing I can still
work out some thing for my own use in some kind of frame work.
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 28th Aug 2023 17:11
Hi Resourceful...

Thank you for your comments.

You do not need to install C\C++ to work with The Game Creators graphics engine, unless that is what you want to do.

You may use C# or VB.NET with MadBit's, "AGKSharp" SDK. Here is the link for the freely available download... https://madbit.itch.io/agksharp

One of the beauties of using this interface is that you also have access to all of the Windows Forms controls that can interact with the graphics display. Using this does restrict you to the Windows environment, but if this is how you want to develop your projects then you will have a lot of flexibility without the need for using a third-party interface tool.

I am in the last phase of development for a new release of the project, which will correct a lot of the issues that I cam across while adding additional features to the work.

If you have any questions or need help with working with SQL, please let me know. I will be happy to help you with anything related to this project or the SQL database interface.

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 12th Sep 2023 16:13
Just an update on the progress for my AGKWorkbench...

Practically all of the update work has been now completed, which should eliminate any of the issues people who have downloaded the first version may have encountered.

Developing the internal, database, update functionality in order to make it seamless through a single menu option took a bit of testing to get right. The Firebird Database Engine is a very strict SQL implementation. As a result, it is one of the more difficult engines to work with. However, it is also the only full-featured embedded SQL database engine on the market currently (SQLite does not support stored procedures or other such database objects) that is completely free to use.

If anyone has been having any difficulties with it and requires some assistance, please post your questions here or send me an email at blackfalconsoftware@outlook.com ...

I am currently completing the final touches on this upcoming release, leaving me with only the updates to the HELP File when they have been completed. As a result, the next release should be out in about 10 days or so.

A few additional notes I believe I should mention. Needing a break from the work on the AGKWorkbench, I have been also researching the additional features that I want to implement. As I have mentioned, a hexagonal distance calculation has been completed and successfully tested, which is based on a standard Manhattan Distance algorithm. Also, a generic Path-Finding algorithm has also been completed and successfully tested, which is based on database lookup allowing for the freeing up of a large amount of memory. Eventually, this algorithm will be offered in an additional form, which includes terrain handling as well as unit placements on a map board.

However, the next feature being researched for inclusion is an "Influence Map", which is a necessary part for eventual AI decision-making processes.

More recently, I have also been reviewing techniques for creating hexagonal map displays. The biggest issue here, in addition to an accurate rendering algorithm, is the requirement to have the necessary terrain data within any such rendering. The easiest way to obtain such data is to develop a basic display using the excellent Tiled Map Editor, which fully supports the development of Hexagonal Map Development while supporting the TMX graphics file format. This file, along with the corresponding TSX image file provides all of the necessary data to understand terrain types used in each hexagonal tile. Basic code has to be developed to access the terrain data but I have already completed some of the prototype code, which provides all of the hexagon ids that will be used to specify the exact terrain type for any one tile.

For those who are interested in reviewing the Tiled Map Editor, please see the following link... https://www.mapeditor.org/ This software is completely free of charge. However, if you plan to use it for your projects may I suggest that you provide the author with a donation so that he may continue developing this excellent tool.

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 19th Sep 2023 16:14
The latest edition of the AGKWorkbench has now been posted for downloading.

To download this new package, please go to the following link... https://blackfalconsoftware.com/agkworkbench/

For those that have reviewed the first release of this product, please know that all of the issues that may have been encountered should now have been rectified, making the entire product a more refined one.

If you have existing data that you have already added into the database file (AGK_WORKBENCH.FDB), and you would like to maintain this data, then save the existing database file to another directory before overwriting the project files in your working directory.

Once completed, you may then copy all of the downloaded project files in the ZIP package to your working directory. Once this task has been completed, copy your saved database back into the "Debug\bin" directory of the actual AGKWorkbench project.

Upon the first execution of the application, a set of database updates will be run without user intervention. Upon successful completion, you will be notified of this.

All subsequent executions of the application will no longer run the database updates.

If you have any questions, comments, or criticisms, don't be shy, and please post them here or use the Contact page at my website... https://blackfalconsoftware.com/

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 26th Sep 2023 19:43
While starting to flesh out the AGKWorkbench's AI implementations, I noticed a number of application interface idiosyncrasies, including a few that had their back-end stored procedure names not updated to the correct names in the corresponding data access methods.

As a result, I am about halfway through a minor update to the entire project, which will be released sometime next week.

If anyone has any questions regarding this upcoming update or wants so assistance in resolving such an issue on their own, please drop me a line here or contact me directly at blackfalconsoftware@outlook.com

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 7th Oct 2023 22:17
A new, third release of the AGKWorkbench is now available.

This release corrects a number of issues that arose during the implementation of actual data that is to support the eventual development of my first planned military simulation.

You may download this latest version of the software from the following link... https://blackfalconsoftware.com/agkworkbench/

If you have downloaded a previous release or intend to download this latest release, it would be very much appreciated to hear comments regarding the use of this software. Without those, I cannot correct or refine those areas that have come to the attention of users in the field that I may have missed in my own testing. This is a rather complex piece of software and will only get increasingly more complex as additional features are implemented and user comments are vital to the quality of the product.

To provide your comments, please drop me a line here or contact me directly at blackfalconsoftware@outlook.com

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 16th Oct 2023 23:37
With this last release of the AGKWorkbench out the door, I had wanted to begin work on a third AI routine, which would have been Influence Map development.

I had begun doing the research on this aspect of Game AI but had to put it aside until I had completed this last release of the project.

Nonetheless, with this type of AI implementation I actually requires an interface to go along with it so I can see what I am yielding in terms of the algorithm itself.

As I result, I have to take several steps backward and begin work on some of the graphics support that the AGKWorkbench was always intended to have.

This will mean that planned additions to the database side of things will have to wait for a little while until I can make some headway on this aspect of both the graphics and the AI implementations (TGC Graphics Engine here we come... ).

Until then, if you are currently working with the AGKWorkbench and come across any issues with the database processes, please let me know here or at my email... blackfalconsoftware@outlook.com

If you can provide a good description of what you are dealing with, I will implement a correction to the existing project for you.

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 19th Oct 2023 18:22
This post is just some notes regarding the coding style used in the AGKWorkbench Project...

The first question that most likely arises, especially from younger developers, is why the use of VB.NET instead of C#. This is a very legitimate question given the emphasis on C# by Microsoft and its decision to discontinue its evolutionary development support for VB.NET.

Yet, the simple answer is that I prefer the syntax of VB.NET to the curly-braces and semi-colons of C#. Though I am just as fluent in C# as I am in VB.NET, the primary reason for using VB.NET is simply personal preference. This preference developed over the years of my professional development career using a variety of the DBASE Languages in the 1990s. In those years, these 4th generation languages were very popular and were also the best way to develop database applications at the time.

With the introduction of Visual Basic in 1991, many of us slowly moved to this platform for such development as the SQL server database engines grew in popularity. Once .NET was commercially available in 2001, it was again the Visual Basic Language in the form of VB.NET that was emphasized. The C# language was initially developed to attract developers from the popular Java platform, which it eventually did.

In the past decade or so, as newer and younger developers entered the field, many preferred the newer C# language along with the rickety JavaScript language for web development. As to the latter, in reality, the VBScript language has always been far superior to the JavaScript language as it was far easier to learn given the adaptation of the earlier Visual Basic and was even superior to JavaScript in terms of capabilities since it had been the basis for Classic ASP web development. However, Microsoft, in their constant attempts to maintain their dominance in the software development environments refused to Open Source VBScript when it was to the company's advantage. JavaScript, which had been Open Sourced early on simply won out with developers in terms of its usage. And the rest is history.

Nonetheless, to this day, JavaScript is seen by many professionals as an aberrant, cranky language that has been patched to death to provide it with the features developers wanted over time for their web development projects. As of the last reports on this process, the older, more useless aspects of JavaScript, as far as I know, have yet to be removed from the language's base, which would make it more efficient than it is.

Microsoft's discontinuation of evolutionary development of VB.NET is another advantage to its use. This is because, Microsoft has been continuously adding what more than a few professionals have seen as nothing but "fluff" attributes to the C# language adding more syntactical complexity than is necessary over the course of its evolution. As a result, today, one can see technical articles with C# syntax that looks as arcane as it is ambiguous. VB.NET's verbosity has avoided a good part of this detrimental aspect to the evolving C# language, making VB.NET an easier selection for APPGameKit developers who are interested in moving to the .NET Platform and the AgkSharp SDK for their development endeavors.

In addition, game developers cannot afford the constant technical churning that is common in the business, enterprise environments. Simply put, no one would ever get a game developed if they did. So staying with a mature language and even the more mature original .NET Frameworks makes a lot more sense for having a stable development environment than that found in many business development environments today.

This doesn't mean that one should avoid the newer technologies. However, the reality is that neither C# or the .NET Core Frameworks are finished products. C# is still seeing features added to it, most in my view, that are good for specific purposes but not general development while the .NET Core Frameworks appear to still be in unfinished phases while leaving out much of what made the original frameworks so powerful. A lot of this is the result of stupid management decisions by Microsoft's management and has little to do with actual development capabilities of either.

For example, using the newer Visual Studio 2022 for most general development and even game development provides little to no advantage over Visual Studio 2019 aside from access to the most recent language and framework updates. Other than that, if you are contemplating the use of MadBit's AgkSharp SDK, you will find that using VS 2022 instead of VS2019 will yield little in terms of actual development advantage. You will still be required to perform the same development tasks with .NET Framework 4.6 for example, as with .NET Core 7.0.

My own coding style, I imagine, will be seen in some cases as inefficient and downright old. However, this style provided for many years of production applications that rarely if ever provided issues to maintenance technical teams and others who were required to update my code. I have never had an application "blow up" during production processing as a result. And compared to the increasingly atrocious web development we are seeing in the public spaces today, my style of code as well those styles used by my colleagues at the time never would have yielded the bug-ridden public Internet systems many of us are encountering in our daily lives.

This doesn't mean that I am not aware of where a number of these inefficiencies appear. For example where I insert\update the database records in the actual AGKWorkbench Project (the master project in the solution) could surely use a review of its efficiency but for now the code works well as it is and has provided no issues in terms of data errors.

The Firebird Database Engine also has the capability of using an "INSERT OR UPDATE" statement within its stored procedures that allows you to have a single stored procedure for both tasks. However, for the many years that I have programmed for SQL database engines, the use of these SQL tasks as individual stored procedures has simply become second nature to me, so that is how I have programmed them.

The Firebird Database Engine today has moved way beyond the version 2.5.9 that I and quite a few Firebird developers are still using. The engine is currently in 5.x version development and at some point I have every intention of upgrading this aspect of the project to the latest stable version of this database before it goes out of support completely. However, this will entail a lot of development effort to make such an upgraded implementation seamless to you the user.

I could tell those who may be interested in doing this manually how to go about it but I believe your time would be better served to wait until the project itself has been upgraded successfully. And if we were all in a business environment here, the chances that this would have already been accomplished would be quite high. However, we aren't in that type of environment with the game development genre. And as I said earlier in these notes, if we were, most of us would be taking many steps backwards simply to go forward.

With all of this said, I welcome any and all suggestions to this project. And don't be afraid to point out inefficient areas in it. If any of you have better suggestions for such areas or just questions, please post them here or send me an email at blackfalconsoftware@outlook.com

Until next time, stay well...

Steve Naidamast
Sr. Software Engineer






snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 10th Nov 2023 17:34 Edited at: 10th Nov 2023 17:43
This is just a note to let everyone know that the AGKWorkbench is in the process of having a number of major updates being applied to it.

This will include the following types of updates...

<<<
...
Code clean-up in the WPF Pages to make the code more readable. My original style of coding, given the complexity that it is dealing with, is being modified to be cleaner.

...
Since the AppGameKit Engine does not support sprite creation from byte arrays that can be stored in a database table, the "Country Editor" is being modified to store
country flag image files in their own sub-directory. This will follow into the storage of other images that will be necessary to the overall project

...
Work has commenced on the next section of this project, which is that of the actual graphics sub-system for the hexagonal style map-board that is the common feature of
so many military simulations. The first editor has been completed, which is the "Hexagon Map Editor". This editor provides map heading information as well as the storage of
both a map's TMX and TSX files, which will be used to generate a hexagonal map. All such files are being generated from the popular mapping utility, Tiled. All of the
code for the necessary parsing of these files will easily demonstrate how this will be done, which includes the development of actual terrain data for the system. As a result of
the inclusion of Tiled file output, a new project will be added to the AGKWorkbench that will provide all the internals for all the necessary parsing processes. This new project,
called, TiledVB, is a direct conversion from the popular Open Source project, TiledCS.
>>>

Please also note that a new ADO.NET Provider has been released from Jiří Činčura, who provides the standard ADO.NET Provider for the Firebird Database Engine. As a result, I may also be involved in upgrading
my Firebird Data Access Layers to accommodate this latest ADO.NET update since my data access layers for Firebird are also listed on the FirebirdSql.org site under their .NET Provider/Additional Tools section.

The result of all this work means that the next update for the AGKWorkbench may be a while and at this point I have no target date in mind.

However, if anyone has any questions, comments, criticisms, or suggestions, please let me know here or email me directly at blackfalconsoftware@outlook.com

Steve Naidamast
Sr. Software Engineer
snaidamast
5
Years of Service
User Offline
Joined: 16th Oct 2018
Location:
Posted: 12th Jan 2024 19:40
The following notes describe the items that will be within the next release of the AGKWorkbench...

The development for the 4th release of the AGKWorkbench has nearly been completed. With one form left to complete and test along with the updates to the HELP File, a target date for this next release could be coming in the next 3 to 4 weeks.

A new set of features will be released with this latest release that entail the following items…

Several new tables and forms have been added to the database and the system, which provide for the initial processes of working with hexagonal based maps. This includes the creation of map header records, which also include data entries for data paths to the Tiled Map Editor’s TMX and TSX files. Each map
header record refers to a single scenario within a selected simulation.

The creation of hexagon node data based upon the use of the entered TMX and TSX file data. Such node data is then used to support all processes relating to actual map nodes\tiles map coordinates in a displayed map. For example, this data will be used for pathfinding processes.

The creation of map tile types allows for the general specification of terrain types and how they can affect movement and defensive fire from units in such tiles\hexagons.

Finally, there is a form that allows for the uploading of specific tiles into the system’s map tiles folder that is based also on the Tiled TMX and TSX filed.

Several maintenance tasks will also been have completed…

One database issue that will be corrected in this new release is the database update scripts for the previous, second release of this system. This will be done in case a developer finds he needs to run this set of updates again. Currently, there is a minor error with the scripts that will not show up during the
actual update process but it was thought best to eliminate the issue so that the scripts run without errors at all.

A bit of the code in the pages and windows will be made cleaner to make it more readable.New additions to the HELP File, other than the information to support the new forms noted above, will also include instructions on how to rerun database updates along with information on the use of the very popular
Tiled Map Editor software tool, which this system relies on for the creation of all hexagonal maps.

As a result of the use of the Tiled Map Editor, a complete library of 72×72 hexagonal tiles will be included in this new release. This tile library, which has been created by the developer at https://ratbyteboss.itch.io/hex-tile-assets, contains just about any tile type one would require to create a military simulation.
Surprisingly, the only tile type missing is the one for roads. However, the river tiles should be able to be easily converted for such terrain.

If anyone has been having any difficulties with this application and requires some assistance, please send me an email at [email]blackfalconsoftware@outlook.com [/email]…

This software is offered as a freely available Open Source package under the generous MIT license.

Login to post a reply

Server time is: 2024-03-01 09:18:13
Your offset time is: 2024-03-01 09:18:13