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

Keveran Forest - latest scenery updates

Date: Jun 26, 2010
Screenshot #31: After a sudden surge in programming and scenery progress, Keveran Forest has 2 new enhancements. The first is the addition of the hills in the middle. There was an unusually large gap between the hills so I created another set in the middle (logarithmically that is - halfway between 64 and 256 is 128 on a logarithmic scale). There's really nothing otherwise special about them.

The second change is the river. Not only does the river flow at a rather fast 18 mph, it also makes use of the new 12-channel ground system. Just before the June 2010 surge in programming progress, I thought about having the ground using the same system as that of the clouds, with the extreme 3D-like effects. Also, about 4 2/3 months earlier, when I created the simulation screenshot for Keveran Reef, I noticed an odd problem with the fog? The problem? Too much contrast with the fog. You can see this if you look closely at screenshot number 29 - look parallel with the island in the area slightly closer. Can you see the rather high contrast? There was only one way I could think of for fixing this problem - more channels, a lot more. Channel? It's essentially a layer with a dedicated scaling (Z distance or depth). Before this, the ground used a 3-channel doubling system. That is, from a scaling of 1 (the foreground, 100 feet from the camera), 3 more channels further out would be the area where the scaling of 2 would be. If I went 3 more channels out, I'd have 4, 3 more for 8, and so on.

So, I fiddled around with an assortment of calculations and worked out that I needed not 3 channels, not even 6, but 8. At 8 channels, the ground's 3D effects would be quite fine. So, why am I using 12 when 8 was all that I needed to use based on my calculations? I figured that, since I needed to end up redoing the ground anyway, I thought I'd combine both the system the clouds used and the system the ground used. This saves quite a bit on memory and it means a bit more work. I've also wanted to make the ground 1024 pixels wide to minimize the draw count. On top of that, I also wanted the texture to be much more random which also makes it much more natural. By using 12 channels instead of 8, I also sort of future-proof it and provide a safety net in case my calculations were off (after all, the rather complex apparent brightness algorithm, used twice to determine contrast, isn't particularly accurate). If you look at the Nodera Ice Shelf video just below (of which also covers screenshots 31 to 36), you'll see how much better the 3D effects are compared to the previous 3-channel system. They almost match that of the clouds if you look closely enough.

Carnivalesta - latest scenery updates

Date: Jun 26, 2010
Screenshot #32: Carnivalesta has, since the last update to this document, undergone a major overhaul on the scenery. You'll notice that several things are different. Like with screenshot number 31, the 12-channel ground system is used instead of the 3-channel system which greatly enhances the ground's 3D effects.

The horizontal spacing between the light poles is spread out much more, causing them to look more evenly spaced on both horizontal axes (left to right and in the distance). You may also notice that the light poles extend much, much further out into the distance, to the edge of the carnival grounds. They're also slightly shorter. The band the 5-colored flags are connected to is also more metallic-looking, more silvery in appearance. The flags are also spaced slightly further apart as well and they're slightly bigger (if 4 feet tall isn't big enough already).

You'll also see 2 new rides. The one on the far left, Mini Platform Masters, is actually a way for the general public to participate in the platform hopping. The pool below is basically for safety (and functions as falling out). It's based off one of the scenes in my best dream of all time (dream 8-5 as of June 26, 2010). It also gives a much better idea on how platform levels will be designed, at least, to some extent. I had to change a few of the standard rules I set in order for this to be of use to the public, and I also had to scale it down as few can jump the 3 blocks needed (roughly 14.1 feet) for standard levels. It's actually 1/4 scale. With the distance also factored in, it's actually a 1/32 scale design compared to what the foreground action uses. This is one of the few rides that doesn't have animation present.

The second ride on the left, the Hero Wheel, a 250-foot-tall Ferris wheel is nothing new and has been known ever since the first posted screenshot of Carnivalesta.

The third ride, on the far right, is another new addition. It uses 1031 frames of animation via 48 unique images. If you've been to a carnival or theme park, you should be familiar with this type of ride. The video showcases this ride's behavior very well. Keveran Desert is painted on the ride as a backdrop to give more meaning to the ride's name, Explorer. In fact, everything in this carnival is based on platform-hopping and PM's design in some way.

You've likely noticed the odd gap between the Hero Wheel and Explorer. This is because more rides are supposed to go here, probably 3 to 5 more, though I haven't created them yet and I've only got ideas for just 2 more.

Another big change you've probably noticed is the roller coaster. It has several changes - the height being the most obvious. It's now nearly 400 feet high, high enough to allow for the coaster to just touch 100 mph. If you think 100 mph is fast, it's quite slow compared to what you can achieve with the platform hopping you'll be doing throughout this game - 300 mph is easy to get with the bounce ability. The second is the addition of its theme - island hopping. That's where the name "Island Glider" comes from. It basically simulates gliding from one island to another, giving a new meaning to the phrase "island hopping". The islands are nothing more than painted decals, as is often used at theme parks (at least, from what I recalled from TV shows - more advanced theme parks are otherwise foreign to me). The loading and unloading actually takes place inside the island. The steep incline immediately to the right of some islands is how the coaster builds up potential energy before it shoots off at very high speed. Another difference is the addition of a loop-de-loop. Another track between the original 2 has also been added. The last difference is the texture of the supports - it's brighter and more detailed though with what I'm seeing, the supports are much too wide, nearly twice as wide as they should be and I'm forgetting about the vertical supports.

Also, though you can't really see it well in this screenshot, the grass just beyond the edge of the carnival grounds is lit but gets dimmer further in the distance. This is one of the neat advantages of the 12-channel ground system. Beyond this, Carnivalesta is otherwise unchanged.

Nodera Ice Shelf - water surface fade effect

Date: Jun 26, 2010
Screenshot #33: You saw it on my simulation screenshot for the June 2010 blog, now it's present in the engine: Nodera Ice Shelf. This is my third favorite world in terms of scenery. Sure this looks a bit dull outside richly-detailed close edge of the ice burg in front, but the point of this screenshot is to explain the water. This water is actually dangerous because it's so cold - touch it for more than 5 seconds and HP slowly decreases. However, exclusive to Nodera Ice Shelf is the surface fading special effect. Naturally, when close to the water's surface, you can see through it quite well, but higher up, it's much more difficult to see into the water. Try it the next time you're at the lake where the water is crystal clear - look down into the water from a foot above and note how well you can see into it. Now, get to, say, 5 feet above (when standing) and look then - it's a bit more difficult to see through it at the same depth. That's what the effect Nodera Ice Shelf uses. What about Lake Keveran or Keveran Reef? Lake Keveran does have it too, but it's almost completely unnoticed as there isn't an object behind the effect, except the hard-to-see ground when roughly 320 CU above the tops of the waves. Keveran Reef doesn't have any need for this at all because you can't see the reef until 384 CU underwater where the tops of the closest waves are just starting to go off screen. If you look at the bottom right corner of the screen, between the 2 areas of onscreen data, you'll actually see the waves in front of the platform with the surface fade effect obscured by the platform itself. It just gives more depth to the scene. The waves here seem different than the YouTube video shows - that's because I cut their spacing in half, enhancing their overall appearance significantly.

So, then, what about the ice burg that seems to dominate the entire scene? It's 1024 CU above the water, roughly 150 feet. It's massive alright. It's the ridge effect that really makes the closest ice burg especially nice. It also drifts along, with the waves, at 6 mph.

The ground in this world is also very slippery as acceleration on the ground is reduced significantly, causing the sliding effect. Mud and water pools are frozen solid - you can walk on them like any other ground here and it's also slippery. Water pools are especially slippery. Don't worry about falling through - whether you hit one at 2 mph or 500, you won't fall through.

Nodera Ice Shelf - first views underwater

Date: Jun 26, 2010
Screenshot #34: Underwater, things don't look all that sophisticated. The ice burg in front extends deep underwater, so deep that you won't see its bottom - you'll fall out well before then. This just shows the view from underwater. The darkening effect is not present though. Here, it's much easier to see the waves-in-front effect I mentioned in the previous screenshot.

Nodera Ice Shelf - above the closest ice burg

Date: Jun 26, 2010
Screenshot #35: If you saw the simulation screenshot from the June 2010 blog, this is the view as seen in the game engine. You really can't tell a difference, outside the fact the ground now uses a 12-channel doubling system instead of 3 which enhances the quality (see screenshot 31 for an explanation on this). Obviously, there's the onscreen info surrounding the entire area and the clouds are present as well, but it gives you a sense as to how accurate those simulation screenshots really are.

Nodera Ice Shelf - the upper areas

Date: Jun 26, 2010
Screenshot #36: From high above everything (the debug panel shows the height above the water's surface, the Y position, of which is 1764.01 feet (537.67 meters)), it's much easier to make out the sheer sense of scale. This, compared to the previous screenshot, really gives a sense as to how vast the scenery appears to be. If you look closely at the ground, you can see the fog effect very well. This view also gives you a sense as to where the world's name comes from - you can quite easily see where the ice shelf itself is. Much like Keveran is, Nodera is another one of the regions. It's basically one of my methods for naming things - zone them and segment them.

Playable at last in Keveran Forest

Date: Aug 12, 2010
Screenshot #37: Platform Masters, at the end of June, has finally become playable. That's right, playable. It's not quite all the way there yet, but at least it's possible to jump around on the platforms and the ground. This almost seems like it was just another one of those simulation screenshots, but in this case, it's the real thing. Simulation screenshots are meant to get a feel for what something would be like before the actual functionality is added. If you can't tell the difference between the real thing, once I add it, and the simulation, then you can tell just how much effort I put into the actual design of the simulation screenshots. Sure there may be a few differences here and there, often from changing the design slightly from the time I made the simulation screenshot to the time I get the actual screenshot from the engine (the only modification here is to crop it from the 1920x1440 size (which is what I run Windows at) to 1024x768 (which is what PM runs at).

You might also notice another very slight change with Keveran Forest, if you look closely enough. Can't figure it out? The clouds are different. They don't go out quite as far. There was a well-hidden bug that caused the clouds to have double the range when it should've been 50% that of the visibility, and only for Keveran Forest. Why the offset? At ground level, Keveran Forest is foggy, very foggy. Higher up, you're well above all the fog and thus the visibility can be higher.

Following the test course in Nodera Ice Shelf

Date: Aug 12, 2010
Screenshot #38: In this case, I'm following that test level I made more than a year before (early May of 2009), among the very first screenshots (on page 1). Yep, for the first time in about 15 months, I could finally follow that test level like a player would follow any normal level. I can't complete it or anything as that functionality hasn't been added yet. Aside from the waves being randomized for their X offsets and the clouds having the correct range (not double, normal), Nodera Ice Shelf isn't any different.

The HSV color system for platform colors

Date: Aug 12, 2010
Screenshot #39: On July 11, 2010, I discovered the solution to a problem that's been bugging me. What was the problem? I wanted to get more color choices for the platforms and also have sloped platforms. Trouble is, for each color, I needed 98,304 bytes of memory (96 KB). For 125 colors, like I had before this point, I needed 12,288,000 bytes (11.7 MB) of memory, and that's just for floors alone. Walls, another set of 125 colors of the same size would make the total as 24,576,000 bytes (23.4 MB). For sloped platforms, this is a different case. A slope that goes up 1 block for every 2 blocks horizontally means, for even just an 8-block platform (horizontal span), means I'd need 196608 bytes (192 KB) per color. For both an upward slope (going up when going right) and a downward slope (going down when going right) and 125 colors, that's 49,152,000 bytes (46.9 MB) of memory. That's just for that one slope type and not the 4H1V, 1H1V, 1H2V, and 1H4V slope. Because of this, I either needed a ridiculously short platform, or a severe limitation on the number of colors.

Then, I found the solution. Even with the floors, walls, and 5 different slopes, this takes less memory than what I was using for just the floors and walls alone... and I get 16,777,216 possible colors. To do that with my old method, I would have needed 1,649,267,441,664 bytes of memory (1536 GB) for just floors alone. Having everything based on my original plans would've needed several terabytes of memory. Unless you've got a computer from the 2040 or 2050 era or own a supercomputer that's along the lines of the most powerful in 2010, you're not going to be able to do that.

What's the solution? HSV. What is HSV? It's a color system much like RGB and CMYK. H stands for hue, like whether a color in question is green, yellow, blue, magenta, etc.. S stands for saturation, essentially the intensity of the color (a low saturation yields a color that looks quite grayish, muted in a way). V stands for value. Since I know how to convert to and from RGB and HSV, I saw that as my ticket to resolving this problem. I realized I needed 8 colors instead of 125: red, yellow, green, cyan, blue, magenta, white, and black. By drawing the base color then drawing others on top of this in the same location (with the same roughness texture) being transparent in varying degrees, I can otherwise get any of the 16,777,216 colors possible with the 24-bit palette. The screenshot above shows a small sample of the colors where the RGB values step by 32 instead of 64 as I originally had. The 1000 total-platforms-per-level limit isn't anywhere near enough to see all 16,777,216 colors, or even have the colors step by 17 (that needs 4096).

Because I'm saving a huge amount of memory, new features have become available. The first of which is slopes. Nope, it isn't just the platforms that are sloped. The ground is also sloped. For several days, after a long break, I worked out the fine details for how to optimize this. You're probably thinking that this is going to cause frame rate problems, knowing TSO (my other project). The sole difference is that TSO uses a 3D plane and PM uses a 2D plane. This reduces the draw count to almost nothing - the clouds would use 6 times more draws than the maximum the ground would theoretically use and the clouds only use 1/3 of the draw count limit. Of course, having a terrain map would mean a slight design change for the levels, though this change adds a lot more depth to PM's story. As of the time this screenshot was taken, neither terrain nor sloped platforms have been added yet.

Keveran Desert - testing distant slopes

Date: Aug 12, 2010
Screenshot #40: Keveran Desert calls for the distant part of the ground to lead downward toward the ocean. This isn't a small drop either. If you haven't seen the overworld, you see that Keveran Desert is located between two sets of mountains, a shorter range (those visible in the scenery (see below)) to the northeast, and a taller range to the southwest. As one might expect, the elevation of Keveran Desert is quite high - 185.1 feet. This actually quite low for one reason - Keveran Desert takes place in a valley, noted by the rock cliffs in the distance. These cliffs are very high - 600.7 feet. The ocean is beyond those cliffs, far beyond. The ocean being at an elevation of of 785.8 feet makes no sense. Unlike Nodera Ice Shelf where the terrain suddenly rises out of the ocean (the ice shelf), Keveran Desert cannot be sudden. The only solution is to make it gradual and otherwise slope it. Instead of just going straight down at an angle, I varied the slope quite a bit. After all, the area is in the mountains, low mountains.

To ensure the effects are correct, I did some strange things with the code. Doing this weird kind of thing maximizes the contrast between the zones making them easier to see. Between adjusting the visibility to something ridiculously low while not causing objects beyond the visibility range to still be visible (instead of being clipped away), or changing the fog color to black, the best results came from changing the visibility. This case shows 512 for the visibility (that of Keveran Forest where the ground is) instead of the normal 2048. This is why you see the odd banding effects here. This way, it's much easier to see the individual channels.

The part where the sand meets up with the grass and the grass meets up with the ocean does need to be improved on though. This is where my ground decals system comes in handy, though this has yet to be added as of the time I took the screenshot.