Falcon 4.0: I-Beta Team

By: Len 'Viking1' Hjalmarson
Date: 1999-04-27

Part I

Sometime after Glenn "Sleepdoc" Kletzky took on his huge Falcon 4 Mission Builder and Force on Force writing projects for COMBATSIM.COM™, Microprose contacted him for his help in continuing to test and debug Falcon 4. They recognized what was obvious: here was a scientific mind who was capable of organizing a large amount of potentially confusing information and breaking it down logically so that others could understand it.

Glenn graduated Tulane engineering Magna cum Laude as a Biomedical engineer and did his thesis work in programming of robotic AI and specifically robotic image recognition systems. He later graduated from from Tulane medical school, completed an Anethesiology residency at the unversity of Miami and is now in private practice in Denver colorado.

It's no mystery that training in the sciences makes for an excellent game tester. The ability to observe, then record in a standardized format the particular details of a game anomaly so that the occurrence can be repeated is the quickest way to debug a game in operation.

At the time, Glenn was the commanding officer of the 303rd VFS Sidewinders, a virtual squadron located in Denver, Colorado. At the request of Microprose, Glenn began to assemble a team from regulars on the kali server and and people he met there and made them the basis of a new test team which has been labeled "I-beta," for Internet beta.

The I-beta Team

As we all know, these high sounding acronyms disguise to our wives and girl friends the real reason for the existence of a squadron, which is to get together with a bunch of guys, fly all night long, and generally raise Hell in the virtual battlefields.

In fact, Glenn is probably the best outside resource on the Microprose Falcon 4 task force. Glenn has built an effective testing force, trained and grew them into F4 Hunter-Killers with a single mission in mind: make the multiplayer code of Falcon4 robust and effective.

The label "I-beta," however, may lead you to think that his group is focussed only on Internet play via Kali. While it's true that this is the only way that the majority of Falcon4 pilots will experience the multiplayer aspects, I-beta has much broader implications. Every bug that is killed the I-beta will also be killed for the LAN players. And naturally, it is not only multiplayer bugs that have been found and killed.

One particular example is the delay bug that occured every time a human player jumped into the action in Falcon 4.0. As the code exists, jumping into a flight in progress often leaves one disconnected from his flight, with the other elements up to ten miles away. I-beta was directly responsible for killing this and other prominent bugs that will make life for ALL F4 pilots simpler and more successful. (For the exacting details on this particular bug as well as the "COTT" bug, click HERE.)

The I-Beta Guide

Recently Glenn filled me in on some of the organizational details of I-beta. The documents and testing procedures Glenn designed are quite extensive, and we'll share only a fraction of the information here.

Of particular interest to some would be a portion of the Guide that Glenn penned early on. All that follows from here on was penned by Glenn Kletzky.

The Internet-Function Multiplayer Beta Testers Guide

Mission Statement:

The mission of the Internet-Function Multiplayer " Beta Test Team (For both Charter Members and Apprentices) is to guide the programmers of Falcon 4.0 multiplayer toward an orderly repair of bugs that affect the internet function of this simulation. Although many bugs also exist which are not specific to multiplayer games, we do not report on those bugs. We are a focused group whose only purpose it is to see multiplayer internet become a stable platform for play.

Beta testing is a labor of love. We do it because we want to help ourselves and the other players of this simulation to get the game they always hoped for.

The team is to be assembled of level-headed guys and ladies who are not interested in emotional outbursts, flame wars or other products of internet immaturity. The idea is to put together a crack team of orderly testers who stick to a rigid format of bug hunting and reporting as set forth by these documents.

F4

All testers understand that burnout is possible, and that they may leave the team at any time without hard feelings towards or from the other members. We are here to have fun, despite the rigid reporting rules you are about to review in this document. If at any time, any member feels that they are no longer enjoying the process, then our only request is that they gracefully bow out. There will be no hard feelings from us. They may return to the team at any time.

The priorities of bug reporting for the Falcon 4.0 I-Beta team.

After much discussion, the priorities of this team have been determined. They are to locate bugs in the following sections of the game. These priorities represent that which this team and Microprose believe need to be fixed first in order to make this a viable internet multiplayer product. These priorities for internet game repair are listed in the order of importance. We will hunt for bugs and make suggestions for repair based on this order of priorities.

Priority ONE:

To Get 2 player DF and TE and CPN working solidly on the internet.

  • 1. Connections across the internet must be stable.
  • 2. Multiplayer game settings must work properly.
  • 3. Dynamic re-entry (called XYZ-HAS re-entry)in DF and CPN must work properly.
  • 4. The infamous "ghost plane bug" must be eliminated
  • 5. Pilot assignments to new plane icons in the ready room must work correctly
  • 6. The "queueing bugs" associated with delayed chat and delayed pilot assignments must be fixed.
  • 7. AI Brains must be passed properly back to planes who had their human inhabitants leave.
  • 8. The "AI Brain Transfer of Ownership" feature must work properly between the M-host and all of his M-Guests (no matter how many M-Guests there are)
  • 9. Comms chatting and comms channel selections must work and connect you to the correct people.
  • 10. Clock sync must work.
  • 11. Regenerations in DF must work.
  • 12. Memory leaks must be eliminated.
  • 13. Progressive frame rate deteriorations must be eliminated (Probably a side effect of progressive memory leaking or comms settings not functioning properly).
  • 14. ROE screens must consistantly appear at the start to all game types (DF, TE & CMPN), whether or not the players are already in compliance.
  • 15. ROE screens must remember prior settings after returning from windows or new reboot.

Priority 2:

Then get 3 player working; then get 4 player working. Then consider looking at server software development, but until the above priorities are working, there really isn't any point in server software.

Defining the seven (7) Internet game types that we are going to test and designating their proper abbreviations:

  • 1. DogFight - Furball………… DF-F
  • 2. DogFight - Team furball……….. DF-TF
  • 3. DogFight - Match play.. DF-MP
  • 4. Tactical Engagement - Force vs. AI (p-p)……... TE-FvAI
  • 5. Tactical Engagement - Force vs. Force (p-p)…….. TE-FvF-Pre
  • 6. Tactical Engagement - F vs. F (chess like)……. TE-FvF-chess
  • 7. Campaign ……. CMPN

Part II - By Glenn Kletzky

1. DF-Furball (DF-F)

This is dogfight furball. As you know, the dogfight module of F4 has 3 variants and this is the first one. They need little explanation, so I will just list the other 2 variants without further elaboration. It is actually TE type games that need elaboration.

2. DF-Team Furball (DF-TF)

3. DF-Match Play (DF-MP)

4. TE-Force vs. AI (pre-programmed) (TE-FvAI)

In Tactical engagement custom missions, the most common type is this type (remember...we are talking about 2 player or more internet games...not playing single player). This is the basic pre-scripted, co-op multiplayer format where 2 or more guys on the same team play a pre-programmed mission where all the flights (both friendly and enemy) were already designed by the designer before the mission started.

You can change waypoint locations and loadouts once you enter one of these missions, but adding new flights once in the game or issuing new orders to ground troops is not in the scope of this "type" of mission (hence the term "pre-programmed"). It is called "Force vs. AI (pre-programmed)" Also, all humans are on the same team. No humans play for the DPRK.

5. TE - Force vs. Force (pre-programmed) (TE-FvF-Pre)

In FvF(pre-programmed) missions, all flights are already written in by the guy who designed the mission before the game starts, and no new missions are created (or ground troop movements issued) once the game begins (hence the term "pre-programmed"). The difference, however, is that at least one human is playing for the US side and atleast one human is playing for the enemy side. It is a competition between humans.

The "Victory conditions" were set forth by the designer in advance (as they always are) and the players simply fly the missions that they were given and attempt to complete the victory conditions as set forth. In this case, you are competing against the enemy which is accompanied or lead by atleast one human.

Once again, if the flight you are in gets shot down, then you may NOT make new flights on the fly. You may enter other planes already in the original mission, but you may not make new flights with remaining resources, and you may not issue new ground troop movements when you are back at the ready-room, between flights. If all your pre-programmed missions are gone, then your game is over.

6. TE - Force vs. Force (chess like). (TE-FvF-Chess)

Unlike in a game of chess, the prior TE game types defined did not permit moves and countermoves. You were not allowed to create new flights "on the fly" once the game was started. When you were dropped back to the "ready-room" you could only re-enter the game if pre-existing planes and flights remained. You also could not issue new ground troop movements.

In chess, as in this type of play, you may do all these things and more. These "chess like" games usually start with a set of resources on the map (like peices on the chess board). These resources would be things like Squadrons of pilots and aircraft placed at certain bases. Ground troops such as tanks and mobile SAM battalions sitting at predetermined starting points.

Each player has limited resources (as an a example, lets say each player has 3 squadrons of f-16s and other type aircraft based at certain airbases and each player has a bunch of mobile entities like SAMs and tanks). When the players first connect to play, all they have are their resources and their victory conditions. No flights or packages have been constructed and no ground troop orders have been issued.

Let's say the victory condition is to "OCCUPY" the city of Seoul with at least 4 tank divisions. As soon as the game starts, you start frantically making flights and packages and issuing ground troops orders to move. Once you feel you have made a good first move, you let the AI take over and you enter the game to fly as one of many airplanes in the sky. Once you die, (or you decide you need to get back to the interface and check on the status of your troops) you end the mission, and return to the "ready-room".

Once back at the interface, you check on the troops and the results of all the flights that have gone out, you re-assess, you re-issue new ground troop movements, you create new flights and packages, and then when you are satisfied, you fly again. All the while, your friend on the enemy side is doing the same thing. Ultimately, after many returns to the interface and many new flight creations and ground troop re-orderings, either someone occupies Seoul or the game is a stalemate. Just like chess.

To me, this is the ultimate form of play in TE, and may even prove to be more exciting than a campaign in multiplayer, due to the strategic level of control that the player has.

Part III - By Glenn Kletzky

What a Bug reporting FORMAT and Bug reporting TEMPLATE Is

As you recall from the prior part of this document, we have defined seven types of internet game play types. For each of these game play types (DF-F , DF-TF, etc) we will have a bug reporting FORMAT to match. Each of these FORMAT documents are to be printed out and kept handy during bug report writing.

The FORMAT document for each game type will show the tester every category he is to report on, and all the possible things he can enter for each category. He may sometimes think of other things that need to be options for the format documents, and he may submit his additions at any time to me (Sleepdoc) for approval. If they are valid, they will be added to all the groups FORMAT documents.

The tester will also receive a TEMPLATE document for each game type. The Bug reporting FORMAT document and it's related bug reporting TEMPLATE document constitute the "matched pair" of documents for each game type (DF-F , DF-TF, etc).

The TEMPLATE document is to be opened by each tester in his or her word processor and read fully. Then the TEMPLATE is to be customized (edited) to be an "empty shell" with each category listed and the individual testers COMPLETE system specs added to the end. Then, when it is time to report bugs, the player opens the appropriate TEMPLATE (there will be one for each game type).

F4

A Partial Listing of the I-Beta Team

Glenn "Sleepdoc" Kletzky
Andre "ILL_DRE" Jennings
Cam "Raptor" Kristensen
Chris "Hawk" Schroeder
Dave "Madcow(App)Dewdog" Wagner
David "Crankshaft" Hiebert
Jeff "Jet-thro" Thomas
John "NavlAV8er" Simon
Nester "RED-10" Colon
Robert "Navy1" Stanley
Ken "Sidekick" Crawford
Börje "Speed" Johansson
David "Ham" Hamilton
Joe "Surfdog" Abramo
Cameron "VLAD(App)Sleepdoc" Paine
Charles "Dirtdobber" Weems

Craig "NightLight(App)SideKi...
Dale "FlightDoc" Varner
David "Crankshaft" Hiebert
Joe "Surfdog" Abramo
John "Avenger" Grey
John "Makani(App)Surfdog" Sa...
John "NavlAV8er" Simon

Leigh "Anytime(App)Ham" Wooley
Len "Archer(App)Hawk" Collins
Leo "Central(App)Hawk" Park
Mike "Cannon(App)SideKick" K...
Nester "RED-10" Colon
Richard "DedMan(App)DewDog" ...
Rick "Harpy(App)SideKick" Co...
Rick "Iceman(App)DirtDobber"...
Speed
Steve "Wizard(App)DirtDobber...
Tennie "Spaceman(App)NavLAv8...
Todd "GreatWhite(App)DirtDob...
Victor "Duke" Zaveduk

XYZ HASA Fixes

XYZ-HASA fixes

This was a big one, and took longer than any other bug to characterize and track down. The Charter members of the I-Beta team really showed their stuff when they tracked this bad boy down and helped Mr. Heydon focus on killing it. It deserves a full definition, not only for historical purposes, but also in case it ever rears its ugly little head again.

The XYZ part of XYZ-HASA refers to the xyz position in space. In other words, if Cowboy 12 is an AI controlled aircraft flying right off your wingtip in formation, and you choose to dynamically re-enter it (that means enter it in mid-flight), then when you do dynamically re-enter that aircraft, the human should be put right in that craft at its current location right off your buddy's wingtip. Right?

Well.. unfortunately, since the original release, that was not what happened. As soon as the human was applied dynamically to that AI craft, that AI aircraft would literally warp anywhere from 4 to a million miles away. We started inventing terms like "warp -4" (back 4 miles) and "warp one million" (god knows where that one went .. hehehe). We even had a weird one we once called "warp RTB" (RTB = Return to Base).

That was a real weird one, because no matter where the aircraft was at the time you entered it, it would always warp straight back to the base it took off from and be placed on the ground in the grass field near the base of origin, with its wheels down !!! No kidding. We called it "Warp RTB" (RTB=Return to Base). So clearly, For this revolutionary new feature in Falcon 4.0 to be worth a damn (dynamic re-entry has never been done in a complex flight sim before.. not even SU-27 1.5), this feature needed a lot of work.

The HASA part of this term stands for "Heading/Altitude/Speed and Attitude." After all, even if the programmers got the XYZ position correct, what if the aircraft was suddenly turned around 180 degrees from its original direction (heading), pointing straight down at the ground (attitude), was in a stall at 80 knots (speed), and was suddenly only 500 feet off the ground (altitude , which is actually part of xyz, but you get the point here.) So it wasn't enough that we fixed XYZ. We needed to fix XYZ-HASA.

This bug took many failed attempts to fix, and is still not perfect yet, but has come 95% of the way there since this version. It works very well almost all the time now. Here is an inside explanation of what is happening, how it works, and what the remaining little problems are.

  When the Gilman pie (those 5 pictures we see during the loading of the game) is at the transition from Gilman Pie Slice 2 to Pie Slice 3, that is the point at which a player inside the simulation will see your name label applied to the aircraft you are entering. It is the time that you are actually placed in the aircraft. It used to be the time that the wild "Warps" occurred as well.

The problem is that even though you are now "applied" to the aircraft, you still have many seconds of load time remaining, and therefore cannot see the world around you and fly the aircraft. SNAFU you say? Well, not really. The solution is that at the moment you are applied at Gilman 2/3, the "Combat autopilot" is also activated. And at the very instant that you actually enter the airplane, a final XYZ-HASA packet is re-checked, the "Combat autopilot" subroutine is disengaged and whamo! You are in the hot seat. Sometimes it helps to understand the inner workings, don't you think?

And please don't be confused by this explanation. The user does not have to have "combat autopilot" selected in his setup for the program to use combat autopilot in this load "Dynamic Re-entry" situation/Gilman pie sequence. So just leave your autopilot settings anywhere you like it.

COTT

The document that defined this bug and its fixes was ten full pages in length. Here is the initial definition....

A set of bugs which have come to be cumulatively known as the "CHAOS ON THE TAXI-WAY" bugs (COTT) have been identified and characterized. All of them will be given names here at the beginning of this write up, and then defined through out the content of this write up.

The COTT bugs are a result of the following individual bugs.

1. The "Slider-Collider" bug (AKA the "Explosion on Entry" bug)

2. The "Variable destructibility of aircraft on the Taxi-way" feature

3. The "Over-Zealous 1-1 Aircraft AI brain" bug

4. The "Chain-Link, Who Follows Who on the Taxi-way" bug.




Printed from COMBATSIM.COM (http://www.combatsim.com/review.php?id=496&page=1)