[]===========================[] || BLISS || || Stunts Track Editor || || Version 2.5.8 || || ----------------------- || || By Lucas Pedrosa || []===========================[] INDEX 1. Introduction 2. License and disclaimer 3. Installing and running Bliss 4. Track and terrain editing 5. Advanced editing 6. Selection and block editing 7. The switch bar 8. The menu options 9. On file formats 10. Scenery generation 11. Track analysis 12. Tournaments 13. Taking a track-shot 14. Colouring .1. --=[ + Introduction + ]=-- Bliss is a track editor for Stunts. If you're reading this, you surely are familiar with Stunts, but in case you're not, Stunts is a 1990 cars game for DOS which, despite being old, not supporting online play and having low resolution graphics, is so fun and unique that it earned a great number of fans around the world and online tournaments are still being held as of today, in 2018! When Stunts was made by DSI in the early 90s, it came with its own built-in track editor, which is one of the features that has made it so popular and loved. Yet, this track editor has important limitations. Bliss is designed to go beyond those limitations while providing a very comfortable environment that's designed for today's computers and operating systems. Because Stunts is a DOS game, I considered it important to make sure that Bliss could run under DOS. It's been tested to run perfectly well in FreeDOS and should run on other compatible platforms. It will also run in DOSBox, although significantly slower and with some loss in graphic quality, since DOSBox does not support the resolution Bliss uses by default. Specifically, DOSBox does not seem to support 1024x768x32bit, so when this mode cannot be used, Bliss will use 16bit colour instead. If the 32bit mode can somehow made to run in DOSBox, then Bliss will use it. Bliss can also run natively under GNU/Linux and Windows and likely in compatible OSs (like some Unix flavours and ReactOS). .2. --=[ + License and disclaimer + ]=-- Starting from version 2.5, Bliss is FREE SOFTWARE. It can be used, modified and distributed under terms of the GNU General Public License vesion 3. Feel free to share with your friends or post on your website. Together with the program, you should have received the source code. If you redistribute it, make sure to also include it in your distribution. For exact details on the GPLv3, read the file named COPYING or license.txt included with Bliss or visit http://www.gnu.org/licenses/ If you are entirely unfamiliar with FREE SOFTWARE, I recommend that you take the time to read about it or at least, view online videos on this topic. In particular, if you are a programmer, it will be a great contribution to our community if you become familiar with this concept. The word "free" in FREE SOFTWARE refers to "freedom", not to "free-of-charge". You are allowed, however, to not charge for this software and to get it free-of-charge. Bliss is made in the hope that you will find it useful and enjoyable. It comes with ABSOLUTELY NO WARRANTY. The author has put all effort in making it efficient and as bug-free as possible and you are unlikely to encounter any problem, yet this is not guaranteed. The features described in this manual are expected to work as explained, but bugs may occur, including bugs that could cause the functioning to differ from that described. So again, NO WARRANTY. .3. --=[ + Installing and running Bliss + ]=-- Bliss is designed to be portable and transcendent. Portable, meaning that, ideally, you have all you need to run the program in the files that come included, you can place them wherever you like and the program will run. Transcendent, meaning that the program should not just stop working one day because a part of it has to be updated or because it was updated. If a new version of Bliss is released, old versions will continue to function normally. You can just keep the program files in a flash drive for years and then come back to them and they will run. So to install Bliss, you simply create a directory somewhere you like on your computer file system and copy the files there. Then you run Bliss by executing the program file for your operating system. The executable files included are: bliss - GNU/Linux 64bit executable bliss32 - GNU/Linux 32bit executable bliss.exe - Windows/ReactOS/Wine 32bit executable bliss.com - FreeDOS 32bit executable In order to run the DOS executable, since Bliss is a 32bit program, you will need to have DPMI services in your system. Depending on the version, this may be granted under DOSBox and likely, in other DOS emulators, but if you're running a true DOS, such as FreeDOS, make sure you have a DPMI server (such as CWSDPMI or HX-DOS). Most 32bit DOS software uses DPMI so you likely already have one of these. Otherwise, you can find them online easily. As long as the license is compatible, you may have received one of these with your package of Bliss. The package may or may not include the 32bit binary executable for GNU/Linux. Only the 64bit executable is always available. It is clear that mostly everyone is using a 64bit OS nowadays. However, if you would like to run Bliss on a 32bit GNU/Linux system and you didn't receive the corresponding binary, compiling should be pretty straightforward. Obtain FreeBasic from its website at freebasic.net, install the necessary dependecies and run it in Bliss' main directory on bliss.bas. The source is still perfectly compatible with 32bit mode. .4. --=[ + Track and terrain editing + ]=-- Stunts circuits are based on two layers: the top track-layer and the bottom terrain-layer. These two are represented on a 30x30 tile grid. When you start Bliss, the grid is empty, meaning that there's only grass and no track to race. You'll see the grid on the right side and the control panel on the left. Bliss has been mostly thought of as a mouse-driven environment, yet it is almost as powerful when controlled with the keyboard. As you move the mouse pointer on the grid, you'll notice how the coordinates change on the left. If you press any of the arrow keys, the keyboard cursor will show up too and you'll be able to move it all over the map. Below the coordinate display, there's the current tile indicator on the left, and the tile palette on the right. You can place the currently selected element on the grid by clicking on it with the left mouse button or by pressing ENTER while the keyboard cursor is shown. The element will be placed at the position corresponding to the mouse pointer or keyboard cursor respectively. Likewise, use the right mouse button or the DEL key to clear the grid at the current position. When editing with the mouse, the left or right button can be held down while moving the pointer, allowing for very quick edition. What you edit from the moment you press a button until you release it will be referred to in this manual as a "stroke". It is not possible to create strokes with the keyboard by just keeping the ENTER key down, but as you will see, many tools are availble to aid keyboard-based edition. The most intuitive way of editing is by selecting the item you need from the palette and then using the mouse or keyboard to place it on the grid. With the mouse, you can select an item by just left-clicking on it. With the keyboard, you need to press TAB to switch from the grid to the palette, ENTER to pick an element and then TAB again to return to the grid. The palette is divided in twelve "pages". What you see at the palette when you just start Bliss is the first page. You'll notice the page selector and indicator right under the palette. The first page (depicted with a straight paved road) is highlighted. Click on any of the palette indicators with the mouse to change the page. You can achieve this with the keyboard by using the functional keys F1 through F12. Pages 1 through 10 contain track elements that you can use to edit the top layer. Pages 11 and 12 will instead edit the lower layer, the terrain. Editing the terrain with palette page 11 (F11) may look very trivial at the beginning, since it's done exactly the same way I have explained for track edition. But it's page 12 that provides the most comfortable approach, although that one can only be used with the mouse. While on page 12, select either mountain or water, then use the left mouse button to raise terrain or flood at a point and the right mouse button to lower terrain or dry a spot. This brush-like editing mode will also take care of unfinished terrain edges for you. Finally, on the bottom left corner of the program window, there's the background selector. Every track contains a background landscape. Click on the selector and pick any of the five available backgrounds for your track. With these tools, it is already possible to produce a complete track, but Bliss is a lot more powerful than that! Read the next section to learn about advanced editing tools. After that, we'll delve into the menu options. .5. --=[ + Advanced editing + ]=-- The previously described is the most intuitive way of editing with Bliss, made so with the purpose that you always remember how to do things and never get stuck. However, there are a number of shortcut keys and functions that may take a little more to get used to, but will make your editing a lot more comfortable and powerful. They are very simple to use too, it's just at the beginning you tend to forget they're there, so I recommend you to try to force yourself a little to use them until it becomes natural. The simplest example is the ability to pick an item from the grid instead of from the palette. You can do this by pressing the mouse middle button, if you have one. Alternatively, use the P shortcut. P will pick the element at the mouse pointer position, unless the keyboard cursor is visible at the time, in which case it will pick the tile at the keyboard cursor position instead. Using P will save you a lot of time of palette search. Nothing takes more time in Bliss than having to select the correct palette page and then the right track item and P is only the first alternative. Besides directly selecting an item, you can also transform the one you're already using. Press R to rotate the current track element clockwise or SHIFT+R to rotate it counter-clockwise. Also, you can use F to flip it horizontally or SHIFT+F to flip it vertically. While editing regular roads (pages 1, 2 and 3), you can switch between the different materials (paved, dirty or icy) by pressing M. Additionally, track elements are grouped by type and each type has a one-letter shortcut that selects it directly. For example, L for loops, K for crossroads, T for tunnels and slaloms, etc. You can see a full list of these shortcuts at the Help menu (F1 twice, or once if you're at the first palette page). Use SHIFT plus a shortcut letter to follow the element list in the other direction. If you don't remember an element shortcut, you can still find it quickly by pressing the SPACE bar and then starting to type part of the element's name. Some track elements are very definite, like an elevated road or a banked road. Others, like ramps or banked road entrances serve as connectors between two definite tiles. We call these "transition" elements. In the shortcut list, they are grouped under the V shortcut key. Of course, they are many and it may take some time to go through all of them by pressing V again and again. An alternative is the U shortcut key, which does not select an element, but instead, tries to complete a track tile with an element that can connect the bordering tiles. Try placing a paved straightway and a banked road separated by an empty tile, then point at the tile with the mouse and press U. A banked entrance will be generated. When more than one tile can connect the surrounding ones, you can keep pressing U to find alternatives. This is very useful also to generate splits. One tool that could not have gone missing is that of undoing and redoing. At any time, use CTRL+Z to undo the last change made to the grid. If you're editing with the mouse, this will be the last stroke. With the keyboard, it will be the last item inserted or deleted. Did you undo too much? Press CTRL+Y to redo the changes. If you are experienced with Stunts' track format and would like to have more freedom, you can enable "manual edition" (read more about it in the section about the "switch bar"). While manual editing mode is active, the backslash key can be used to enter a hexadecimal code and select any track or terrain element directly. This includes invalid codes. Also, the background scenery selection will allow custom scenery codes when this mode is enabled. In case you don't know what this is about, it is better to first experiment with a new empty track and be aware that Stunts may crash or behave unpredictably when manually edited tracks are loaded. When the backslash option is activated, the currently selected brush will be temporarily replaced with a question mark. You can then proceed to type a two digit hexadecimal code. After three seconds, if no code was entered or an invalid key was pressed, the function is disabled. If you make a mistake while typing, you can use the Backspace or Delete keys to start over entering the code. .6. --=[ + Selection and block editing + ]=-- Even with all the tools explained before, edition is still made tile by tile. Bliss is capable of selecting areas to transform, copy, cut or paste or to generate structures. This will not just make your work easier, but also assist you in achieving symmetry or in making space for something you didn't expect to need by moving a large set of tiles together. To select a region of the grid, stand at a tile with the mouse pointer or keyboard cursor and hold down the CTRL key. If using the mouse, also hold down the left mouse button (once the button is down, you can realese the CTRL key and continue dragging). If using the keyboard, just use the arrows to move the cursor and the shape of the selection and release CTRL when you're done selecting. The selected area can be transformed in-situ by using F or SHIFT+F to flip and R or SHIFT+R to rotate. In order to rotate, however, the selection has to be a perfect square. If it is not, you will be given the option to correct the shape based on the X or Y axis. Pressing DEL at this point will delete the whole region. To select the whole track, press CTRL+W. This same key combination can be used to cancel a selection with the keyboard. Bliss also has a clipboard so that copying regions is possible. With a region selected, press CTRL+C to copy the region to the clipboard. CTRL+X will work as a combination of CTRL+C and DEL, resulting in a "cut" operation. The clipboard indicator in the panel will light up, meaning the clipboard is in use. Press CTRL+V to paste the contents of the clipboard. The region will appear hovering over the grid and can be moved with the mouse pointer or keyboard cursor to the desired position before releasing with the left mouse button or ENTER. Before releasing the paste, the hovering region can be transformed on the fly with F, SHIFT+F, R and SHIFT+R. In this case, there is no need for the region to be a perfect square. If more than one instance of Bliss is open, the clipboard will automatically be exported when created and imported by other instances if it has been modified. You can use this feature to easily copy parts of a track onto another or to have more space to work on. Selections can also be used to produce a closed-circuit. Select a rectangular region and press ENTER. If the current element is a piece of track, a closed-circuit of the same type will be produced. For paved, dirty and icy roads, ENTER can be pressed again to switch between small and large corners. If the region is only one tile wide, a long straightway of the selected type will be generated. If the current tile is scenery, the region will be filled with that tile. By default, all on-the-fly region transformations affect only the track layer. This behaviour can be changed by using CTRL+T to toggle terrain being affected and CTRL+K for the track layer. This default can also be changed and saved into the configuration file. In-situ transformations (except DEL) always affect both track and terrain layers. It may be important to notice that the copy operation always reads both track and terrain. It is pasting that changes depending on the layer flags. Because of this, you can press CTRL+K or CTRL+T while pasting before releasing the hovering region and see the effect. .7. --=[ + The switch bar + ]=-- Right above the coordinates box, there's the switch bar. A row of buttons, usually with an indicator, appear side by side. Most of these are toggles whose indicator will be lit when active. The clipboard indicator turns on whenever there's something on the clipboard (after a copy or cut operation). Clicking on the button will cause the clipboard to be freed, which doesn't have much use, but it's better than it doing nothing :P The two buttons on the right end ("TRK" and "TER"), we have already discussed, as they correspond to shortcuts CTRL+K and CTRL+T. They indicate whether the track and/or terrain layers are affected by paste and delete operations. The GRID button is very intuitive. Use it to hide or show the map grid. It can also be toggled by pressing CTRL+G. At start up, the grid is on by default, but this behaviour can be changed in the Settings menu. The three following toggles deserve deeper explanation. Normally, when you move the mouse pointer or the keyboard cursor on the map, you'll see the coordinates and the name of the track element at that position, but while many track elements are 1x1, there are other track elements that are 2x1, 1x2 or 2x2 tiles. Each of these individual tiles actually has a unique code and also the terrain tiles have their codes too. The DEB switch turns on "debug mode". In debug mode, Bliss will display not the track element name, but the codes in the track and terrain layers at that exact location. The keyboard cursor will be fixed at a 1x1 square shape and larger track elements will be decomposed in their parent sub elements and fillers (complementary sub elements). You will be able to see the track exactly like Stunts sees it internally. Fillers are represented as arrows that point in the direction of their parent sub element. This mode is useful when experimenting or to create "illusion tracks". Debug mode can be activated/deactived with the CTRL+Q shortcut. You may have noticed that even in debug mode, it is not possible to remove individual sub elements, unless they are orphan fillers. This is so because most of the time, doing so could cause undesired conflicts. But when you know what you're doing, it's useful to be able to handle each tile separately. To do this, press the MAN button, for "manual edition". Bliss will no longer try to prevent you from generating track element conflicts. You can achieve the same result by pressing CTRL+E. If you've been playing with manual editing mode or if you simply placed a track element on top of a terrain corner or an incompatible border, you'll see some warnings. Missing fillers will show up like a yellow square around the tile and track-terrain conflicts will display as the track tile with a yellow background. This means the track as it is will not look or behave normally when raced in Stunts and may, in some cases, even be rejected by the game. Another warning appears when you place large track elements on water. You'll see one or more of the tiles showing a whirlwind backgound. This means the terrain may appear as grass but behave as water or vice-versa. If you just don't want to see these warnings, you can disable them by pressing the WAR button or the CTRL+D key combination. Warnings are very useful, but maybe you want to take a snapshot of the track map or see what's underneath a track element that's in conflict with the terrain. The COL switch toggles between track/terrain editing mode and colouring mode. In colouring mode, you can add some markings to the grid. This switch can be triggered with the CTRL+O key combination. Read more about it in section 14. The TRK SHOT button opens up the TrackShot dialog to save a snapshot of the current track. Read section 13 for more details on this option. .8. --=[ + The menu options + ]=-- The most conspicuous part of the panel is precisely the one we haven't talked about yet. That box at the top left corner of the program window with a set of icons arranged in a four-times-five rectangular area is the Menu. Hover the icons with the mouse pointer and you'll see them highlight. The option titles will be displayed just below. The first row of icons represents our "File Menu". The empty plot icon starts a new track design, while the next two save and load tracks. The door, at the end of the row, is the Exit option. When starting a new track, you will be given the option to pick one of 28 available terrains, including empty terrains based on grass, water or mountain, the five terrains that come built-in with Stutns and many custom ones. You just click on one and then on "Create Track" or press ENTER and you're back at the grid, ready to start a new track. When loading, you're allowed to navigate the directories and select a TRK or RPL file (corresponding to tracks and replays). Yes, Bliss can read tracks from replays! By default, the directory will start browsing at Bliss' home path, but this can be changed in the Settings menu. When saving a track, you'll notice one new thing: a pull-down selector at the bottom-left corner of the Save dialog. This is to select the file format you will use. If you're not sure, just leave it as it is. Bliss will usually make a good guess on the best format for the track. If you want to know more about track file formats, read on the corresponding section. The second row is the "Selection menu" and does pretty much the same as the shortcut combination keys we've discussed in the section on selections. The first option activates selecting, as if you were holding down the CTRL key. The other three correspond to Copy, Cut and Paste. It is always more comfortable to do these things with shortcut keys, but the icons are a lot more evident. The third row is the "Transformation menu" and also, we've discussed most of what it does. The same flipping and rotating you can do with F, SHIFT+F, R and SHIFT+R can be achieved with these icon options. There's one difference, however. If there's no selection, the shortcut keys will affect the current track element, whereas the icon options will affect the whole track. Everything else is the same. You can even use these options while pasting. The fourth row contains two options we have already talked about: the two middle icons are the Undo and Redo options and are equivalent to the CTRL+Z and CTRL+Y shortcuts. The question mark is the Help Menu and contains a complete list of the shortcut keys. The option at the left end of the row is the Track Information Menu. With this option, you can give your track a title (which is important, since Stunts track names can only be 8 characters long and cannot contain just any character) and add a comment and championship information. You can also sign as the author of the track. Upon installation, the default author is anonymous, but if you don't want to have to enter your name on every track, you can change the default author's name in the Settings menu option. Bliss will also fill the track creation date and keep track of the editing time for you. When you save your track, this information will be saved with it (unless you save it in raw format; read the next section to know more about track file formats). On the fifth row, you'll recognise the option at the right end as the Settings menu option we've mentioned many times. Use it to configure the default track path, author's name and toggle status at start up. You'll see also a "racer calibration time" field. This will be explained in more depth in the section on Track Analysis. Saving the changes will update the configuration file that can also be edited manually. The other three menu options in this row are complex enough to deserve a manual section each. .9. --=[ + On file formats + ]=-- Tracks created and handled by Stunts normally consist of two files: a TRK (proper track) file and a HIG (highscore table) file. Stunts makes sure that the highscore table is cleared whenever the track edited and that the track contains no conflicts. When using an external tack editor like is the case of Bliss and of the famous Track Blaster editor, the highscore table is irrelevant (which means high scores will be kept in spite of the track having been edited) and conflicts can be entered in the track file if the author so wishes. Although Stunts will never create these effects, the track file can still be considered valid and standard (as usually is by the online community) since usually Stunts can read and race these tracks. Another thing that Stunts never does is create TRK files of a size other than 1802 bytes, yet Stunts CAN read files smaller or larger than that and they work. For example, a 901 byte long track file contains a track with no terrain layer. When loaded by Stunts, the previously loaded terrain will be kept and only the track layer will be modified. Therefore, such file is also valid and if used, would become standard. If a track file is longer than 1802 bytes, Stunts will load the track normally and ignore all bytes after the first 1802. A track file will still be valid up to a maximum length of 13802 bytes, which, if surpassed, will typically crash Stunts. Bliss makes use of this possibility to add additional bytes to tracks and keep the track title, author's name, etc., all in one file. When you save a track, the selector option "One file" refers to this format. I believe this is the most convenient and reliable option because it causes no problems to Stunts and it is the safest way to store the title and author's name, as wherever your track goes, the text goes with it. Because Bliss was created many years after Stunts, there exist other tools designed for Stunts for different purposes. A few of them have assumed the track file length was 1802 bytes and may fail to work normally if this is not met. Two important examples are the Track Blaster editor and ZakStunts website. For compatibility with these and other tools that may require a fixed track file lenght, Bliss includes another option, the "Split files" format, with which the track title, author's name, etc., are saved to a separate file of extension ".smd". Use this format if you also work on the tracks with a tool that does not support sizes other that 1802. The inconvenience is that, for distributing, you need to pass two files instead of one and the SMD file tends to get lost in the process. Also, renaming a TRK file requires the SMD file to also be renamed so that the meta-data can be found. I do not recommend using this format unless you want to export the track to be worked on with another tool or to post it to ZakStunts. A third option is saving your track ir Raw format, which means only saving the 1802 bytes of track and terrain and dropping (losing) your track additional information. You may use this to export your track with another name. My recommendation on how to use the formats: when you create your own tracks and keep them in your computer hard drive or share them with friends to race them in Stunts, use the "One file" format. If you want to open your track with another tool, try that same format. If the tool does not accept it, save the track as "Split files" and work on the TRK file. You may later want to save it back to "One file" format. If you want to submit your track to a tournament, check on the prefered file format for that tournament. ZakStunts uses raw track files, so you can save a copy of your track as "raw" and send it. Race For Kicks allows uploading single files for tracks. If the file contains metadata, it will be read. Otherwise, you will have to submit it manually. Tournaments that receive replays via e-mail typically will be indifferent about the file format. From version 2.5.5, two split formats are available: binary (which keeps metadata exactly as it would be overlaid in one-file format) and text (which saves it as plain ASCII/UTF-8 text). If you're saving your track in split format for compatibility with some software, it may not be important which one you use, but if it is your personal preference, then the text mode may be more convenient, as you can manually edit it whenever you want. Replays created with the same track are identical regardless of the format in which the track is saved. There will be no problem with replay posting. .10. --=[ + Scenery generation + ]=-- In case you don't have much time to decorate your track, Bliss includes an intelligent automatic scenery generation option. The first option of the last menu row will take you to a dialog box where you can configure this. By default, values are optimised to match the background landscape you have selected, but you can specify a percentage for each scenery element. What parts of the grid will be affected by each element can be configured with the selector beside of the percentage bar. Most items have the options "Everywhere" or "By the road", while ships have the options "On water" and "Everywhere". Bliss will first place as many elements "by the road" as configured and then proceed to fill the water and land according the the other percentages. Items placed by the road will be automatically set to face it. Another selector is available at the bottom left corner. By default, only free space will be used to place the scenery items. You can use this selector, however, to force Bliss erase all scenery before generating. Taking up only the free space is often useful when an item is to be placed by the road with a certain proportion, but everywhere with another or when boats are to be placed both on water and on land. Press "Generate" to see the result or "Cancel" to return to the grid. You'll notice that, if you choose to place non-symmetrical objects (such as the office building) "everywhere", they will be facing random directions. If they happen to be placed by the road, they will therefore not necessarily face it, like they would when you choose "by the road". So some fine-tuning after generating can help if a non-standard set up is used. .11. --=[ + Track analysis + ]=-- Probably the most complex tool in Bliss is the Track Analysis option. It is composed of two parts. One is a track error checking system that you can access by pressin C. The other one is the Track Analysis icon in the last menu row. To make use of any of these two features, you first need to have a track. Create or load a track and try pressing C. Bliss will check all possible paths and issue a verdict. If the track contains errors, it will show you where the error is. If it does not, it will follow the path from start to finish to complete the track. You can cancel path-following at any time by pressing any key. There are three types of errors the checking system detects. The most serious type is that of "track-fatal" errors. If any of these errors exists in the track, it will fail when loaded by Stunts, even if there is a valid path reaching the finish line. Bliss will always point on these errors. An example of a track-fatal error is the infamous "Straightway before jump is too short". The ones of the second type are the "path-fatal" errors. These errors will cause a path to be considered invalid, but will not invalidate the track unless all paths are invalid. Bliss will point out path-fatal errors only in those cases. A path-fatal error would be, for example, a discontinous piece of track or a path that leads to a cycle. The third type are "warnings". Warnings are not errors from Stunts' perspective, but from the track author's, they may be, so Bliss will warn you if it thinks there may be a problem with your track. For example, if you set up a jump so that the receiving ramp is higher than the jumping ramp, Bliss will warn that it is not possible to perform this jump without leaving the track. You can ignore warnings if know what you're doing. Bliss will only come up with warnings if no fatal-errors are found. Therefore, if you do get a warning and you know it's OK, you can ignore it and take the track for valid. If you need a more profound analysis of your track, go to the Track Analysis menu option and a dialog will come up with some general information about your track. Say you open DEFAULT.TRK, the most famous Stunts track. Bliss says there are two paths and both of them are winning paths. Internally, Bliss divides a track in "sections" and a path is a sequence of sections which starts at the start/finish line and hopefully, also ends there. If a section were to cause a cycle and a path were possible through that cycle, then in theory, there would be an infinite number of paths, but Bliss does not count paths that go through cycles. You can see that DEFAULT.TRK contains no cycles and that the shortest winning path is 70 tiles long. There is more information, in particular, about "safe" paths. A path is considered "safe" if it contains nothing that would trigger a warning. Because these things are not detected by Stunts, a path could be taken for valid by Stunts and still be "unsafe". For instance, opponents will invariably crash on unsafe paths, but still stubbornly continue to choose them if they are shorter than other paths. DEFAULT contains no unsafe paths. You can see more details on the different paths by clicking on "See paths". The first path is marked both as the "fastest" and the opponent's choice. If more than one path is valid (reaches the finish line), the opponent will always choose the shortest, that is, the one with the smaller number of tiles. The second path is 92 tiles long, so the opponent will not take that one. Of course, sometimes a shorter path may be a slower option, if it contains too many obstacles. For this reason, a time estimate has been implemented in Bliss. The time estimates for each path are, by default, on the track being raced with a Porsche March Indy in OWOOT mode (i.e.: One Wheel On or Over the Track), meaning no shortcuts and all stunts executed. The car can be changed by clicking on the pull-down car list near the bottom of the dialog. The default time estimation is calibrated like that of an average racer, but you can recalibrate to get a better estimate for yourself. Race any track with a Porsche March Indy and executing every stunts, then load that track in Bliss and set your calibration time in the Settings menu. If no track is loaded or the current track is invalid, Bliss will suggest the track 4AM, which comes included. It's a very good option, as it contains almost every kind of stunt and track type. For a quicker and rough estimate, you can select "See times" and Bliss will offer you the time estimates for some famous racers. Older versions of Bliss based these estimates on different races on the 4AM track. But in October 2016, a special event was held named Race for Immortality. The resulting replays are included with Bliss and the new estimates are based on those results. When bliss.trk and Porsche March Indy are selected, the times shown match those of that race. Because Bliss makes its analysis by separating the track in sections and then combining these sections, tracks with too many splits may quickly cause the number of sections or paths to get really big. Bliss can handle up to 254 sections and 1000 paths. Sounds like a lot, but if you build your track with the purpose of making it complex, it is very easy to reach that (or any number) of sections or paths. In such case, track analysis will be disabled and you'll get an error message saying the track is too complex. .12. --=[ + Tournaments + ]=-- While Stunts was designed to race alone or with computer opponents and it has no network support, as it was created in 1990, today, tournaments are a fundamental part of Stunts. Stunts would be just one more classic game from the DOS era if it weren't for online tournaments. Bliss was made with this in mind and to make it apparent, it offers a menu option to interact with tournament sites. Click on the competition cup icon in the last menu row and a dialog will come up with a list of tournaments. Depending on the distribution of Bliss, it may be empty or contain one or more tournament options. Each option will display a tournament name and web address. Click "Add New" to create a tournament item or "Remove" to take it out of the list. To connect to a tournament, click on the "Connect" button. If the web address is valid, the connection working and the tournament supports Bliss tournament protocol, a new dialog will show up with details of the current race. You can take a look at the scoreboard or get the current track. Accessing tournaments this way is pretty straightforward, although the competition websites surely contain a lot more information. Yet, this integration greatly facilitates interaction between the game and the websites. If you're a tournament manager and would like to make your site compatible with Bliss, here's how: Always include a text file called "tour.cfg" at the root of your competition's site directory. This is going to be a text file in which each line contains an assignment of the form: property=value. The first line should begin with "tour" and ideally, this property should be assigned the tournament name (e.g.: "tour=My tournament"). The rest of the file should contain the current tournament information necessary for Bliss. To specify the current track title, add a line starting with "tracktitle=" followed by the track title with no quotes. For the track author's name, "trackauthor=" and the author's name. To give the track file name, use "trackfile=" followed by the file name. If it is in a subdirectory, enter the full path to the file. It must be a valid TRK file. Add a "deadline=" line to specify the deadline time and date. If the track file contains meta-data, they will be loaded; otherwise, the meta-data given in this text file will be taken. Empty lines, lines not containing an equal sign and lines specifying a property not recognised by Bliss will be ignored, so you can safely add more information that could be of use to your tournament. To support scoreboard display, a line should be added to the tour.cfg file that assigns "scoreboard=" followed by the scoreboard file name. If the file is not there, Bliss will display an error when trying to load the scoreboard. If you don't want to share the scoreboard, but don't want the error, you can leave it at zero bytes and Bliss will just say there's no scoreboard. To properly share the scoreboard, fill the text in the scoreboard file. Scoreboard entries should be sorted in the order in which they are to be displayed in Bliss (usually the best lap first). Each entry must start with a line beginning in an opening square bracket, like "[1]". Ideally, each entry will include the entry number between brackets. After that, assignment lines like the ones in the tour.cfg file can be added to specify the racer, the lap time, the car, etc. Following are examples of what a tour.cfg file and its corresponding scoreboard file should look like: -- tour.cfg file -- tour=Great Stunts Tournament trackfile=thehills.trk tracktitle=The Hills trackauthor=Jack deadline=2021-05-27 00:00 GMT+1 scoreboard=sb.cfg ------------------- -- sb.cfg file -- [1] name=Tom laptime=1:20.00 car=Indy [2] name=Peter laptime=1:27.25 car=Jaguar [3] name=Matt laptime=1:49.10 car=Lancia ----------------- Some additional details can be added to the scoreboard. Instead of "car", you can use "carid" if you prefer. Bliss will display whatever you give it, but it's understood you're passing a 4-character car ID instead of a car name and this could be used in future versions. Also, instead of "laptime", which just copies whatever you specify, you can use "lap" and give the length of the replay file. In that case, Bliss will calculate the lap time for that file length. It's also possible to specify a handicap percentage, like in ZakStunts by entering "handicap=37%", for example. Any value from -100% to 100% is valid. You can use "style" to specify the racing style. Make it short. For example, Race For Kicks uses "style=RH" for Replay Handling and "style=NoRH" for No Replay Handling. Finally, if you wish to specify that a lap has been verified, add "status=verified". This will add an OK mark at the end of the scoreboard entry. It is possible to disable some entries from the scoreboard so that they won't be shown in Bliss. Suppose a scoreboard item is invalid because the racer didn't follow the tournament rules, but you don't want to remove it from the list in your website, but only specify that it's not competing. You can include a property "competing=no" and Bliss will ignore that entry. .13. --=[ + Taking a track-shot + ]=-- In case you want to take a snapshot of your track (or "track-shot"), you no longer need to capture the screen and crop the track out of the image. You can press CTRL+S or click on the TRK SHOT button located in the switch bar. A dialog will pop-up so you can select an image format. After pressing "Save", an image file will be created in Bliss' working directory. It will have the name of the current track unless it doesn't have a name, case in which it will just be called "track". The grid and warning display can be activated or disabled prior to the track-shot depending on preference and the image will show as configured. If a selection is active, only the selected region of the track will be saved in the image. This is very practical when creating tutorials or race analysis blogs. Bliss supports two image image formats natively: Targa (.tga) and Bitmap (.bmp). By default, images are saved in the TGA format because they take up less space, but you can change this by editing the configuration file and looking for (or adding) an "imageformat" line, for example: "imageformat=bmp". Although Bliss cannot produce output in other formats, it recognises GIF, PCX, JPG and PNG. If you select any of these formats, Bliss will try to use ImageMagick. If you're using GNU/Linux, you likely have this installed. If you don't, you may be interested in installing it. It's a very powerful free software tool. .14. --=[ + Colouring + ]=-- The most common reason for taking a track-shot is to just be able to display a track map on a website or somewhere else, but it is also common for track designers and tournament managers to use a track image with some drawing on it to illustrate a racing strategy or set of rules. A power tool in cases like those is the colouring system that Bliss provides starting version 2.5.7. The "COL" toggle button activates colouring mode. This toggle can also be triggered with the CTRL+O key combination. In colouring mode, you no longer draw track or terrain on the grid. Instead, you paint borders and backgrounds. To the right side of the cursor position display, there is now a border and background colour indicator. With the left mouse button, paint with the currently selected colours or erase the colouration with the right moust button. Click on the indicators with the right mouse button to set them to "clear" or with the left mouse button to access the Colouring menu, where you can configure the colours you wish to use. Also, the mouse wheel rolled on the indicators allows for changing them in a quick manner. The border colour is usually less invasive than the background colour, as the terrain features can still be seen, but you can use any one of them or the two together. Within the Colouring menu, click on "Set colours" to apply the changes or "Clear" to set both colours to "clear". The "Uncolour map" option will rid the complete grid of colouration, which can be undone like any other change in the track. The "Cancel" button will take you back to editing without changing the colours. Colours can be selected either from the palettes to the right or by manually setting their red, green and blue components with the bars on the left. To return to track editing mode, click on the "COL" toggle again or press CTRL+O once more. Track colouration will be stored in the track file if a non-RAW binary format is used (either combined/default Bliss format or split binary) but will be lost otherwise. If you do not want the colouration stored in your file, make sure to uncolour the map before saving.