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

Lake Keveran - scenic views underwater

Date: July 26, 2012
Screenshot #361: The hills in Lake Keveran needed to be spaced closer together. That was the minimum change I needed. Since Barugan Islands was done and I fixed the sailboats, I had 2 other things I could add very quickly - sailboats (lots more than before, of which was also considered as well). Since I had progress there, I decided I'd put it into Lake Keveran as well to enhance this already gorgeous setting. Another change I made was raising the visiblity underwater of which meant having to redo the ground decals for the lake bottom (of which took only 25 minutes, longer than expected as I forgot to clone the texture horizontally for when the size gets beyond a certain point).

This screenshot shows a lot of the changes first thing. You can see plenty of fish around, sailboats (of which you can more clearly see the bottom part than the top), and that sand texture that helped make Lake Keveran gorgeous at the low altitudes... well, it's slightly better than it was. This scene gives a great sense as to how crystal clear the water really is.

Lake Keveran - the sailboats

Date: July 26, 2012
Screenshot #362: Lake Keveran is a tourist attraction. The crystal clear, warm water (you can even see fish from this point, if you look closely enough), decent wind for sailing, and majestic mountains (the Keveran Mountains) make for a fantastic sight. Lake Keveran's sandy bottom is easily visible from this far above the waves. That "The Platform Master" sailboat has 2 things to note about it. First, note the word "scenic" being so obvious. It's one of those advertising things to lure someone to the event. The event is the championship, on July 20 (in the game). The marking of this on the sailboat is a new addition.

Lake Keveran - a medium-height vantage point

Date: July 26, 2012
Screenshot #363: With a moderate amount of height, the original intended limit of the supersize level, this is the kind of view you might encounter. It's not as majestic as the previous or next screenshot though, but still very nice. At least you can make out much better the density of sailboats present.

Lake Keveran - scenic heights lower point

Date: July 26, 2012
Screenshot #364: At about this height and above, Lake Keveran starts showing the full glory and beauty it has. The crowded beach can be made out as well, though not as significantly.

Lake Keveran - the full beauty of the lake

Date: July 26, 2012
Screenshot #365: Lake Keveran is especially beautiful around 1000 to 1400 feet above the waves. This is a view from 1150 feet of which is about where I think it's the best. From this great height, it's much easier to see the beach details and how crowded it is. One thing is missing though - the gap between the hills. I got rid of that and the effort was well worth it as you can see from this. This is almost about the height the supersize level will get to.

Lake Keveran - the air taxis

Date: July 26, 2012
Screenshot #366: Air taxis are always hovering above, except in worlds 12, 17, and 18. This would simulate a view from one of them. Even with this great height, of which was rather dull before I redone the hills, Lake Keveran still shows its amazing beauty. Yes, the gap between the hills is visible, the spacing between the hills is more realistic and that's what matters most. This is exactly how I was envisioning it.

Lake Keveran - just below the clouds

Date: July 26, 2012
Screenshot #367: When near the clouds, the most distant visible hills still enhance the scene quite a bit. This is a bit over a mile above the waves.

Lake Keveran - far above everything

Date: July 26, 2012
Screenshot #368: From the approximate height of a very high mountain, this would be the kind of view you'd see. Sure the sky is noticeably darker, at least the hills still look fairly nice from nearly 5 miles above the waves.

Keveran Desert - remaking the sand dunes 1

Date: July 28, 2012
Screenshot #369: There were 2 issues with Keveran Desert that meant having to redo it. First, as per a remark on a YouTube video comment, the Keveran River needs greenery adjacent to it, of which I agree with. This means having to redo the Keveran River decals from scratch, of which, after planning, the repeat width will be cut in half and the range extended to the maximum of 32 (that's where the rock cliffs are). The river will also be a bit narrower than before to allow for more greenery, 625 feet on both sides of the river.

The second issue was with the sand dunes and cacti, and that's the focus of this screenshot. Originally, I planned for the cacti to be visible halfway between each layer of sand dunes. I made the sand dunes so high that, even right up against the next farther sand dunes, they were practically impossible to see unless some lucky alignment occurred. The fix for this means a lot of extra work - redoing the sand dunes from scratch. I also had a few other unexpected bugs with the sand dunes due to errors in the formulas in the spreadsheet itself. With those fixed, and applying a waving texture on the sand dunes, the results are, well, much better than they were before. As this screenshot shows, of which only the first 2 layers, the 2 closest ones, have been finished, you can easily see the cacti between the sand dunes, exactly as I originally planned. The gap between the sand dunes also isn't all that significant, better than I thought it was going to be. Even with the closest sand dunes fully occupying the vertical part of the screen, you can still see, in certain alignments, an entire cactus (the cactus on the far right is the perfect example of this. The cacti, here, are very closely spaced, though only for testing purposes. The actual cacti are much more scattered. The far sand dunes and far cacti should be the same as the heights and spacing remain constant. At least the texture of the sand dunes is really nice. That odd line where the rock cliffs are is the horizon indicator, so you can get an idea on what things look like relative to something that isn't going to be changed (it doesn't need changes as there aren't any bugs or oversights that I'm aware of).

Keveran Desert - remaking the sand dunes 2

Date: August 1, 2012
Screenshot #370: This screenshot shows a lot of what goes on behind the scenes for making the sand dunes. Excel is used for all the calculations. Why not write a program to automate all this? The time and effort for something rather complex and only used once makes it just not worth it. Only the sand dunes have a defined shape. The hills, mountains, etc. are more random than anything else so no calculations are needed beyond height and spacing. The sand dunes also need the height and spacing calculated though their shape is also calculated hence the need for Excel. What I do is take in the data from the Excel spreadsheet and apply it to the image itself.

The right sides of each layer of sand dunes follows an S curve. The top parts of the sand dunes are affected by the wind and the right side faces directly toward the wind. The middle is not as affected. The left side is a simple curve. Gravity causes the bottom part to be smoother, from sand near the top falling over. The center split is basically the divider between the lit and unlit sides, of which is based on the exact halfway point between the leftmost and rightmost parts.

The process involves a 3-stage routine. Stage 1 is setting up the parameters, the "constants" that change only with each layer. Stage 2 is getting the random slopes, checking the spacing and gap between the sand dunes, and setting the height of the sand dune as well. Stage 3 is forming the actual shape in the image itself. The right side is done first, then the left side, followed by the center split. Stage 4 is repeating stages 2 and 3 for each individual sand dune, doing those in the front first then those behind. Stage 5, after all sand dunes are done in that layer, is adjusting the image so it's random and also looks good from a scene X position of 0. Stage 6 is finalizing the layer - finalizing the lighting, applying the texture, then finalizing the layer itself to get the finished result. This process is repeated for all 26 total layers. The layers beyond 10 start shrinking in size and thus a change is needed - the height, instead of being calculated, must be manually set, as taken from another 1000-row spreadsheet I have. It's a lot, but it's worth the effort.

Round, in the light blue, indicates the current row offset from the top. Row pixels is the number of pixels that are to be present in that row. A 5 means that there are 5 pixels horizontally for that section of a sand dune. To speed things up, I look for clones (identical values) and utilize lines, as the screenshot is showing for a long chain of 2s from a 1 and leading to the start of a 3 (rounds 10 through 19). X position and Y position should be obvious - they're the starting position for each row of pixels, the first pixel, of which gets extended by the value in "row pixels". The "done yet" column, in medium gray, lets me know how far I need to go. Exclusive to the center split is the "clones" column. Because the horizontal span is 0 very frequently, meaning that it doesn't change the X position, I added this to make this faster to process.

On the right of all this, for the shortcut section (of which I started using with a scaling of 6.5 though I could've started at 4 but didn't think about it then), I set various parameters that are the same as that in the main part above. Scaling is nothing new to PM - that's the Z distance, essentially. 8.5 means it's 2/17 the size of what it would be in the foreground, or 1. Width is the width of that particular layer, of which I set manually. Height is the height of that layer, of which is calculated based on the scaling so that all sand dunes are 256 CU (8 blocks) tall. Rounding has been applied. X start is where I set the very top of a sand dunes, for which the left and right sides branch out from. Y span is where I set the actual span, of which cannot exceed the layer's height. It's the Y span setting that allows for the sand dunes to have a varied height, of which 3/4 of that height, rounded up, is the minimum allowed. The slopes have 2 sections. The top part is the manually input valued, copied from randomly generated values. Since I can't have the slopes change on me every time I need to make small fix to better position them, I must have them static and thus the manual copying. Join limit is the point in the image that I reference so ensure that the sand dunes conform to my standards. If I join those behind the full ones and notice that they are 21 instead of 22, then I'll need to either move it, narrow the gap between the full ones, and/or make it taller. The 22 comes from 3/4 of the maximum, rounded down in this case. Sim Y position is the Y position at which the layer is to be placed for my simulation as to what the scene will look like (from 576 CU (18 blocks) above the ground, the heights of the previous sand dunes. Width mult is a multiplier for processing the texture and the image width is the size I need the texture, of which must not exceed 4096 (it does here so I need to cut the multiplier in half). What's with the "left limit" and "right limit" columns? There are other fields you don't see as the image window is blocking it. This is so I can ensure I get a decent amount of spacing (up to 300 CU, typically with 200 CU as my main target - the 300 CU is when I'm using the maximum height, I can still ensure the 1/4 join rule applies, a rule that's been in use even before I started game programming, back in the days of making animated GIFs).