Clonepoint loads maps from .tmx files generated by the Tiled Editor. You can obtain the editor here. http://www.mapeditor.org/ You can now try to convert custom maps for the original Gunpoint into the tmx format that Clonepoint reads. This is a good way to quickly port level geometry and entities, though it is recommended to make additonal fixes by hand. Tile backgrounds are not preserved, and some crosslink connections may not make it over. If a map has too many lights, it is recommended to remove some so as not to slow the game to a crawl. To convert a .lvl custom map, run `make gun2clone`, then supply the level filename and then an output tmx file to write to. For example, "./gun2clone input.lvl output.tmx" Will create output.tmx from input.lvl. Notes on making maps for Clonepoint: - If you want to test your maps quickly, set the "debug_draw_scene_backgrounds", "debug_draw_collision_outlines", and "debug_teleport_with_mouse3" variables in config.cfg to allow you to easily visualize unfinished maps, and to teleport to the mouse's position with the middle mouse button. - Clonepoint considers all files in the data/ directory with the .tmx extension as potential maps to load. - It is highly recommended that you copy one of the existing maps and use them as a template to quickly make new ones. template.tmx contains all entities you need to copy into other maps as well. - Don't make a map called template.tmx - Clonepoint discards this as a potential map to load. - Clonepoint only loads entities and collision volumes if they are in the correct Object Group. - There are no "collision" tiles, but collision volumes. To use them, create rectangles in the "Collision" object group. * To make glass volumes, make a collision volume with the type field as "Glass". Glass volumes can be of any dimension, but the standard I use is 4 pixels (or 0.25 units) for width or height. * To make invisible volumes that only block enemies (used to keep them from leaving a building and patrolling the end of the map), create a collision volume with the type field as "GuardBlock". - To add other entities with graphics, you can use Tile's "Insert Tile (T)" feature to add a graphical representation of them in the editor. This is for your convenience. Clonepoint's level loading function doesn't care about what graphics you choose, but rather what "type" the object is in the editor. If an entity you added in the editor is not appearing in the game, make sure you wrote in the type for the entity and put it in the right object group. - To add guards, circuit boxes, and stairs, add them in the "Entity" object group. * Guards have type "Guard". Enforcers have type "Enforcer". Professionals have type "Professional". * By default, created enemies face left. To make them face right, add a custom property called "direction" with the value "right". * By default, created enemies stand still. To make them patrol, add a custom property called "patrolling" with the value "yes". - To add stairs, add entities with the type "Stairs" in the "Entity" object group. * To create stairwells, just create stairs with the same x position. - To create circuit boxes that unlock a particlar circuit in the map, create an entity in the "Entity" object group with the following names in the type property. * CircuitBoxG - Green * CircuitBoxV - Violet * CircuitBoxY - Yellow * CircuitBoxB - Blue - To create a spawn point for the player, add an entity with the type "Player" in the "Player" object group. Creating multiple spawn points will cause the player to be spawned in the last point. - To add props in the map that serve no gameplay purpose, create them in the "Props" object group. There are a few names you can write in the type property to get a valid prop. * Watercooler * Shelf * Trashcan * Couch * Plant1 * Plant2 * LightPanel - To create objectives in the map, add entities with the type "Terminal" in the "Objectives" object group. * If no Terminals are found, the player can simply go to the exit to complete the map. - To create the subway entrance where the player can exit the map, create an entity with the type "Subway" in the "Objectives" object group. * Creating multiple subways will simply spawn one subway in the last location added. * If no subways are found, the player may exit the map by going to the right boundary of the map. - To create linkable objects, create entities in the following object groups * RedLinkable - for objects in the Red circuit. * BlueLinkable - for objects in the Blue circuit. * VioletLinkable - for objects in the Violet circuit. * YellowLinkable - for objects in the Yellow circuit. * GreenLinkable - for objects in the Green circuit. - The following linkable objects may be added by writing in the correct name in the "type" property and adding them in the previous object groups. * Alarm * SoundDetector * TrapDoor * Elevator + To create elevator shafts, just create Elevators with the same x position. * Switch + To create handscanners, create a switch with a custom property "handscanner" as "yes". * VaultDoor * Socket * Scanner * Door + By default, Doors spawn closed. To make them spawn opened, create a custom property "open" with the value "yes". * SecurityCamera + By default, SecurityCameras spawn facing left. To make them spawn facing right, create a custom property "direction" with the value "right". * LightFixture - To make LightFixtures control other lights, perform the following actions. * Create a entity with the "type" property "Light" in the "Lights" object group. * Create a "polyline" (press L) object that goes from a LightFixture to the Light in the "LightLinks" object group. Remember to right click after the link is made to disable polyline creation. - To make lights that are not controlled by a LightFixture, simply create a light in the "Lights" object group without a LightFixture linking to it. * By default, Lights emit light from all angles. To limit the number of angles, create the custom property "numangles" with the value in degrees. - To make linkable objects link to others when the map starts, perform the following action. * Create a "polyline" (press L) object that goes from a linkable object to another in the "Links" object group. * Only objects in the same circuit will actually be linked when the map starts. * To make a tilemap of graphics in the map, select the "Tile Layer 1" layer. * The data encoding for the tile layer MUST be in CSV format. * The "firstgid" property of this tileset MUST be 1. Multiple tilesets for a map are not supported. * There are other map properties you can set in the "Map Properties" area. They are: * startingupgrades - The number of upgrades you want the player to start with when upgrading jump power and time to charge jump. * startingenergy - The starting energy the player has to perform certain actions. Currently, the only energy-spending action available is linking between enemy guns. If not set, starting energy is zero. * startingammo - The starting ammo the player has for their weapon. If not set, starting ammo is zero. * timetosniper - The number of seconds the player has after firing their weapon before the police sniper arrives. If not set, time to sniper is 1 second. * backgroundyoff - The height that the "ground" is considered at, used for drawing layered backgrounds. Set this to the Y coordinate of the collision volume (in tiles) you consider to be the "ground" for best visual results. * music - The music file in data/music that will be played while playing the level. + Clonepoint only plays music in the OGG format. + You don't need to specify the directory - just give the filename, including extension.