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






Sentus Mountains - extreme height


Date: Sep 29, 2011
Screenshot #181: By utilizing the bounce ability just right and jumping on just the right slope, it's easily possible to jump 10+ miles (16+ kilometers) into the air as I did in this case. This is a view from more than twice the height of the highest peak. From this vantage point, you can see the ground decals between the far mountains. At this height, the sky would be very dark but still not dark enough to see the stars.




Making snow - automation


Date: Oct 13, 2011
Screenshot #182: You've seen Ronnisa Plains, right? Ya know, the rain. Well, it's going to get redone. Instead of 9 layers, it's 17. What's more is that, unlike before where the process was very tedious and monotonous, I've now automated it as it's quite easy to automate. In the case of Nodera Highlands, world 16, it's not rain, it's snow, a blizzard to be exact. The first step is to use a random number generator to set where each snow flake is supposed to be. The second step is to place the snow flakes, ensuring that they tile correctly. These 2 steps are repeated for each size, building up the final result. Rain has an extra third step - stretching each "rain drop" by repeatedly drawing circles. The last step in both cases is to write the final output to disk. That's what my automation program does for the generation of precipitation. This screenshot shows part of the programming itself plus the program itself in action. Yep, it's nothing more than a command prompt window - I don't need anything fancy for automating otherwise repetitive tasks.




Making snow - viewing the results


Date: Oct 13, 2011
Screenshot #183: This is what that program outputs. Snow flakes are nothing more than circles in this case. Why not more complex designs? This image is already 8 times the size it's supposed to be and when scaled down, fine shapes are impossible to make out. Even the largest snowflake is but a fraction of a pixel at true size.... In this screenshot, you can see snow flakes overlapping in plenty of areas and of all sorts of sizes.




Making snow - making final touches


Date: Oct 13, 2011
Screenshot #184: Processing the final result is all that remains. The program processes the image like an alpha map. Thus, I have to turn the colors into an alpha map. From there, it's nothing more than merely changing the color of the precipitation to match the fog color. This screenshot shows the case after I scaled the image down and converted to RGB from grayscale, but before converting the gray shades to varying degrees of alpha. Yep, what was big, even for the closest layer (the one in front of everything), is but a fraction of a pixel.









Nodera Highlands - the lowest point


Date: Oct 16, 2011
Screenshot #185: Welcome to the Nodera Highlands. Here, in the far north, it's freezing cold. With an overcast sky and high winds, a blizzard is underway. Nodera Ice Shelf has the sky becoming increasingly cloudy. Further in, it's overcast and there's a full-blown blizzard going on! The snow dominates the entire foreground and is quite intense making visibility quite poor. From very near the fallout point, the ground decals are at their easiest to make out.

At this position, the ground decals are easy to make out. Going into the distance is a 4-lane highway that turns into 2 lanes. Paralleling the scene is another 2-lane highway. Unlike the other worlds that tend to have gravel roads around as well, there are none in world 16 because of 2 things. Gravel roads are typically low maintenence roads and generally not plowed as much as paved roads. In addition, the snow is flying so what little time a gravel road may be plowed by a snow plow, it quickly gets covered with snow. The highways have a lot more traffic which is another reason why they have little snow during the blizzard (though less traffic than normal due to hazardous driving conditions blizzards pose, though at least the visibility is still slightly more than 3 miles (slightly less than 5 kilometers)).

A waterway is also visible. This is actually a channel. The action takes place over the mainland, the closest part of the scenery besides the clouds and snow (of which is where Carnivalesta, Sentus Mountains, Train, and Mount Sentusia are on). The part on the other side of the channel is actually a large island.

Do be warned that Nodera Highlands has no solid terrain to walk on - fall off a platform and it's into a bottomless pit you go, losing a life and returning to the start platform (or losing time on a boss level).

Interestingly enough, I've done roughly 2/3 of this world's scenery while playing Disgaea 2 for 1400+ turns of skill mastery and the like. Only the writing of a program to automate the snow generation, half of one of the 6 layers of mountains, and half of the ground decals were done while not playing Disgaea 2. Talk about multitasking and making the most out of my time! How can I play the game and work on my game at the same time? Easy: when you have to wait for turn banner animations where you can't interact with the game at all, you can do other things while waiting.




Nodera Highlands - near the clouds


Date: Oct 16, 2011
Screenshot #186: Nodera Highlands is unique in that some levels take place below the clouds, in the blizzard, some take place above the clouds, and a few take place in the clouds. Like with Ronnisa Plains' rain, you can see the snow in front of the scene, in front of the platforms, objects, and the character. Ground decals outside the roads are rather difficult to see due to the great distance and the low visibility.




Nodera Highlands - levels in the clouds


Date: Oct 16, 2011
Screenshot #187: Indeed, some levels take place in the clouds. With that, you'll see an otherwise monotonic scene. However, if you look closely, you can still see snow covering objects, though it's rather hard to make out in any way, made worse with motion.




Nodera Highlands - mountains above the clouds


Date: Oct 16, 2011
Screenshot #188: Above the clouds, the visibility is extremely high and you can even see small mountains barely poking through the clouds. These mountains are only about 40% as tall as mountains in the Sentus Mountains world. Here, unlike previous cases where I'm after getting rid of the gap between mountain layers, I'm actually wanting the gap because, in this case, it's more natural and expected.




Ronnis - early testing of revised layout


Date: Oct 27, 2011
Screenshot #189: The design I had with Ronnis before was only the minimum requirements that I set, outside the sailboats. It's also nonstandard and inconsistent. Everything in Platform Masters is based on the block or kiloblock in some form or another, often as powers of 2. Previously, buildings were spaced 4 scaling units and 440 feet apart, based on the city block in the US (12 blocks to a mile) left to right and simplified for the distance. Buildings were of random heights all the way through and, out to a scaling of 64, stepping by 400 feet. Beyond 64, the buildings were spaced much further apart, giving some rather weird results when you get extremely high.

The new design has each city block as 2048 CU (64 blocks). This means 16 city blocks makes 1 kiloblock (a kiloblock is 32,768 CU or 1024 blocks). Yep, in that short bit of text in this paragraph, you only see powers of 2, and plenty of such numbers. Not everything, however, are powers of 2. Most of the odd ones are still based on a power of 2 in some way - such as dividing a power of 2 by something. Highways and freeways are based on exactly 2 2/3 blocks for the lane width instead (85 1/3 CU, 12.516 feet, 3.815 meters) which happens to be exactly 1/3 of 8 blocks. The only oddballs that don't follow the power-of-2-based system are things that involve nature. Hills, mountains, rivers, shorelines, clouds, etc. are otherwise random. Interestingly, 3 scaling units is also exactly 2048 CU which is why another change is needed. The city visible in the Sentus Mountains world (see the previous page) gives an excellent idea on what you might expect for the sizing and stuff.

The buildings, now, have a more specialized design. They'll still use the light-colored random colors like before. What's different is that they will be tall in the foreground with some reaching even 96 stories tall (and yes, each story is 2 blocks (64 CU, about 9.4 feet), another power of 2). There is also an odd building that reaches 128 stories tall, the tallest in the area. It's both very close and unique. It's unique in 2 ways - it has sky bridges connecting certain floors (can you guess which ones?), and has a sign on top stating "Welcome to Ronnis". Beyond a certain point, buildings get shorter and shorter until around 2 1/3 miles distant. From here, Ronnis's buildings will look exactly like what you see in the Sentus Mountains. Seeing these buildings, however, isn't very easy unless you upgrade jumping or hold up for a while when using leviburst.

Wanting a quick preview as to how the city's layout now looks, I just did some quick tuning to get this. Despite the lack of buildings and perhaps other objects (cars would only be about 2 to 3 pixels tall (5 for the 18-wheelers), too insignificant to justify adding them and repeated start/stop city traffic is difficult and time consuming to program), I'm truly impressed as to how the design looks overall. Memory management is another subject though.

As a side note, world 1, Jeremy's House, is also needing a redo for the foreground part. The hills and air taxis, however, are fine. A map resolution oversight means I need to redo the farm fields and coastline - I wanted a 12 Kbl repeat span but unexpectedly only got 6. The screenshots following Ronnis's remake will explain the issue in more detail.




Ronnis - the in-depth planning


Date: Oct 27, 2011
Screenshot #190: I plan out everything in such fine detail. Ground decals are no exception. Ground decals work pretty much the same as the clouds, except they're varied more. This is where the spreadsheet shown in this screenshot comes in. It's basically split into 4 distinct sections. Columns A and B are used to create the repeated scaling (much like the clouds, though this doesn't always match that of what the clouds use). Unlike the case with the rain and snow or the standard ground textures where I had to write a program to automate these, this part is fairly quick and generally doesn't get redone anywhere near as much. Column C is unique in that it's used to speed up keyboard navigation should I browse through the list. Otherwise, I'll just be jumping from the top of the list to the bottom, or row 65,536.

Columns D through F are for setting the basic parameters, such as the scaling, texture resolution (in scaling units), and the width of the texture's repeat span in CU. The closer the ground decals are, the finer the resolution has to be, otherwise, you'll get pixelation effects like you see with the clouds when very close to them. For the clouds, the pixelation doesn't matter much as there's generally very little contrast between the shades of gray so the pixelation is hard to see. For ground decals, contrasts are very sharp. Instead of 16 like the clouds may have, ground decals easily get to 128 or even more (it's 159 for the sidewalk-to-roadway contrast). Thus, the texture resolution must be finer. There is a formula that I use for determining how course the texture can be at the most before pixelation starts. Like with all other scenery-related things, "pixels*scaling=CU" controls almost everything.

Columns H through L are used to help me gauge how much memory these ground decals will use. Column H is the base memory usage for the given width and does not take into account image bit depth. Column I is used to reset the total memory counter for the image. Notice how, on row 39 that columns J through L change? Column J is the memory used for that row and never changes unless I set the change flag to a non-zero value. Column K tells me the amount of memory used by the image at that point in bytes. It's critical that I have it in bytes because that's how arrays are alloated. I use column K to determine how I should segment and optimize the ground decal layers to make the most out of them for my memory management system. Column L is rarely used and is basically the conversion to mebibytes (1,048,576 bytes).

The odd area where columns N through R are is how I've decided to arrange the array index values to maximize the memory usage. Because I could never get malloc to work roughly 2 years ago, I have to sort everything as far as the array index usage, by memory usage rather than drawing order. If I get a layer that exceeds one of these sizes, it either gets segmented, or I'd have to increase the array size. If more than 10 layers are used, I'd have to add more in. You'll notice that array indexes 0 and 1, totaling 2.5 MB, are reserved for the shoreline. These elements have not been worked on or planned for yet outside the most basic ideas for their design and appearance. You might also notice that everything after array index 3 is sorted from the highest to the lowest. This is due to adding these in later on (yep, array index 10 is the newest addition). The 1 MB and 1.5 MB sizes are very common and are also standards used with the clouds.






Footnotes:
None.