1TOWER TOPPLER 2------------- 3 4Installation 5------------ 6 7Most of the installation is the normal 8 9./configure 10make 11make install 12 13procedure except for the global highscore. If you want this feature 14then you need to call 15 16make global_highscore 17 18afterwards. This changes the binary owner to root:games and sets the 19sticky bit for group. It also creates a directory in /usr/local/var 20named toppler and a file named toppler.hsc inside this directory. The 21binary will have write access to this directory and the file. But the 22normal user shouldn't. (to prevent them from cheating) 23 24The rpm will install the global highscore file for you. 25 26If the program finds the global highscore file and has the neccessary 27rights to access it, it will always use this list. Otherwise the local 28file will be used. Which table is used, you can find out by looking at 29the output the program writes on stdout upon startup. 30 31Goal 32---- 33 34The goal of the game is to reach the target door of each of the 8 35towers in currently 2 missions with this little green animal. This door 36is usually at the very top of the tower. 37 38But finding the way by using elevators and walking trough a maze of 39doors and platforms is not the only problem you have to solve. There 40are a bunch of other creatures living on the tower that will hinder you 41to reach your target by pushing you over the edge of the platforms. 42 43The only weapon of defence you have is to throw a little snowball. But 44most of the other creatures just don't care about this. So you must 45avoid them. 46 47A little submarine brings you from one tower to the next. On this way 48you have the chance to get some bonus points by catching fish. All you 49have to do is to catch a fish in a bubble with your torpedo and then 50collect the fish. 51 52 53Commandline Parameters 54---------------------- 55 56-f starts the game in fullscreen mode. But be careful! If the game 57crashes it doesn't restore the original resolution, it stays in 640x480 58pixel mode. 59 60-s makes the game silent. If you don't have a soundcard or for another 61reason get an "can't open audio" error try this option. 62 63Options Menu 64------------ 65 66Game Options: 67 68- Password: this menu entry allows you to define a password. The 69password us used to restart a mission from a tower that is not the 70first. You get a password for every third tower while you are playing 71 72- Lives: for the tough guys you cen decrease the number of lives you 73start the game 74 75- Status on top: if you prefere the game status at the bottom of the 76screen. Here is the place to switch 77 78- Game speed: if you want faster gameplay, then this is the option for 79you. This option doesn't influence the behaviour. Only the delays 80between the frames is decreased. Providing you mashine does allow the 81game will run faster. 82 83Redefine Keys: 84 85The options here allow you to redefine the keys that are important for 86playing. Select the key you want to redefine. Press Enter and then the 87new key you want to use. Bare in mind, that you are not overwriting the 88old keys but just define an alternitive that has a lower priority than 89the original keys. So you can not use "p", because this is already used 90for pause. 91 92Graphics: 93 94The submenus here allow you to finely tune the looks of tower toppler. 95Depending on your computers capabilities and you graphic card you can 96change here between very low requirements and modest ones. I have an 97celeron 366 and can play Tower Toppler with everything switched on 98except for the expensive waves. 99 100- Fullscreen: Toggle between windowed and fullscreen display. 101 102- Alpha options toggle the usage of alpha for the different objects 103that are drawn on screen. Alpha blitting requires a bit more time, so 104if the game runs too slow, switch some of them off. 105 106 - Fonts: for all the text displayed 107 108 - Sprites: for all robots and the toppler 109 110 - Scroller: for the underwater scroller in the bonus level 111 112 - Shadowing: toggles if the menu uses a translucent bar and the 113screen gets darker if you start the menu in the game and on some other 114occasions. Shadowing takes up quite a lot of time. 115 116- waves: here you can toggle between nonreflecting, simple and 117expensive waves. Nonreflecting waves take up the lest amount of CPU 118time but don't look very good. Expensive waves look quite good but 119require quite a bit of CPU time. 120 121- scroller: here you can toggle between a 2 layer scroller and the 122complete (currently 3 layer) scroller. The 2 layer scroller only draws 123the front and the backround layer of the underwater scroller in the 124bonus level. 125 126Bonuses: 127 128This toggle allows you to suppress bonus levels. Some people don't enjoy 129hunting fish as much as climbing towers, this allows them to only play the 130fun part ;-). 131 132Speed Indicator 133--------------- 134 135In the normal tower climbing game there is an indicator displaying if 136your computer is fast enough for the current playing mode. If you can 137see a small red square in the top left corner of the game then the game 138can not run as fast as it needs to. Consider the following options: 139 140- drop game speed in the game options menu 141 142- don't use the expensive waves, they ARE expensive in CPU time 143 144- switch off some of the alpha options 145 146Controls 147-------- 148 149In the menu you can select the mission you want to play next with the 150left and right cursor keys. Press space or return on the start menu 151item to start the game. 152 153The animal is controlled by the cursor keys and space (or return). Left 154and Right make the animal walk. Up and down make the elevators move if 155you are on one. (The elevator platforms are a little bit smaller than 156the normal platforms.) If you are in front of a door press up to enter 157it. Pressing the space key will either throw a snowball if you are 158standing still or make the animal jump if you are walking. 159 160For the Leveldesigner 161--------------------- 162 163The game finally has a leveleditor. Because I've been too lazy to make 164new graphics for special objects all tower objects are drawn using the 165existing graphics. 166 167Because the only thing you can rely on on a keyboard are the numbers 168and the letter keys I have used only these. The layout is choosen so 169that keys with a similar task are next to each other and not that the 170letters mean something. 171 172Otherwise the editor is relatively simple: 173 174help: 175 176h shows a list of all keys with explanations 177 178You can move in the list with up, down and pgup, pgdown 179 180cursor movement: 181 182cursor keys 183page up and down: 5 rows up and down 184y half turn of the tower (for doors) 185HOME go to starting position 186 187actions: 188 189p play, to test the level you are just editing 190ESC leave the editor 191l load tower 192o save tower 193z check consistency of tower 194 195The consistency check checks if all doors are exactly 3 layers high, if 196there isn't a undefined symbol in there and if there is always the 197opposite platform for the elevators (without unremovable obstacles 198in between). If there is something wrong with the tower, the cursor 199moves to the position of the problem. 200 201editing: 202 203ins inserts a row below the current position 204del deletes the current row 205 206with these actions you must be careful because they can destroy doors. 207 208objects: 209 210space clear field 211 212q normal pillar 213a flashing box 214 215w normal step 216s vanishing step shown as flashing step 217x sliding step shown as sideways moving step 218 219e elevator top station 220d elevator middle station 221c elevator top station 222 223the elevator stations are shown by a moving platform. The platform is 224moving into the direction the elevator can move. So for the bottom 225stations the platform is repeatingly moving up and jumping down. 226 2271-7 the different kinds of robots 228 229for the eye robot the movement is shown by the movement of the robot in 230the editor. The slow moving version moves half as far as the fast 231moving one. 232 233The two jumping balls can be identified by ball movement: one is 234standing still. This is the one that jumps on its place until the 235toppler gets near. The ball that has a sideway movement from it's 236beginning on is moving in the editor too. 237 238i normal door 239k target door shown as flashing door 240 241This action always places a whole door (in 3 layers) and tries to place 242a door on the opposite side, if it's empty. Doors should never be 243higher then 3 layers. The clear command (' ') will always remove the 244whole door but not the one on the opposite side of the tower. 245 246The target door command doesn't place a door on the opposite side 247 248parameter of the tower: 249 250the parameter are always in a range of values. To allow fast 251alterations of the values the difference between the old and the 252changed value increases every time you go into the same direction. So 253if you increase the time for the tower by pressing 'b' the first time 254the value increses by one the second time by two the third time by 255three and so on. This size is reset to one as soon as you change the 256direction of your changes. This sounds complicated but the best thing is to 257try it 258 259b increase time 260n decrease time 261 262v open palette dialog 263 264In the palette dialog up and down change the color you want to change. 265Left and Right change the value by one, PgUp and PgDown change by 10 266and the numbers make the value jump to 10 equally distributed positions on the 267scale 268 269Tower File Format 270----------------- 271 272Just in case you are interested in the format of the tower file: 273 274The format is similar to the windows configuration format. Each section 275starts with its name in squarebrackets "[]". Unknown sections are 276ignored. Most sections are selfexplainatory, except for the data 277section. 278 279This section has the towerheight in its first line followed by a table 280where each character represents one position on the tower. The 281following table explains the characters used for the tower bitmap and 282their meaning. 283 284 empty 285v top elevator station 286+ middle elevator station 287^ bottom elevator station 2881 freeze ball 2892 jumping ball moving from the start 2903 jumping ball standing and then moving to you 2914 robot, up down 2925 robot, up down fast 2936 robot left right 2947 robot left right fast 295! pillar 296- platform 297b flashing box 298. vanishng platform 299> slippery platform 300< slippery platform 301# normal door 302T target door 303 304The demo section is also not really obvious. The numbers represent 305states of the important keys. Each bit in the number corresponds to one 306key. If it is set the key is pressed, otherwise not. Because Tower 307Toppler is strictly deterministic and uses fixed intervalls for display 308and update each line corresponds to one cycle of update and display. 309 310I can not promise that the program will be able to load the files if 311you are changing them manually, so better leave your fingers away from 312these. 313 314Because of the ongoing development of Tower Toppler this format is 315likely to change. New sections may be added, other ones deprecated. I 316hope that the section format will help to achive backwards 317compatibility but I promise, of course, nothing. If you have problems 318loading your old tower files, send them to me and I'll do my best to 319convert them. 320 321Also, if you want to send me your missions, please do not send the 322mission files, but the towers. Because the mission files are binary and 323are changing as well it may be quite complicated to convert a mission 324file generated with an old version of tower toppler to a new version. 325But it will nearly always be possible to edit the tower files. 326 327Mission File Format 328------------------- 329 330And another paragraph for the interested ones. Here the format of the 331mission files is explained. 332 333First in the mission files is the mission name. The first byte is the 334lenght of the string followed by the text itself. Then comes a 335priority. This value is used to sort the missions in the game menu. 336Then comes the number of towers in the mission followed by the offset 337of the tower offset table (b bytes). This table contains 4 bytes for 338every tower showing the starting position of the tower inside the file. 339The offset table is normally at the end of the file. 340 341Now to the towers. They are structured into sections just as the tower 342file is. The section header contains 5 bytes. One shows the section 343type. The other 4 the lenght in bytes of the section data. Then the 344data follows. This allows the program to skip unknown sections. 345 346The section numbers can be found in level.cc. 347 348Most of the sections are fairly simple. Except for the tower and demo. 349 350The tower data is split into 2 parts. First a bitmap detailing which 351places do contain something. For each occupied place there is a byte in 352the following data. The byte details what occupies the field. Details 353in the source. 354 355The demo uses a run length encoding. One byte for the run length and 356one word for the key state. 357 358So this should help to find your way into the code, if it's neccessary. 359 360 361Mission Creation 362---------------- 363 364With the key m in the level editor you start creating a new mission. Be 365aware that mission contain your towers in a compressed format and I 366will not provide a method to extract the original tower from this to 367prevent player from cheating. So keep your original tower files in case 368there are bugs in your towers and you need to change things. 369 370What follows now are a pile of questions you have to answer by keyboard 371input. 372 373First the name of the mission. The mission creator will write a file to 374your disk with the same name as the name of the mission, but you are 375welcome to rename the file because the mission name is saved inside the 376file too. The only thing you have to take care of is that the file has 377".ttm" (tower toppler mission) as extension. 378 379Now input all the filenames of the towers you want to add to this 380mission. The limit to the number of towers is 255 but I'd suggest to 381not use this many because it would take a lot of time to play through 382the complete mission. 383 384If all towers have been input enter an empty name to finish this list. 385Now the file will be written and you should be able to select your new 386mission in the main menu. 387 388IMPORTANT: please check your towers, before you create a mission, for 389inconsistencies, because this is not done in the created mission file. 390 391Helpful Hints 392------------- 393 394Finally some details about the inner workings of the game that might 395help design levels. 396 397- There are never more than 4 robots on screen (including the 398 horizontal spinning object) 399- robots that go below the screen vanish 400- robots that fall into water vanish 401- the spinning object has a timeout, if this time passed it will come 402 as soon as there are less then 4 robots on screen 403- other the robots appear as soon as they are inside the screen and 404 there are less then 4 robots on screen 405- the behaviour of the robots is completely deterministic 406- the cross throws you 4 layers down, the other robots much more 407- the starting place on the base is always the same, it's on top of the 408 2nd row on angle 0 (where the cursor is at the start HOME moves the 409 cursor to this position) 410 411FILETYPES 412--------- 413 414datafiles (graphics, sounds), readonly 415 416 first in local directory, 417 then global (per compiler switch /usr/local/share/toppler) 418 419local configuration file, read/write/create 420 421 in home directory 422 423level editor, new missions, towers read/write/create 424 425 in home dir (/home/user/.toppler/...) 426 427highscore file, read/write/create 428 429 in global dir, home, 430 431Signing 432------- 433 434If it is necessary to sign the binary to get it to run on a device 435(like handhelds or smartphones) and this signing requires a fee, you 436are allowed to charge a small amount of money to get this signing fee 437back. Also, you are not required to publish the code that is necessary 438to communicate with the underlying device operating system. All other 439changes to the game must be published under the GPL. 440 441Contact 442------- 443 444Webpage: toppler.sf.net 445Email : roever@users.sf.net 446