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

Game objects - water pools

Date: Feb 4, 2011
Screenshot #121: Quite often, you'll find pools of water enclosed by platforms. Treat these pools of water like any other water, such as that wavy stuff nearly 1000 feet below. That is, don't stay underwater for too long. There are 3D effects with this water as well - notice how the character's head pokes out of the water with part of his lower body visible? The part between the head and the rest of the body is still there, if you look very closely. This is due to the water being much more opaque here. Mud and lava pools also do this, but they haven't been added yet.

Music creation - my first steps

Date: Mar 10, 2011
Screenshot #122: Unlike artwork where I've doing it for nearly a decade by now or programming where I've been doing that for about 5 years, creating music is one area I have almost no skill with. Instead of about 20 million combined seconds of experience working on artwork and about 6 million combined seconds toward programming, music, at the time this screenshot was taken, has but 40,000 seconds, very tiny in comparison. Basically, I'm a complete newbie when it comes to music creation.

Despite being able to listen to the same song and speed for 17 days straight (52 1/4 days for the same song with speed changes), listening to the same song for tens of thousands of times (132,500 is my record) in a row, or having accumulated hundreds of thousands of plays on a few songs over my life time (one of which having over a million plays), I have a major weakness when it comes to music. As crazy as my extremes are with listening, this big weakness hinders my music creation though it can be summed up in one simple question: "What instrument is that?". Seriously, I'm almost completely unable to tell what instrument something is. All I can do is tell whether or not it's percussion, string, or wind. Brass and wind seem to be the same thing so I get mixed up with these as well. That's really as far as I can go. Being unable to identify an instrument at will, I also can't tell what genre a particular song is, even something as vastly different as rock, jazz, country, or reggae.

Thanks to computers and software programs, it's, at least, easy enough for a complete newbie like me to make music. FL Studio is what I use for this, and that's what this screenshot is of. This is the early phase of the development of the music for Ronnis, world 2. I've actually had this song stuck in my head since early 2010, if not even earlier. The "background" as I call the base rhythm, has been in my head since late 2009. The rest of the melody is otherwise lacking until March 9, 2011 where I finally got working on the game's music.

Sound effects are still questionable though, but even then, I still have a few ideas on hand.

Lake Keveran - final scenery design 1

Date: Mar 16, 2011
Screenshot #123: Having spent 2 days redoing the scenery, Lake Keveran is as beautiful as ever. This is the final design for Lake Keveran's scenery. Although the clouds have an "extention" in order, that's an element of the clouds and not the scenery (since all worlds that use the clouds have this). The 24-channel ground has yet to be implemented as well, but that, too, is something that carries over all worlds and doesn't count. This pretty much means that Lake Keveran is 100% complete for its scenery, the first world to have such a declaration (Ronnisa Plains is missing stuff for the story, but it's the next closest). Only 2 things remain for this world though - making the 17 levels it needs and finishing the terrain. Until all game objects are made (enemies, the redoing of the character, enabling the casting of energy beams, and polishing off the rest of collision detection remain to be done, among, perhaps, a few others) and the terrain is finished, I cannot make levels. The terrain can be done at any time now.

From this low height, near the water's surface, it's very easy to see just how beautiful this world's scenery is. The dynamic opacity effect over the lake's bottom, the huge group of beach umbrellas and beach towels on the beach, and the magnificent hills all combine to make Lake Keveran very pretty. Compared to the last screenshots of Lake Keveran, this is an amazing improvement! It has easily replaced screenshot 99 as my computer's desktop background (that I actually very rarely see) and my MP3 player's background as well!

Lake Keveran - final scenery design 2

Date: Mar 16, 2011
Screenshot #124: Higher up, Lake Keveran isn't quite as beautiful... except for the hills and short mountains. This is a view from about the highest point you'll see in the supersize level (or, perhaps, one of the jumbo levels). The beach decals are a little easier to see.

Lake Keveran - final scenery design 3

Date: Mar 16, 2011
Screenshot #125: Only through upgrading jumping considerably or spending a long time holding the up direction with leviburst is it possible to get this high. However, this high up, the beach decals are as best seen as they can get. It's very easy to see just how crowded this beach really is. What are those odd brown things? The closer of these are life guard stands. The further ones are buildings, for dressing rooms and emergency supplies (like aloe, sunscreen, and whatever else there might be). The hills and short mountains are also quite nice from way up there. Say, wouldn't it be fun to just glide peacefully like this through the hills? Then again, there's that goal platform to reach before time runs out.

Lake Keveran - final scenery design 4

Date: Mar 16, 2011
Screenshot #126: Near the clouds, this is as clear as the short mountains will be as, any higher, and you'll have clouds blocking the view. The short mountains are only 3604 feet (1097 meters) tall at their highest. Even then, it's very easy to see the most distant of these short mountains.

The only levels that get this high are those in the Sentus Mountains and one other world. This being my test level, the normal rules don't apply. This is why you see platforms way up here. That blue-cyan platform the character is on is primarily used as a way to get up very high and look at the scenery more easily. This is also the fastest the platforms can move. The pyramid of platforms far to the right is used what that platform isn't good enough, such as from needing fine movement.

Lake Keveran - final scenery design 5

Date: Mar 16, 2011
Screenshot #127: Above the clouds, there isn't much to see. Why does Lake Keveran have so many high hills and short mountains? Lake Keveran is actually a basin surrounded by mountains. You're actually looking at the mountains in the northeast. Those to the southwest are much taller, about 80% taller (these would poke through the clouds though only by a little bit). In the remake of the overworld, you'll see this.

Automating 24-channel ground - comparing results

Date: Mar 19, 2011
Screenshot #128: For several days, I struggled with getting 24-channel ground processing automated. I only got an all-black image. Why automate the process? Done manually, it takes nearly 4 hours (2 hours with the older 12-channel system). It's very tedious and highly repetitive. Using GDI functions, I only got all-black images. Thinking that pointers were wrong (they weren't 0 so I knew they were good), I even tried it with my game engine. I can clearly see the results in my game engine, but all I got, when writing the contents of both the front and back buffers, was an all-black image. It didn't make sense. Why was I getting an all-black image when there are clearly many shades of blues, greens, even yellow, bright colors. Even Carnivalesta has plenty of bright areas to look at (then, of course, there's the on-screen data which is always bright).

I thought I had to do it manually, but all I could do was exact X:1 scale ratios where X is any whole number, like 3:1 or 184:1. After all, it's nothing more than an averaging of pixels, something I do very frequently (how else have I gotten fog on the scenery objects?). The only way I could do other scale ratios like 3:2 or 87:64 was if I scaled the image up to 64 times the width and height then scaled it down. With a small image like 128x96, this isn't much of a problem. But, the cropped image was already quite large, at 4096x2048 for the maximum. Scaling that up to 64 times the size means a truly massive 262,144x131,072 image. Yes, that's right, it'd be scaled up to the size of a 34,360 megaapixel image, so big that no system today, except supercomputers, can handle it as 96 GB of RAM would be needed (the highest I've seen on the market today, if I recall, is 32 GB of RAM). Thus, I couldn't do it manually.

... Or could I do it manually? Shortly after going to bed on March 18, 2011, I came up with a solution - a credits system. 96 GB of RAM? Nah, try 96 MB. Any of today's computers can handle 96 MB, even many old Windows 98 systems. 71.72 MB comes from the base image and another 24 MB comes from the cropped version (based on the largest size possible). Throw in the other still smaller buffers and it's no wonder. But, how did I work around the scale-up issue? That's where the credits system comes in. It's basically a shifting weighted average system, in a sense.

Consider the 87:64 ratio. At first, 87 credits are given. Each pixel uses up 64 credits. This means 23 credits remain. Thus, the next pixel has to get considered. 23 credits isn't enough to cover it, so only part of it is used. If the first pixel had a value of 191 and the next had a value of 48, the weighted average is "(191*64 + 48*23)/87" or 153.2 (of which rounds to 153). For the next round, the 41 credits left over on the second pixel are used up leaving 46 credits on the third. For the third round, the remaining 18 credits are used up for the third pixel, leaving 69 credits available. The entire fourth pixel is used, 64 credits, leaving 5 left for the fifth pixel. This just continues on. First, the image gets scaled horizontally, the easiest and also the least memory-intensive. The image then gets scaled vertically in otherwise the same way.

In this screenshot, compare the two images. The one on the top was done manually, the way I have been doing it until this point. The one on the bottom was the output of the program (before I added the tiling and cropping to get the final output). You can't tell a difference between the two. Pixel color data might be off by 1 unit here and there, but this is otherwise an identical copy. Behind these images is part of the program I wrote to automate the process.

Automating 24-channel ground - the program in action

Date: Mar 20, 2011
Screenshot #129: After several tweaks, enhancements, and other things, along with creating the 12-channel version for lava (which has never been done until the time of this screenshot), the night water texture (used only in the story and indirectly with water pools in Carnivalesta), and the blizzard water texture (used in world 16, of which this texture also has never been done at all (since weather effects were never thought of during the 3-channel ground system days)). It took about 13 hours of time to get the automation working (spent toward the programming of the automation), and it only took about 30 minutes to get every single one of the 11 textures done (not including the time it took to create the 3 textures I didn't have). That's right, 11 textures - 5 water textures (day, dawn/dusk (they're the same), night, stormy, and blizzard), grass, pavement, sand, dirt, lava, and snow. I'd have likely needed nearly 36 hours to manually process each of these. Should I need to redo a texture (of which I've been considering for the dirt texture), I simply replace the base texture and rerun the program, taking but 40 seconds instead of 3 to 4 hours.

In front, in this screenshot, you'll see the program in action, after all the adjustments are made (a bit more than what the following YouTube video shows). Yep, it's just a simple command prompt window, nothing special. It kind of reminds you of the old DOS days, doesn't it? Even then, I still made some other changes to this program after the time this screenshot was taken, mostly to fix bugs that arose in Platform Masters' main code, from array overflow.

Behind, a better view of the program used to automate this process is shown. It covers the more complicated part that took 3 hours to resolve - scaling vertically. This is C programming, the programming language I use. Why not C++? At the time, I saw in Wikipedia that C executed faster so I went with that. I had no idea C++ was so much more flexible. Why don't I convert? It may take a day or two to convert, plus I also don't have much motive as the only thing that's useful with C++ that C has that I can think of is the "new" and "delete", essentially a replacement for malloc.

Automating 24-channel ground - results 1

Date: Mar 21, 2011
Screenshot #130: After spending nearly 8 more hours updating the game engine's back end to allow for the 24-channel ground, I finally got to see the results. From having the array order in reverse (the higher the number, the closer the object is to the scene), array overflow (the array size I had was for 33 KB, but should've been 42 KB - this problem took nearly 2 hours to fix), missing objects, distorted objects (due to array overflow), strange gaps (missing areas for 24-channel adjustments (i.e. referencing layer 84 when it should've been 168), and, in Nodera Ice Shelf, a strange bug that took 3 hours to figure out the cause of.

Once all of these bugs were fixed and everything was accounted for, I was in for a wonderful treat. The ground's 3D effects, even though the number of channels only doubled, seem to be 4 times stronger. At first glance, there doesn't seem to be any difference. Even by zooming in, it's very difficult to see the difference (lossy compression artifacts aside). To see the difference, you pretty much have to look closely at a video, very closely. See the first video on the next page for the video of the 24-channel ground in action (view the last segment) and compare it to the video directly above (the last segment, again). It is extremely difficult to tell the difference with still screenshots without spending several minutes closely examining and comparing. At least, compared to the 3-channel ground I once had, there's a gigantic difference, and it's fairly easy to tell the difference with stills to the 12-channel system (the 24-channel system is otherwise about the same as the 12 for stills), if you look closely enough.