Platform Masters Title
Platform Masters - Will you be the world's next platform master?

Sentus Caverns - planning the walls

Date: May 7, 2012
Screenshot #341: At last world 12 is known to the public. It's the Sentus Caverns. The Sentus Caverns were once a diamond mine but a mining disaster caused the miners to unexpectedly hit water and the whole mine flooded. With heat coming from below, since you're close to a volcanic area (Mount Sentusia, with a lava lake, isn't far away), there is a constant warming of everything. Despite the medium-high elevation and medium latitude, it's almost like the tropics here. This combination keeps the large lake of mud constantly moist. Because mud drastically slows movement and hinders jumping (it doesn't cause HP damage though), you should avoid it as much as you can especially when playing at a high difficulty setting.

Unlike pretty much every other world in Platform Masters, the Sentus Caverns, world 12, is different in not only how it plays, but also how its designed. World 12 is the game's only world where there is a height limit or ceiling. Unlike the 9,223,372,036,854,775,807 CU that all other worlds are limited to, the limit of a signed 64-bit integer (9.223E18), the maximum height in the Sentus Caverns is only 1024 CU or 64 blocks. This means you won't see yellow, red, or white springs as the green springs, even from the bottom of the deep mud, will easily get you to the top of the ceiling. The more powerful springs are only effective at speeding up the approach as reaching the ceiling starting at 150 mph takes a lot less time than that of starting at 75 mph. Like all other worlds, however, the scenery loops indefinitely so you can still go 9,223,372,036,854,775,807 CU to the left or right before things start going weird from variable overflow.

Making the Sentus Cavern's scenery is also unique in a way. Unlike most cases where I can simply make one part of the scenery without regard to the others, many things in world 12 are dependent on each other. This means, instead of doing my favorite part, the ground decals beyond the wall at 4, I have to do the wall at 4 first since the holes will influence what parts are visible. Before I can do the wall at 4, I needed 2 things. The first was to figure out an algorithm for making the walls in the first place, mainly the texture. The second is whether or not I wanted to include the mist. I knew the mist was going to be easy and quick to do, aside from figuring out the intensity and spacing between layers so I decided to add the mist. By doing the mist first, I could fuse it into the walls at 4 and 16 since these loop repeatedly without gaps like the closer walls.

Another dependence on the completion of the wall at 4 is that of its visibility from the closer walls. I wanted you to be able to see into every one of the holes of the wall at 4. To do that, I needed to lay out the walls in a way so that this was possible and thus I made a miniature map. That's what this screenshot is all about. The triangle "view finder" is used for just that very purpose. For every 682 2/3 CU covered on the Z axis, 512 is covered on the X axis and 384 is covered on the Y axis. In the case of the map, the X and Z axes are involved hence the 4:3 slope on the triangle. To check to see how much of a hole is visible, I just move the triangle left and right as needed. The top part of this map is the far part of the cave and the close part is where the foreground action is. Why is the triangle, then, upside-down? After all, you'd think that, if the top part of the map is the far part, the wide part of the triangle would be there. I'm not checking for what part of the map would be visible, I'm checking the visibility of the holes so I basically assume that the view point is from that hole and all the points covered in the foreground are dealt with. In my case here, the one wall I'm trying to select is hiding too much of the hole I'm testing and thus I have to shorten that wall. It's a lot easier than it appears.

Sentus Caverns - making the walls

Date: May 9, 2012
Screenshot #342: Once all the planning is done, the closer walls can be made. Unlike the wall at 16 which is completely solid (no holes) or the wall at 4 (which is all one solid part though it has holes), the closer walls are broken and so I need to determine relative positions and the like. I also have array size limits to consider as well which pretty much means I have to break up the walls. The wall at 4 already has to get segmented. At least, since the clouds are not used (there's a ceiling or floor in the way making them invisible), I can borrow their unused image data arrays as needed, giving me just short of 31 MB of extra memory to work with.

Like with ground decal shape boundaries, I start by tracing the basic shape I want with the mouse then fine tune it. This screenshot shows why I need to fine-tune it - look how jagged the white edge is. I made the white transparent so that it's easier on my eyes. This just marks where it goes. What's with the transparent pink on the left? It's the boundary limits as determined by my map I made in the above screenshot. What's with the obvious pink in the images at the bottom? These are the finalized images but the pink, here, is so I can quickly crop the image to the size I want. Why pink? It stands out very strongly against almost everything else making the most out of contrast.

Sentus Caverns - tons of ground decal memory

Date: May 9, 2012
Screenshot #343: With the 31 MB of extra memory available from the fact the clouds are not used at all (why waste the memory?) and the fact everything with ground decals has a 16,384 CU (1/2 Kbl) repeat width, I'll definitely need it, and then some. Unlike all other ground decals which have a predefined set available, the Sentus Caverns has special circumstances present that must be accounted for. Just look at all those extra slots available that I can use, of which 2 had to get used for the wall at 4 due to being way too big. This took a lot more time than normal to plan out as I have several slots to choose from.

Sentus Caverns - mysterious array overflow

Date: May 16, 2012
Screenshot #344: It's been a while since I added in the array overflow check system. Here's a case where this system has helped spot a bug early, making it easy to find. Well, so I thought. My spreadsheet, of which I go into great depth planning out, says that I should be within the limits. Note row 13,119. This row is the last row that contains the image data. Column L is the memory size to that point. Column O is where I mark the exact memory usage (for that given array) for that particular zone. Column E is the scaling. Note how column O's value exactly matches that of the target array and how this value is a bit more than what that zone needs. Why the zone's memory usage was greater took some investigating and I eventually found the cause - the image wasn't the 40 pixels tall that it was supposed to be, it was 44. That was enough to cause the overflow to occur. With that 44, the later zones were smaller than intended - when reprocessed (of which only takes a few minutes rather than the days it took to make that part of the ground decals), were still within the limits, as expected. In fact, this was the only image data that had this. Other errors came up as well, mainly "file not found" errors. Typos often cause that to happen. The importing went without problems.

Sentus Caverns - the signs

Date: May 16, 2012
Screenshot #345: Bugs and errors aside, this is what the final result looks like. The main detail to note are the signs, especially the one giving directions and distances (the one up close that appears big). This sign is quite detailed. The large "N", "E", "W", and "S" are the directions of travel to those sections. The sections are the smaller text to the side, often containing "sector" or "exit". The part on the edges is distance. Distances are not in miles, or kilometers (or feet or meters), but blocks and, for the far parts, kiloblocks. These are the units of measure involved in the story so they are a fitting detail. For short distances, the block (the thickness of the standard platforms), is used, snapping to multiples of 32 (16 when below 128). When 1024 blocks or more, the kiloblock is used, of which a kiloblock is 1024 blocks. In addition, distances are sorted from closest to farthest. Not only that, but emergency exits are made to stand out, the closest being a strong red, with more distant ones a darker red. Regular exits also count, but not as strongly.

Note the top leftmost entry. It indicates that 64 blocks to the north is Nodera Sector 5. The camera is pointing exactly north so with that in mind, you can easily tell how much 64 blocks is into the distance (a tiny amount compared to some worlds - Keveran Desert is a massive 43690 2/3 blocks (42 2/3 Kbl) for visibility, so that really puts the 64 into perspective. It just so happens that 64 blocks into the distance from where the character is, the entrance to Nodera Sector 5 is visible, complete with a sign indicating this.

Sentus Caverns - playing in the deep mud

Date: May 16, 2012
Screenshot #346: The Sentus Caverns introduces deep mud to the player. Until then, mud is only up to a half block deep, which isn't even waist deep. Here, this isn't even the deepest the mud gets either. The most common deep part is another 4 CU deeper. There are areas that get another 16 or so CU deeper yet, but they're quite rare and yes, you can certainly drown in mud as well. Besides drowning risks, mud's only problem is that it really slows down your movement and limits jumping. The deeper the mud, the slower the top speed gets and the shorter the jumps. Being a diamond mine, and the fact the Sentus Caverns flooded, you might find some hidden diamonds in the mud, or hidden springs and platforms to help you get out of it should you fall in. Mud doesn't do HP damage so you can stay in it otherwise forever (clock aside), just like water.

Near ground level, the scene is quite hazy. This is due to mist being present near the ground.

Sentus Caverns - the largest hole

Date: May 16, 2012
Screenshot #347: This is my favorite area, the area where pretty much no walls are visible except for the walls at 4 (the one full of holes) and 16 (at the far end of the cave). That odd white area on the left through that small hole is a mine cart, possibly hauling diamonds. This view is almost what my original vision was like nearly 2 1/2 years ago, though a bit more detailed (the mist, mine cart, and sign are extras)! Back then, ground decals were nonexistent so that amplifies things even more.

Sentus Caverns - an isolated section

Date: May 16, 2012
Screenshot #348: Here's another section of the Sentus Caverns. Aside from the wall on the left having almost what appears to be the shape of a human face from the side, there really isn't anything special here.

SDL - first attempts and weird bugs

Date: May 21, 2012
Screenshot #349: SDL - the only thing I wanted from it... 1 1/2 years later after having downloaded it and 2 years after first learning of it... is nothing more than fullscreen and vsync. After a long struggle with getting that working, fighting VC++ for 5 hours because of all the settings you have to adjust just to get SDL to be found and its functions to be recognized, then 4 more hours just getting things started. It was a hassle but I'm still going 9 hours of effort in.

In my case here, the scene for SDL is upside-down (due to the way BMP and AlphaBlend draw), and the scene has odd-looking areas in the scene. Those odd areas are referencing what those parts of the scene looked like earlier. Why the goal platform is invisible and the platforms where the ruby is is invisible, that I don't know. Yet, when the platforms where the ruby is is behind a panel, it's clearly visible, just not out in the open. Oh, and don't forget the far part of the lake - that's oddly invisible. The all-red platform in my pyramid of colors to the far right of my test area is, well, doing the same thing. There are several differences - can you find any others? This is really weird!

Trees - the first test

Date: May 26, 2012
Screenshot #350: First of all, I'd really like to thank Catyrpelius on PM's forum for all of his/her efforts in getting trees for me. Compared to my best efforts for trees, of which took a week to do, these are way, way better even though they're still only getting improved on and have the odd white edges. For me to have done this myself, you'd be looking at months of work for just those 3 variations, and PM would otherwise never get done.

This just provides an early example of how the trees look in PM. These are just test subjects. What's with the white background? Photobucket is supposedly limiting the maximum size of the trees to 1024 pixels, scaling them down. Having the white background doesn't help with that - I only removed it so that way the shape can be determined. This, of course, is only intended for testing purposes - that white edges issue will get resolved eventually.

For reference, the biggest-looking trees are at a scaling of 1, so you can get a sense of scale. There are trees at a scaling of 4 and 16 as well so you can see how they appear with distance.