LeSPr is a versatile map-making tool created by Gamejolt user @ChaoticShockwave. The editor utilizes a "sprite-to-render" setup (TLDR: you can make a costume and the engine will do the rest of the work), which is beginner-friendly and 'hassle-free.'
"HOW LESPR WORKS
so put simply, the map is stored within the costumes of a couple sprites (ik its unoptimized but i will explain). each of the sprites represent different "layers" of the map, the layers being vertical. for example, layer 1 would be from the ground all the way to like a table. layer 2 would be from the top of the table to the ceiling, etc... LeSPr works by scanning all these layers before the game starts and adding all that data to the lists, since this isย a list based stamp 3D engine. the point of the layers is to allow for objects at different y levels. The maps also have different colors to represent different object types.
as for my explanation why each layer has its own sprite and not just clones, it is to make collision easier. My collision is sprite based for the sake of ease. Since I plan on adding enemies when using this engine, enemies use clones, and clone on clone detection is impossible to do without using complicated list functions that I really don't feel like building from the ground up. now before all you smartasses tell me shit like "oh its not that hard, my dog can do it in his sleep" stfu Im a game designer not a programmer. id rather not waste my time trying to build all that from the ground up so I can get straight to actually making completed game content (something most d7 creators can't do lol). anyways sorry for the bad joke lets move on.
LeSPr also has a variable called lesprStep which alters how much data lespr actually records. Increasing it can make the map less laggy, but it also makes the map a lot more chunky. Decreasing it makes the map look a lot more sharp, but also makes it pretty laggy. I personally like to give layer 0 (the ground layer) a higher lesprStep than the other layers since the ground doesn't need to look as defined as the structures." --ย NOTE: As specified, the "dead space" is its own thing entirely; Not part of LeSPr...
๐ฅ White: Text
๐ฉ Green: Developer Comments
๐ช Blue: Code
The Following Code Scans a Series of Sprites to Detect for the Placement of Items
The Different "Layers" The Code Scans Through Appear on Their Own; It's LeSPr's Job to Find the Different Color-Coded Graphics and log them in the Engine's Code.
:>
-- TOTAL BLACK DOESN'T REPRESENT ANY OBJECT, IT REPRESENTS DEAD SPACE. DO NOT USE IT
-- will add a multitude of color options that will represent the different textures
| DEFINE SCAN
|||
|| REPEAT UNTIL: yPosition < (Item (Level - 1 * 6 + 5) of LevelDetails)
||| |
|| REPEAT UNTIL: xPosition < (Item (Level - 1 * 6 + 4) of LevelDetails)
|| |
|| SWITCH costume to (costume1)
|| |
|| IF Touching: (Join (layer) (lesprLayer)) THEN
|| |
|| | SET [touchingColor?] to 0
|| |
|| | IF [touching Color = "greenishbrown"] AND ([touchingColor?] = 0) THEN
|| | |
|| | | ADD ("sand") to [objCostume]
|| | | SET [touchingColor?] to (1)
|| |
|| | IF ((touching color #9) AND (touching color #0)) THEN
|| | |
|| | | ADD ("water") to [objCostume]
|| | | SET [touchingColor?] to (1)
|| |
|| | IF ((touching color #4) AND (touching color #0)) THEN
|| | |
|| | | ADD ("brick") to [objCostume]
|| | | SET [touchingColor?] to (1)
|| |
|| | IF ((touchingColor?) = 1) THEN
|| | |
|| | | ADD (1) to [objDistance]
|| | | SET [objX] to (xPosition * scaleFactor)
|| | | SET [objZ] to (yPosition * scaleFactor)
|| | | ADD ("lesprLayer" * -250) to [objY]
|| |
|| SWITCH costume to (costume2)
|| CHANGE x by (lesprStep)
|| |
|| SET x to (Item (Level - 1 * 6 + 2) of LevelDetails)
|| CHANGE y by (lesprStep / -1)
|
END