Author Topic: Why is this written in VB6? Why are there limited graphics?  (Read 6767 times)

0 Members and 1 Guest are viewing this topic.

Offline Steve Walmsley (OP)

  • Aurora Designer
  • Star Marshal
  • S
  • Posts: 11658
  • Thanked: 20379 times
Why is this written in VB6? Why are there limited graphics?
« on: February 06, 2010, 12:45:08 PM »
Common questions are why is Aurora written in such an old language and why can't you see spacecraft blowing each other up in full technicolour.

It's a long story but back in the mists of time when I was a commercial C++ programmer, I was asked to do some programming in Visual Basic 3, which I had never seen before. I was asked to "learn it as you go along". There were a couple of VB programmers there who were helpful and regretfully I wasn't very complimentary about this new language, describing it as "programming for the under-fives" and, once I found out that you had to type "Unload Me" to close a form, "programming in Wonderland". Eventually, I did realise that while it wasn't as powerful as C++, you could get things done very quickly. To learn the language more fully, I started a program of my own called Starfire Assistant to help me play a board game called Starfire. Starfire was an pre-computer 4x game, designed during the 70s by Steven V Cole (of SFB fame). I started playing at second edition. Third edition was designed and written by David Weber (Honor Harrington, etc.)

At the time when I learned VB3, I was manually rolling up Starfire systems (3rd edition I think) and entering them on a Word template before printing them out. The Galactic Map was usually a large sheet of graph paper. I decided I would create a system generator in VB3 to take away some of the grunt work. This worked well and I began to add more functionality over time. Eventually, I mentioned on the Starfire mailing list that I had this program and there was a lot of interest so I published it. Over time, Starfire Assistant reached the point where it covered all the rules and was used by the majority of Starfire gamers to play campaign games. As new versions of VB were released, the code was updated to VB4, VB5 and VB6. I have always liked writing after action reports and the reason behind Starfire Assistant was to allow me to play Starfire more easily and therefore allow me to write after action reports more easily too. One report eventually become the Rigellian Diary, which stretched to 700,000 words (about 950 pages in 12 point font in Word)

After 4th edition Starfire was released, which I didn't like at all, there was a major split within the Starfire community (see my bio post in the FAQ thread if you want more details). Eventually, Marvin Lamb, the new owner of Starfire, declared that if I released any further updates to Starfire Assistant he would sue me for copyright infringement, even though it had been freely available for ten years. Despite the fact I had no financial interest, took some legal advice, published a bug fix and said go ahead and sue if you want to. No legal action was forthcoming, I published a couple more Starfire Assistant updates but the whole mess had soured my good feelings regarding Starfire and I left the mailing list.

Eventually, I took the SA base code and began adding non-Starfire functionality. Starfire was a board game and I found that designing for a PC game was a lot easier than trying to fit boardgame rules into a computer program. Over time, pretty much all of the original Starfire functionality was removed and the Aurora functions were added, creating an entirely new game. Aurora still shares a few things in common with third edition Starfire in terms of flavour and genre, even though the mechanics are totally different. Aurora has not been designed and then built though. It has evolved over the course of several years. That is why parts of the code are very new and other areas need some updating. Like Starfire Assistant, the whole reason for the existence of Aurora is to allow me to write after action reports.

I never tried to update to VB.NET because the language was too different and there is a huge amount of code in Aurora. As in the commerical world, which still has a lot of VB6 software, there were a lot more reasons to stay with a known code base with which I had many years of experience rather than to go through the immense pain of trying to upgrade it to a newer version which didn't offer any significant advantages in terms of functionality. All the information I could find suggested the upgrade process from VB6 to .NET was a nightmare. Microsoft seems to agree because VB6 programs are officially supported by Windows 7.

Besides, Aurora is not intended to be a graphical game. It is aimed at those gamers with a lot of imagination who want a program that allows them to indulge that imagination. It provides a platform on which to build your own universe. In the past, my friends and myself spent many happy hours around a table with nothing more than pen, paper, funny dice and a shared imagination, or sat facing each across large paper maps with hundreds or thousands of die-cut counters. We didn't need to see Tiger Tanks firing shells into blasted buildings, trying to root out dug-in infantry, or a red dragon trying to burn a party of adventurers to cinders, or a fire-fight against barbarian aliens on a dead, ruined world. We had the framework of rules and we added the visuals ourselves. That is the type of gamer at which Aurora is aimed. In a sense, it is really a boardgame or a role-playing game that makes use of the power of computers to allow you to do a lot more than you could with pen and paper, or maps and counters. For that purpose, VB6 works perfectly well.

Steve
 
The following users thanked this post: jdight84