The Free Abuse Project
Author: Justin Cassidy

fRaBs special levels
Main - Updates - Single Player - Deathmatch - Level Editing - FAQ - Credits - Links

`[1-4] Level Editing Basics`
`---------------------------`
`[5-7] Advanced Level Editing Topics`
`------------------------------------`
`[8] Making Pong Levels`
`[8.a] About the Pong Addon`
`[8.b] Creating a Pong Level`
`[8.c] Object List`
`[8.d] Tips and Tricks`
`----------------------------`
`[9] Creating Deathmatch Levels`
`[9.a] How the Abuse Engine Handles Deathmatch`
`[9.b] A Word on the Respawner`
`[9.c] Making Fun Deathmatch Levels`
`----------------------------------------------`
`[10] Other fRaBs Addons`

`[8]`
`Making Pong Levels`

`------------------------------------------------------------------------`
`[8.a] About the Pong Addon`
`------------------------------------------------------------------------`

`The Pong addon was created by Jonathan Clark, the original lead`
`programmer for Abuse, as an example of what bizarre things can be done`
`with his Abuse engine. At the moment the addon is rather simple, but`
`with the aid of a couple ace LISP programmers, the Pong addon could load`
`multiple levels in order... at the moment it can only load one. The good`
`thing is that it comes with many other levels that you can load separately,`
`created by me in my spare time. Another good thing about this addon is that`
`it is extremely easy to create levels for it. To play the game itself,`
`run pong.bat in /addon/pong. To run the Pong level editor, run pongedit.bat`
`in the same dir. Finally, some of my sample levels are in /pong/levels.`
`These can only be played in the editor.`

`------------------------------------------------------------------------`
`[8.b] Creating a Pong Level`
`------------------------------------------------------------------------`

`This is so easy, I guarantee you'll be making playable levels in`
`mere minutes! Open the Pong editor and press 'f' to look at the foreground`
`tiles. These are the tiles that you hit with your ball. There are 3 main`
`types: A gray tile which cannot be destroyed by anything other than a block`
`of dynamite adjacent to it; a set of colored tiles that are destroyed upon`
`contact with the ball or a laser; and dynamite tiles which can destroy all`
`the blocks in their blast radius. There is a small set of background tiles`
`for the Pong addon as well.`

`Next you add a Start position and your paddle... both are found in`
`the Objects menu. Then you can add a ball, a ball powerup, or anything`
`else that you want your level to have at the outset. Ball powerups are gray`
`while laser powerups are red. The colored blocks and the dynamite blocks`
`can give you either of these powerups at random. When the blocks are hit`
`the powerup items fall slowly towards the bottom of the screen.`

`When you lose all the balls on the screen, a new ball is respawned`
`on your paddle. At the moment the addon gives you infinite lives, but this`
`'feature' will be changed in the future.`

`------------------------------------------------------------------------`
`[8.c] Object List`
`------------------------------------------------------------------------`

`BALL`
`Adds a Ball to the screen. You can have as many balls on screen as`
`you like, as long as your CPU can handle them all. Chances are, if`
`you have a Pentium or something, you'll be able to add more balls`
`than you would ever need. You gain a new ball on screen when`
`obtaining the gray pills.`

`EXPLOSION`
`When the Dynamite tiles blow up, they leave an EXPLOSION. You can`
`also add these to your levels from the outset, for graphic effect.`

`LIGHTHOLD`
`A LIGHTHOLD allows other objects to have lights attached to them.`
`Simply link the LIGHTHOLD to the light and to the object you wish to`
`hold the light. The order in which these links are created does not`
`make a difference. The light will now follow the other object wherever`
`it goes. Attach a LIGHT to a MARKER using a LIGHTHOLD tool, and then`
`attach the marker to an OBJ_MOVER and you have moving lights. :)`

`MARKER`
`An object which does nothing, but can hold links for objects`
`which need to be linked to other objects.`

`MISSILE`
`Your paddle can shoot these when you obtain the red pills. They can`
`also be added to the screen on the start of your level.`

`OBJ_MOVER`
`This object allows the level designer create paths for objects to`
`move on. It accepts two links. The first link marks the endpoint`
`for the path, and the second is the object which is to be moved.`
`By linking OBJ_MOVERs in a circle, the object can be kept moving`
`indefinitely. When the OBJ_MOVER moves the object to its`
`destination, the link is then transfered to the end object, which`
`in a chain of OBJ_MOVER will then move the target object to the`
`next link in the chain. A chain composed of multiple OBJ_MOVERS`
`can hold multiple target objects, one for each pair of OBJ_MOVERS.`
`You can modify the speed at which it will move in its AI.`

`PADDLE`
`Adding this object to your level will make the engine crash, so don't`
`do it! When in the Pong editor you automatically have a paddle placed`
`on screen.`

`PILL1`
`This is the gray pill that gives you another ball on-screen.`

`PILL2`
`This pill will give your paddle the ability to shoot little red`
`missiles straight upward. The missiles can shoot any bricks except`
`for the indestructable gray ones.`

`START`
`This is where your paddle will default to at the beginning of your`
`level. From this point your paddle can move left and right until it`
`runs into a brick or obstacle.`

`TILE_BLOW_UP`
`When you hit a normal tile, it plays this little disintegrating`
`animation. If, for some reason, you want one of these animations in`
`your levels from the get-go, then you can add one of these.`

`------------------------------------------------------------------------`
`[8.d] Tips and Tricks`
`------------------------------------------------------------------------`

`Remember to make your levels at the upper left-hand corner of the`
`screen and wall off the left, right, and upper borders with gray tiles.`
`Otherwise the ball will fly off the screen, which does not scroll in this`
`addon. Additionally, do not put dynamite tiles near these 'border tiles'`
`because the dynamite will destroy them when hit and your ball will have a`
`little hole in which it can escape your level. :)`

`Lighting cues can be used to good effect in this addon. There is`
`no SWITCH_DIMMER but you can use LIGHT_HOLDs and OBJECT_MOVERs to make`
`moving light sources.`

`As you'll quickly find out, dynamite tiles can be linked together`
`for chain explosions. These rock, but don't put too many in your level or`
`or it will be much too easy. Look at the other levels in the Pong directory`
`for level design ideas. Also, play classic breakout clones such as Arkanoid`
`in your favorite emulators... these always provide inspiration for levels.`

`[9]`
`Creating Deathmatch Levels`

`------------------------------------------------------------------------`
`[9.a] How the Abuse Engine Handles Deathmatch`
`------------------------------------------------------------------------```

`Making a Deathmatch Level in Abuse is not too much different from`
`creating a typical single-player level, but there are a few differences that`
`a level editor should take into account. For basic information on how Abuse`
`Deathmatch works, visit the Deathmatch page.```

`Firstly, when you start an IPX Deathmatch game, it makes the current`
`session of Abuse quit out, and it actually starts up Abuse again. Instead of`
`loading abuse.lsp though, like the game normally does when you start it up,`
`it loads /addon/deathmat/deathmat.lsp. This is important for a number of`
`reasons. It means that many of the addon LISP files referenced in abuse.lsp`
`are not loaded, and thus in Deathmatch mode you do not have access to many`
`objects. This is OK for the most part... you typically don't need to have`
`any of the exotic enemies that the fRaBs addons provide in your deathmatch`
`levels. However, there are other objects that deathmat.lsp doesn't load. If`
`you want to be really safe, you can run Abuse in edit mode and start up a`
`mock deathmatch with just yourself by going back to the title screen and`
`starting a 1-player deathmatch. Then, when you press TAB and go back into`
`edit mode, you'll be left with all of the objects and foreground that is`
`normally accessible in a fRaBs deathmatch game.`
``
`This isn't really necessary though. Just remember that if you're`
`using things other than doors, weapon ammo, health, and gun turrets, then`
`these objects might not appear when you play the level in deathmatch. Try`
`comparing abuse.lsp to deathmat.lsp if you want to compare which files are`
`loaded. One important thing to remember is that the Death Ray IS NOT LOADED`
`when you play fRaBs deathmatches, for gameplay balance reasons.```

`------------------------------------------------------------------------`
`[9.b] A Word on the Respawner`
`------------------------------------------------------------------------```

`In basically any Deathmatch game you ever play, there is a constant`
`supply of incoming weapons and health that, upon being picked up, respawns`
`after an set period of time. The way you accomplish this effect in the Abuse`
`engine is with the RESPAWNER. This object has a few quirks that you should`
`take note of, that weren't noted in the original Abuse object list.```

`Some powerup items, such as the POWER_ITEMS and the HEALTH items, can`
`just stay suspended in the air, while the ammo objects fall to the ground.`
`Depending on which object you link the RESPAWNER to, you need to make sure to`
`position the RESPAWNER differently. For the items that stay suspended in the`
`air, you can put the respawner wherever you want. However, with falling objects`
`such as ammo, you need to position the RESPAWNER on the ground just right, or`
`else the ammo that respawns will be 'faded' - you can still pick it up, but the`
`ammo object itself is difficult to see.```

`The RESPAWNER has a little yellow line beneath it. The yellow line`
`underlines the word 'Respawn' and then it has a little tail that goes down`
`approximately three pixels. The bottom of this tail should be lined up just`
`above the floor's 'Bounding Box' (press Shift+L and click 'Bound' to see the`
`floor's Bounding Box). If it isn't, then your ammo objects will fade when they`
`respawn.```

`With any object that you link the RESPAWNER to, the original object`
`should be out of sight and access from the player. If you pick up an object`
`which a RESPAWNER is linked to, the RESPAWNER cannot respawn that object again.`
`If you look at the Deathmatch levels that come with fRaBs, you'll notice that`
`all the objects which the RESPAWNERs link to are somewhere off the screen,`
`hidden behind a foreground tile (press 'r' on a tile to raise it and hide an`
`object behind it). This is the convention you want to follow when making your`
`own deathmatch levels.```

`A note about using the respawner to respawn gun turrets and ROB1s...`
`it is not possible at the moment in Abuse to respawn a turret that has`
`properties other than the default... i.e. if you make a Lightsaber turret and`
`place it off screen, and have a RESPAWNER respawn that turret, the turret that`
`respawns at the location of the RESPAWNER will not have the same attributes.`
`If you notice the respawning ROB1s in /netlevel/bugs.spe you'll find that they`
`all move towards the right. You cannot make a ROB1 that respawns and moves to`
`the left. Yeah, it sucks, but that's the way it is until someone programs a`
`better RESPAWNER.```

`Finally, remember that you have to link the RESPAWNER to the ammo or`
`health objects, and NOT THE OTHER WAY around. :)```

`------------------------------------------------------------------------`
`[9.c] Making Fun Deathmatch Levels`
`------------------------------------------------------------------------```

`There is really no guideline to making a fun deathmatch level, but`
`there are ways to make a really lame one. First of all, dead ends just suck.`
`You want every little section of your deathmatch level to be fairly easy to`
`access from any point on the map. This may involve using well-placed objects`
`such as TELE2s or TP_DOORs, and multiple START points.```

`Secondly, you want fairly good ammo such as rockets or grenades`
`available near any starting location. You don't want to make it so someone`
`can just sit near a start point and rack up on lightsaber or firebomb ammo`
`and just shoot whoever respawns at the start point, however. It's not a good`
`idea to have too much powerful ammo anywhere in a level, because usually it`
`disrupts the balance of play.```

`Teleportation items are good when used in moderation, but if you make`
`a level where someone can just keep going through teleporters to evade attack,`
`the game becomes cheap. TELE2s take a second before transporting you to your`
`destination, but when you go through a TP_DOOR you arrive at your destination`
`instantaneously. Looping teleporters can create gameplay problems in smaller`
`levels.`
``
`Well placed sound and lighting cues can give your levels character.`
`It may also be good to use INDICATORs to inform the player of the state of`
`a certain recurring event in the level.```

`There are some engine limitations to take note of when making your`
`deathmatch level. When two players are being affected by one object, such as`
`a PUSHER, then strange things can happen. One player may be affected by`
`the PUSHER while the other can walk freely against it. Make sure you do lots`
`of playtesting to iron out problems like these.```

`Finally, to make a really fun deathmatch level, you should have at`
`least one 'gimmick'. :) Take 'A Little Hot' (alitlhot.spe) for example. The`
`best ammo is in a precarious spot where the player can be gunned down very`
`easily if they don't watch it. Be creative, and add a unique touch that maybe`
`hasn't been tried with any deathmatch levels you've seen, and make sure you`
`test your gimmicks until you know they work the way you want them to.`

`[10]`
`Other fRaBs Addons`

`------------------------------------------------------------------------`
`[10.a] Other fRaBs Addons`
`------------------------------------------------------------------------`
`** Work in Progress **`

<-- Back to Level Editing Basics

Justin Cassidy
messiah15@dog.com