/******************************* kf_news8.txt ******************************\ * * * Module : Kf_news8 * * Descript : KiteFlight Newsletter * * Project : KiteFlight * * Modified : 13-Nov-1996 * * * * (c) 1996 by Peter van den Hamer * * * \***************************************************************************/ KITEFLIGHT NEWSLETTER #8 by P. van den Hamer 13-Nov-96 This is the 8th issue of a newsletter with information about the PC program KiteFlight. The newsletter contains information for current users and others interested in KiteFlight. Old issues of this Newsletter can be found below the KiteFlight home page (see below for URL). Contents of this issue: 1. What's KiteFlight? 2. What's the current version? 3. How to get updates 4. What's new in KiteFlight 2.08 5. Minding your t(r)ail 6. New routines by Highlife and Astro Chicken 7. Odds and ends 1. What's KiteFlight? --------------------- KiteFlight (KF) is an MS-DOS program which can simulate the movements of dual-line stunt kites or stunt kite teams. The movements of the kites are controlled by control files written in a kite simulation language called KF1. KF is useful both for visualizing existing routines and as a tool for developing your own routines. The commercial floppy ("Kite 2.0") with KiteFlight also contains software (Plot and Sputnik by Peter Ruinard) for printing and customizing kite plans from the books by Servaas van der Horst and Velthuizen ("Stunt Kites..." and "Stunt Kites II..."). Plot and Sputnik are meant to be used together with the book(s). KiteFlight, however, can be used without owning the books. 2. What's the current version? ------------------------------ Latest version: 2.08 (latest complete version in my own possession) Latest release: 2.08 (demo version available on Internet via Web home page) Latest release: 2.01 (on 1.44MB floppy in CD Box via shops/magazines) Compulsories : 2.2 (freely available on Internet via Web home page) Web home page : 2.08 (below http://www.iaehv.nl/users/vdhamer) 3. How to get updates --------------------- If you buy and register the commercial Kite 1.0 diskette, you can get free upgrades up to KF 1.18 via Internet. Although you can register even if you don't have any form of access to Internet, you will not be able to get updates (but maybe your nephew can help out with the Internet part). If you buy and register the commercial Kite 2.0 diskette, you can get free upgrades to KF 2.xx. You can register (free) by sending an E-mail message to the author (vdhamer@msn.com) stating your address, which version you own and where you bought it. You then receive a reply explaining how the update procedure works. Non-registered users can obtain free copies of the demo versions of KiteFlight (e.g. KFCD 2.08) from the author's Web site: http://www.iaehv.nl/users/vdhamer (The Netherlands) or from the rec.kites archive on Internet: ftp://ftp.uni-bremen.de/pub/kites/simulation/kfd/kfcd_208.zip (Germany) The demo version has a number of limitations compared to the larger retail version. Except for the first item, all these limitations are due to technical (16-bit vs. 32-bit) or file size reasons: * The demo version is able to run all STACK/AKA/AJSKA compulsories, but not the full length animations. * The demo version has a less sophisticated/powerful user interface than the retail version. The demo version is therefore 2x-3x smaller in file size than the retail version. * The demo version does not support ribbon trails or smoke trails. * The demo version does not run as smoothly in a Windows (3.1 or 95) environment as it does under a DOS environment. * The demo version runs SuperVGA displays in VGA mode only. This is less important for moving images (like kite animations) than for static images. 4. What's new in KiteFlight 2.08 -------------------------------- KiteFlight 2.08 is the most important free update release to date. The key benefit is the new support for smoke trails and ribbon trails (see the file CHANGES*.* for a complete list of changes). Note that these new trail features are only available in the KF32 version of the program because it requires relatively substantial amounts of additional memory (e.g. 40K to 100K - which is a lot for a DOS program!). This memory is needed to keep track of all the dots in the tail. KF32 is an integral part of the retail version of KiteFlight and runs on a 386 PC (or better) with at least 2 Mbytes of random-access memory. These requirements imply that any reasonably modern PC can run KF32. Unfortunately, the KFCD demo version of KiteFlight, does not support the smoke/ribbon trail feature for technical reasons. Smoke trails and ribbon trails can be activated from KiteFlight's Options|Animation menu (Alt-A). In KF32 there are 4 different modes which determine how the kites leave trails on the screen during all or parts of the routine. These four modes are: "Off" means that there will be no trails. "On - permanent" means that the kites will create trails. "On - ribbon" simulates a ribbon tail with adjustable length. "On - smoke" causes the kite tails to gradually evaporate after an adjustable delay. The length of ribbon and smoke trails is determined by a "length" setting in the Options|Animation menu. The decay "percentage" setting affects smoke tails only. It indicates what percentage of the trail length evaporates. The default trail length is 200 units. This corresponds to an 8 second delay between the creation and disappearance of a trail section. Setting the decay "percentage" to 1% means that the smoke trails behave almost like ribbon trails. Setting the percentage to 99% means that the trail sections evaporate almost immediately after being created. The default decay percentage is 25%. Thus for a default trail length of 200 units, any section of the trail will be displayed at least 6 seconds (75% of 8 seconds) but at most 8 seconds. These new features work as follows: moving kites leave a colored trail (color corresponds to the kite's color). On a screen, these trails consist of thousands of little dots or pixels. After the kite has passed, these dots remain visible for an adjustable period of time and then disappear. Typically the dots will vanish after a 3 to 30 second delay, but you can use ultra-short or ultra-long trails if you want to. No, your kites do not get tangled in all these trails: life can actually be quite convenient in a virtual reality. For ribbon trails, each trail dot disappears after a precise predetermined delay. The resulting effect looks as if each kite leaves a trail which is subsequently erased by an invisible second kite which follows the tracks made by the first kite. In fact, Simo Salanne, once experimented with a similar technique and thus created disappearing trails the old/hard way. People who have previewed this feature are pretty enthusiastic about it. The reason is probably that "ribbon" and "smoke" trails make it easier to study a routine because you can see the trails, but these do not gradually clutter up the screen (like KiteFlight's "permanent trails"). For casual audiences, flying with tails makes a display a lot more lively: you don't have to concentrate too hard on what is happening to 'see' what is happening. Those who have had the good fortune to watch the Bay Area Sundowners fly (e.g. at the 1994 World Cup) will probably know what I mean. Especially when you have long "ribbon trails", the end of the trail can be very far from the kite which created it. Thus a ballet for 4 kites appears to consist of not only 4 kites creating the trails, but also of 4 moving trail ends. Some people find these moving ends distracting (I do!). You can easily fix this by selecting "smoke trails" instead of "ribbon trails". This causes the ends of trails to gradually dissolve - just like a smoke trail left by an aircraft. 5. Minding your t(r)ail ----------------------- From a technical perspective, this disappearing trail effect is harder to create than you might expect. Firstly you need to store the coordinates of every dot which is part of a trail. This information is needed to erase the dot at a later time. The trails of a 4 kite team can easily consist of over 10,000 visible trail dots, so the overhead needed to add new dots must be kept reasonably low. A less obvious problem is that trails can (and do) coincide on the screen. In fact, typical kite routines include many sections where kites fly the same path one after the other. In the following example, there is a RED kite followed by a WHITE kite, followed by BLUE kite. This creates a RED trail which is overwritten by a WHITE trail and then overwritten by a BLUE trail. The RED dots should normally disappear first, followed by the WHITE dots, followed by the blue dots. But a RED dot may have been overwritten by a WHITE or BLUE dot between the time it was created and the time it should disappear. In this case the RED dot needs to disappear from the internal data structures, but the actual screen pixel must remain WHITE or BLUE (for the time being). This implies that one needs to store the trail dots in a way which allows rapidly determining whether an old trail dot coincides with a 'fresher' dot (made by another kite or even by the same kite). The following example was designed to be viewed at the default trail setting (length of 200 units) in ribbon trail mode. KF1 2.08 ; but runs on old version of KF too KiteInit 1 -60 50 ">" "red" KiteInit 2 -80 50 ">" "white" KiteInit 3 -100 50 ">" "blue" Segment ;#1 ; follow-the-leader section KiteXY -50 50 KiteArc 10 360 ; one turn loop KiteDH 50 ">" KiteArc 10 -720 ; two turn loop KiteDH 50 ">" Segment ;#2 ; the break For 1 KiteXY 90 110 EndFor For 2 KiteXY 90 60 EndFor For 3 KiteXY 90 10 EndFor KiteDH 0 ">" ; point noses to right Sync ; stall to allow others to catch up Segment ;#3 ; parallel synchronous motion KiteArc 5 180 Speed 0.25 ; reduce speed drastically KiteDH 190 "<" EndSpeed Wait 200 ; wait for trails to catch up EndKF1 A quick resume of how all this works for the algorithmically inclined: I maintain a linked list of trail dots per screen pixel (this solves the intersection problems). In practice I need to reduce the number of required linked lists (VGA = 640x480 = 307,200 pixels) to an acceptable amount using a hash function. If you really can't sleep without the details, I can E-mail a copy of a file called "Trailmgr.h" (the interface definition and design documentation of KiteFlight's Trail Manager module). 6. New routines by Highlife and Astro Chicken --------------------------------------------- The upgrade for KiteFlight 2.08 contains two new routines. A 6 minute ballet routine by the 4 person Belgian team Highlife. The routine is rather long (1523 lines of text). In fact, the original routine was slightly longer but recoded because of a size limitation in KiteFlight. This limitation has been solved in the mean time in a special version of KiteFlight (see section 7). KiteFlight Newsletter #7 contained a review of KiteFlight from a KF1 routine designer's perspective by Peter Leclercq (the author of this routine). The following description of Highlife is taken from KiteFlight's help file and Web site: Peter Leclercq, or "Peter Pan" as he signs his kite-related E-mail, is a member of the Belgian team Highlife. The team consists of Peter Leclercq, Jean Pierre Leclercq (team manager, captain and Peter's father), Wim Van Puymbroeck, and Younes Zarzouri. Highlife represented Belgium at European and world championships for quite a few years now. The team, whose equipment is sponsored by Top of the Line, Shanti and Skyshark, came in 4th place at the European Cup in Switzerland. Peter "Pan" Leclercq also competes in individual competitions. At the 1995 European championships in Hamm (Germany), he earned 8th place for his ballet (in a field of 19 competitors) and 4th place for his freestyle (in a field of 8). Peter, who is a student of commercial engineering, can be contacted via E-mail at Peter.Leclercq@rug.ac.be. I believe Peter Leclercq has graduated after this text was written, but I have updated the E-mail address. The second routine is a 4 minute freestyle routine by a Dutch pair called "Astro Chicken". The following description is also from the KiteFlight help file and Web site: The stunt kite pair Astro Chicken was founded in 1993. The pair consists of Robert van Roon and Arjo Rozendaal, both from Rotterdam, Holland. They fly Kick, Kick SUL and Kick V5 kites. Although they normally practice on a beach near Rotterdam, they also use a field near the city to get used to the bad wind conditions which one sometimes encounters in competitions. The pair won the Dutch national championships in both 1995 and 1996. The name "Astro Chicken" was incidentally derived from an television interview with a British scientist. The scientist stated that space would be a lot less boring if it were populated with animals. "Astro chickens" was the name he used for a space-proof animal species which mankind could create by breeding or genetic manipulation. There is also major scientific evidence suggesting that in the late 1980's the Sierra Online corporation successfully introduced this extraterrestrial poultry in their series of Space Quest missions. Astro Chicken wrote the following about how they use KiteFlight: "We use KF to check our routine. When drawing a routine on plain paper we noticed that we got different interpretations about sizes of figures and height of lines." "We also think KF is a nice tool to avoid, what we call, 'impossible' figures. We think it is not right when one of the kites has to make a smaller turn to reach the same altitude for instance. You will see that in our routine ASTRO.KF1 there are no irregularities in sizes or speed control (except for a Rainbow or a Refuel, of course)." You can contact Astro Chicken by E-mail at roro@grafix.xs4all.nl or at arjo@grafix.xs4all.nl. 7. Odds and ends ---------------- * Web site has moved ------------------ The KiteFlight home page has moved from Peter Peter's site to a newly opened account of my own. Check out http://www.iaehv.nl/users/vdhamer for the latest information. Some of the pages have undergone major changes in the past months. * Solution for very large KF1 routines ------------------------------------ In the previous issue of this Newsletter, I reported that there were problems running exceptionally large KF1 files. When a routine required more than roughly 1500 instructions, the array which holds these instructions reaches a 64K size limit imposed by the processor/compiler. I have since created a prototype "true 32-bit" version of KiteFlight. This KFX version has several advantages: + no 1500 instruction barrier + runs about 30% faster due to the use of 32-bit instruction but does have several disadvantages as well: - does not support SuperVGA (unlike the KF32 version) - KiteFlight's warning beeps and squeaks are mangled (timing problem) - accessing the built-in help text can be VERY slow Because the advantages do not clearly outweigh the disadvantages, I have decided only to supply the KFX version and its 32-bit help file (kf_help.h32) to registered users on explicit request. * Brink of disaster ----------------- In July 1996, a nasty 'feature' of Microsoft's Windows 95 BACKUP program caused it to mess up my Registry (an internal database used by Win95 for system information). I then decided to reformat my hard disk (gasp!) because I make weekly backups of my disks on a Colorado/HP QIC-80 tape drive. To my dismay, the drive started to report large numbers of read errors and the backup program apparently made things worse by getting confused. Fortunately, I was able to restore all of my (1 Gbyte) disk by merging the contents of various tapes and a partial copy made on my other hard disk. All this cost me roughly 15 evenings worth of free time. I plan to replace the unreliable tape drive in the coming weeks. "What more can I do than use an HP drive, 3M tapes and make weekly backups?", he whined. * Bad file date ------------- As mentioned in Issue #7 of the KiteFlight Newsletter, the file sputnik4 can have a bad file date in the directory listing. This is not serious (the contents of the file itself are 100% correct). Nevertheless upgrade 206KF208.PAT corrects this problem automatically (using a simple copy-delete-rename trick). * Made in Japan ------------- The URL http://www.coara.or.jp/~wacou/moon/org/w-k00.htm brings you to the home pages of team AiAi and team Gulliver. The page includes various smaller KF1 routines, as well as AIAI.KF1 (included with the KF 2.06 patch). -=-=-=-