# Visual Basic > Games and Graphics Programming > Game Demos >  [VB6] FireStrike 20mm Wargaming Software

## yereverluvinuncleber

Image 1 Firestrike Quartermaster VB6 Windows

This is a screenshot of my desktop with the software displayed that I originally wrote in the 90s. It was a military simulation tool that was a very early precursor to tank games such as World of Tanks. Some primitive 3D effects but mostly 2D. Firestrike was designed to be a comprehensive tool to support desktop wargaming tabletop figures and vehicles in 15/20mm to 1/300th scale. The PC program was designed to be a tool for the umpire to determine the outcome of a battle between two opposing armies of up to 1,200 vehicles per side. It had a graphical interface in the days when such things were rare. It aimed to be easy to use and fast to operate. I cut my original Photoshop skills on this software.

Originally written in QBasic 4.5, then converted to VBDOS and finally to VB for Win the new versions of basic came quicker than I could code my project... When .NET made the lot obsolete I abandoned it.

This VB6 project was the biggest thing I had ever attempted but just before the turn of the century I abandoned my biggest computing effort of all time solely because Microsoft deprecated the programming environment. They threatened to pull the plug to stop VB6 running on Windows and they provided no possible upgrade path. It was soul-destroying. Instead, I went onto other things and abandoned Firestrike and MS products altogether. If I had known that VB6 would survive as a usable environment despite Microsoft's best efforts to kill it, I might have actually continued the development.

Many years later and the good news (for me) is I have picked it up again!


Image 2 The Inventory of every tank, gun and vehicle used in WWII on the Western Front for the three main protagonist nations. Took me ages to collate the data. There are screens of data.

The program shown above is just part of the whole program. This was an interface to the core databases that stored the vehicle, weapon and gun data allowing you to create an army from any vehicle used during the Normandy campaign of World War II. The work to collate all manner of information on all the combatant's vehicles, to photograph and process all that data and provide it in a usable form was a large amount of work for one man to achieve. Even though I eventually abandoned it, it had one good side effect - it taught me programming and military history in depth.

-oOo-

I am obviously using the VB6 IDE to update and improve the code but I am continuously finding I need capabilities that the VB6 IDE does not have. The VB6 IDE is a nice place to work, however there are limitations, so here is a shout-out to the developer Rickard Johansson who has created a free programmers editor RJTextEd. 

[shoutout]
The VB6 IDE allows me to edit files externally, with an add-on named MZ-tools it also has buttons to enable the current document to be edited using any default editor (RJTextEd), the IDE itself is aware of any code-changes made by an external editor, asking if you want to reload the project whenever changes are made. RJTextEd has load of useful stuff, massively enhanced search functionality, you can define key definitions to match your familiar VB6 usage, code is actively colour-highlighted, the syntax highlighter gives you multiple variations in colour. There is useful line numbering so you can jump to a line of numbered code. Another useful feature is that branch Lines are drawn to indicate the start and end of if/then statements and of course you can fold your code. I could not have updated thousands of lines of spaghetti code without using its advanced search and replace functionality.
[/shoutout]


Image 3 View of one of the resulting application windows.

When people ask me why am I coding an old program in an outdated language such as VB6 (and they do ask), well, for a start I am loving the old VB6 IDE, it works very well, it is blisteringly fast. I suppose 'puters are SO much faster these days than they used to be. Each core is 10-15 times what I would have used back in the day, yet now I have more than just one CPU core, drives are many times quicker than they used to be and all modern computers have so much more memory. Start-up and compilation times are now measured in seconds rather than minutes and as a result it is a delight to develop and run my old programs. The fact that a programming environment from 1990s is still usable and capable of building decent apps in 2019 is rather impressive. Why Microsoft gave up on VB6 still astounds me as one of its largest corporate failings over the last 30 years. Microsoft have squandered so much that was good and lost a lot of goodwill in the process. The VB6 IDE was superb in its day and despite some limitations (as described above) is still very usable. The VB6 language is very standard, usable and if you were brought up on BASIC it is the ultimate expression of that language just as VB.NET is definitely NOT. Professional programmers often detract from what VB6 really is, what they don't understand is what VB6 is capable of. 


Image 4 The points calculator. This calculates the amount of energy in kJ that a weapon is capable pf projecting, given the rate of fire the weight and explosive power, the weight and speed of the projectile giving kinetic energy.

I think of VB6 as an advanced scripting language with its own IDE which has access to all the facilities of the o/s, through COM/ActiveX and one that is capable of producing compiled binaries. That is a combination that is hard to beat.


This is the launcher that I am working on now

The code is nowhere near ready to release and I'm unsure as to whether I would ever let anyone see my code until I am dead, it is that bad. I am currently working on approximately one third of the code base and getting it into a usable and bugfree condition. I am also filling in the missing data. I have learnt so much since I originally wrote this code and there is a lot to overhaul.

PS. My last series of posts on my steampunk designs weren't well received as I was perceived I was 'spamming' by adding two designs per day. It's not my fault I am so prodigious in output... I like to bang out my designs. Instead, I will post updates here to the screens as I create them. Hopefully not quite so rapidly this time as they take time to build from scratch.

----------


## yereverluvinuncleber

Launcher latest.



This is very much a WIP.

----------


## yereverluvinuncleber

My first attempt at running my VB6 project on anything other than my own Windows 7 laptop. This time a 32 bit installation of Windows 7, each installation throws up different errors and methods of solving them.

Excuse the low quality GIF capture:

This shows the launcher initiating and doing its stuff, then it progresses to a brief run of the Quartermaster.



It just shows it all works without falling to pieces on the very first try. There are still some data issues to resolve but fundamentally it works.

----------


## yereverluvinuncleber

I had planned to migrate this application to VB.NET assuming that it would be possible and practical given some effort. However my recent experience with another trial migration of a 8,500 line project has made me question my own ability to migrate a larger project. I don't think I have the stamina nor the persistence to do it. It might simply put me off the application altogether and I don't want that. 

I think for this application I have to determine what the future path might be and in the absence of a tool that can replace VB6 now or in the near future I have to think of the long term solution and I think that will will have to be ReactOS. I think I may finish this project in the same timescale as the ReactOS team, ie. very slowly.

It is a pity that I can't migrate it and I'm loathe to lose it entirely, all that work. It comprises a lot of control arrays, the use of pictureboxes as containers (frame objects), cursor keys to navigate spreadsheet style forms, lots of arrays starting from 1, a great deal of string manipulation all over the place, use of APIs, combobox and scrollbar events that will all have profound effects when changed to VB NET equivalents. Worst still, the sheer volume of all these, mean I probably won't be able to handle the vast amount of work to complete. The program still needs lots of work in itself but a re-write from scratch is simply out of the question. There are some parts that do really require a re-write, some that I never really started and so I could do those in .NET but I would end up with a bastard child, part VB6 and part .NET and that is no good at all.

So I am not sure where to go with this tool. I can't abandon it having spent so much time on it. 

So many here must be in the same quandary, what do you do?

The only option seems to be carry on coding in VB6 and hope for the best and pray for one of those VB6 replacements to come good.

----------


## yereverluvinuncleber

Just for completeness, I'm providing this link to the ReactOS Epic Win thread where you can see my VB6 Firestrike software running on ReactOS.

https://reactos.org/forum/viewtopic....140241#p140241

----------

