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

Moving platform testing

Date: May 11, 2009
Screenshot #11: In preparation for building the level edittor, I needed to get moving platforms working. The oddly-aligned cyan-colored platform next to the goal platform is the moving platform. Getting started was difficult, but once I did, I encountered some strange bugs, but only when I began using more than 2 nodes (this platform uses 6 nodes). One such bug (class 2) is that I incorrectly logged the origin, target, and next nodes, causing the platform to stop one node further ahead then it was supposed to. The origin node is the point at which the platform is coming from. The target node is the node at which the platform is headed to (which determines the angle of movement). The next node is what the node will be after the target node is reached. A moving platform is to stop for a short time when the origin and next nodes are in the same position. If not, the platform moves continuously without pausing. Another bug, class 3 was that platforms were unexpectedly skipping nodes. Node 0 is the first node, where it starts. Node 1 is the second node, and so on to up to a maximum of 24 nodes. When the last node is reached, the moving platform should return to where it started. Oddly, the platform was skipping from node 1 to node 3 causing it to either never reach its target, becoming useless and inaccessible, or suddenly jump to the location of that skipped-to node. The other 2 types of platforms, elevators and vanishing, cannot be developed without the character and collision detection because it requires both.

First simulation of Platform Masters' looks

Date: May 15, 2009
Screenshot #12: Even though the game is unplayable, I can still get a very good sense as to what the game would look and feel like. This is actually a faked screenshot, one with the sole intent to get a feel on what the game or program would look like. It's what I call a simulation screenshot. This simulation screenshot is not just throwing things around - it's actually calculated using the intended design and placed very carefully. The simulation screenshot shows the character on a platform on that same test level. Around the area is what the onscreen data looks like. This is what each of 6 elements mean, from top left to bottom right like reading a book:

Lives: This is how many lives you have. The maximum, 4.3 billion, would take 136.1 years to reach if you get extra lives at a rate of 1 per second (this is already far faster than the fastest possible). Lives are lost by falling into bottomless pits, running out of time, drowning, or losing all HP. Lives are gained by collecting "X-up" items (like that 1up shown).

Time: This is how much time you have remaining to reach the goal platform. The amount of time you get is dependent on the type of level (jumbo and supersize levels will obviously have more time because they're much bigger), and the difficulty setting. If time runs out before the goal platform is reached (coming to a full stop firmly on it (as opposed to a bounce) is all that's needed), a life is lost and the level must be retried. This is about what you'd get for the regular levels at difficulty 6 - 55 seconds to start. Difficulty 0 would have this as 220 seconds. The largest supersize level at difficulty 0 may give as much as 1400 seconds. Yes, the time is precise to the millisecond and milliseconds count.

Score: This is how many points you have. The higher your difficulty, the faster this increases because of big multiplier bonuses. Difficulty 0 has a 1x multiplier but difficulty 8, the hardest of all, has 500x. An emerald is worth just 300 points at difficulty 0, but is a whopping 150,000 at difficulty 8. Each millisecond left on the clock is 5 points, but becomes 2500 points at difficulty 8. There are many ways to score, including that of simply completing the level. The score maxes at a rather shocking 9,223,372,036,854,775,807 (9 2/9 quintillion (a quintillion is a billion billions)), but it'll take over 3000 years to reach that, based on my fastest known method as I have it planned. The limit of a 32-bit value is reached in barely a minute at this very fastest possible.

Speed: This is how fast you're moving. You'll be able to choose between 4 units, 2 from each measurement system: mph, ft/s, km/h, and m/s. This way, you can use whatever you're most familiar with. Speed doesn't have all that much use, but there are areas where speed can be of use such as maintaining 18 mph to repeatedly jump between a series of 2x1 platforms. It's unlikely that you'll get much beyond 1000 of your chosen units - km/h is most likely to get it, but there's still room for up to almost a million of your chosen units - do you dare figure out if it possible to reach this speed without falling out (from bottomless pits)?

World: This is the current level. The first number is the current world. The forest world is world 6. The second number is the current level within that world. Levels 1 through 10 are the required regular levels. Level 11 is the boss level. Levels 12-18 are the jumbo levels and 19-21 are the supersize levels. Levels 12-21 are completely optional.

HP: This is the character's health. The left number is how much HP you currently have and the right number is the maximum HP. Although you normally start with 20 as the maximum, this can be increased under certain conditions. Its maximum is 999,999,999, but this will take several million years to reach (dinosaurs anyone?).... Above the numerical form is a bar that represents this visually. Grabbing hearts (or losing lives) restores HP.

Simulation of level completion's looks

Date: May 15, 2009
Screenshot #13: This is another simulation screenshot, only, instead of sampling game play, it samples the results from completing a level and the layout design of the various bonuses involved. Each entry remains for a half second before the next one appears. This is what all those sections mean and indicate (yep, lots of ways to score, as I stated in screenshot 12).

Time bonus: For every millisecond left on the clock, you get 5 points here. Note that this ignores difficulty - it's the same whether you use 0 or 8. Finishing levels quickly results in a bigger bonus here. This is often the biggest bonus. This time bonus is about typical for difficulty 6.

Item bonus: Sapphires, gold bullions, you name it, and the score is added up here. In the sample case, only the ruby (3000) and the obvious sapphire (100) along the upper route have been collected. This is just the total of all these.

Enemy bonus: Get 50 points for every HP a defeated enemy has. Defeat an enemy with 6 HP and you get 300 points here. Bosses are different though - they're much bigger at 250 points per HP.

Level bonus: This is bonus is never zero - you'll always get something for just completing the level. It's a fairly small bonus though until the later worlds or jumbo/supersize levels.

Extra bonus: This is for various other bonuses. As to what they are, you'll have to find this out yourself. It can be big, it can be small, it can also be 0.

Subtotal: The total of the 5 above scores.

Multiplier: This is where the difficulty setting comes in. For difficulty 0, this is 1. For difficulty 6, which is what the example uses, this is 100. Difficulty 8 uses 500, the highest (making the time bonus alone worth 10 million).

Grand total: This is just the subtotal multiplied by the multiplier and what is logged against this level's high scores. If it's a new high score, then it'll be saved. Difficulty 6 sure gives big scores, doesn't it? 4 million would probably only be about 70,000 for difficulty 0 and 19 million for difficulty 8 (adjusting for the time differences).

Score: This is just the score in the upper right, only bigger and made more apparent.

Overworld basic design start

Date: Jun 10, 2009
Screenshot #14: The overworld is used to move between worlds and other special things. It's like a world map with RPG's, only much smaller and with minimal control on where you can go. A black background seems odd, but this is the start of stage 2 in the 5-stage process. You'll have to view the high-res image to see the dots. Why the dots instead of mountains, hills, water, or anything else? This is best explained by explaining the process used:

Stage 1: Plot the path. See those flags? Each red flag marks a world. No, everything doesn't have "Keveran" in it. This is the region. There are other regions present though. Unlike before where I just referenced everything as "City", "Ocean", or "Arctic", there are now official names. As to what the magenta and blue flags are, that's classified.

Stage 2: Form the boundaries between land and water. Remember those dots? They are used to as a way to control the shape more easily. They function as "checkpoints" in a sense. By doing this, I can more effectively get a better representation of the shape and quickly. I can also very quickly make changes to the basic shape if I see a problem or don't like the shape. It's nearly 8 times faster this way.

Stage 3: Add land, rock, and snow effects, for a more varied landscape.

Stage 4: Add the details (hills, mountains, cities, etc.).

Stage 5: Add in any dynamic content (fences, rock slides, etc.), used to block earlier-than-normal access to worlds.

This overworld map is actually to scale. Each pixel is 1600 feet, after 16 scaling units. If you were to, say, note the distance to the island south of the bottom center of the flag pole for Keveran Reef (originally called the ocean world), you'll find that its distance on the overworld matches its distance and even the apparent size when you view the scenery. That island has a scaling of 256 making it 16 pixels on this map. This is probably a unique element. It corelates to the background scenery very well. This gives a sense of scale. Bad at math? The overworld spans about 620.6 by 310.3 miles (998.8x499.4 kilometers).

Simulation of the overworld during play

Date: Sep 12, 2009
Screenshot #15: Whenever the overworld is accessed, this is a good idea on what it will look like. Like screenshots 12 and 13, this is a simulation screenshot. The overworld is accessed in 3 ways. The first is when a new game is started. The second is upon choosing "return to overworld" from the pause menu. The third is, upon completing a level, you choose "no" on the question about whether or not to go to the next level.

The controls on the overworld are simple. The enter key is the select key, the backspace is the cancel key, and the arrow keys are used to move between locations and settings. Upon first visiting, the arrow keys are used to move between locations (movement is automatic) and the enter key is used to select that location. Once a location is selected, the cursor, a green highlight, goes to the bottom of the screen, in the central area. The arrow keys are used to move between them and enter to select them. When selecting anything but "set difficulty", the overworld fades away, and the level loads for play. Backspace returns to location-movement mode where you can choose a new location. When selecting difficulty, use the up and down arrow keys to select a value from 0 to 8. Backspace cancels it, reverting back to the previous setting, and enter confirms the new setting.

The overworld consists of four sections. The top is the graphical view of the overworld. The flags are the same as explained in screenshot 14. The grid-like areas scattered around are cities. Each pixel here is 1600 feet, for the scale of the map.

The bottom panel contains information. The left side is used with navigation mode. When pressing left, for example, you'll go to a world (indicated by the red blinking arrow) called "Keveran Desert". When pressing up, you'll be taken to something else (it's classified as to what it is). When pressing right, a message appears indicating that you don't have access to this location (due to an incomplete previous world). When pressing down, a different message appears, indicating that there is nothing in this direction to go to. The arrows, if not dark gray, blink between the color of the flag you'll be going to (or light gray if inaccessible) and dark gray. The dark gray ones will remain static.

The center section has two parts. The top is the current location. Below that are the list of levels. "Story", opens up the story segment, playable at any time (though played automatically upon first selecting a new world). "Tutorial" opens up the tutorial level, a special level used to explain how to use certain game objects. For this world, it would cover the basics of water and mud. There are other things that appear in this row as well. "Introduction", available only on world 1, contains the introduction to the game's story. You'd also expect "ending" to be present as well, seen on world 18 (not 15 because 3 new worlds have been thought of). The list of levels follow. Instead of 21 levels as originally planned, there are now only 15 levels. The top row of levels are the required ones. The bottom row are the jumbo (12-14) and supersize (15) levels, of which are optional. Below this is the option to set the difficulty. The higher the difficulty, the less time you have to complete a level but the score can increase much faster. 4 (medium) is the default difficulty. The 3 best times and 3 best scores are at the bottom of this, of which cannot be selected. The default values are shown, of which are used upon never completing a level (hinting that world 5-7 hasn't been completed yet).

The section on the right contains the current status. Score should be obvious by now. HP has a different color for a reason. When HP drops to 50% of the maximum and lower, it turns yellow and as HP decreases further, it works its way to red, fading through the spectrum. It serves as a warning (a yellow heart (to restore 20 HP) could sure come in handy here). Attack is how much damage you do to enemies with bops and the punch. As shown, 8 HP will be done to an enemy each hit. Like HP, this can be increased under certain conditions. Lives should be obvious as well.

The new looks of Keveran Forest

Date: Nov 19, 2009
Screenshot #16: From another lengthy delay due to loss of motive and a long delay with programming progress, much more has been done toward Platform Masters. From screenshot number 12, you likely recall the simulation screenshot. Now, the very same thing, except for the character and the presence of the debug panel (which also looks a bit different) is present in the real thing. It also looks a bit different from the simulation screenshot too. One of the main differences is that all elements now have an icon instead of only 3. At the time, I couldn't think of anything. I'm still puzzled over score and HP though.

One thing that you probably noticed are the huge numbers involved for lives, score (especially this one), and HP. These are actually the limits for each of these elements. Score sure has a long number, doesn't it (that's 9 2/9 quintillion)? It'll take you about 2165 years to reach that, and this assumes 24/7 play at the fastest scoring possible. This equates to about 8.1 billion points a minute which leaves out the option of a 32-bit integer (which only goes to what you see for "lives") so a 64-bit integer was the only option I had. Besides, with that many points, you'd have all the lives you'll ever need making difficulty 8 look like it wouldn't be a problem.

Lives maxes at nearly 4.3 billion, but don't count on reaching that very soon either - you're looking at a good 500 or so years to do that. HP takes much, much longer than any of these to max out. If you thought the beginning of the universe was long ago (that's about 13.73 billion years ago), that kind of time frame is only a start! Just 10 million HP, the 1% mark is going to require about 3.1 billion years to get, 2/3 Earth's age (I had to use Excel to attempt to figure this out.). Much above above 400 HP really has no sense though outside the final boss, considering that, if you find a white heart or die in one of several other ways (run out of time, fall into a bottomless pit, or drown), you're fully healed, even if you had just 1 remaining.

The last thing you may have noticed is that the scenery looks different. This is because I redone parts of it. I noticed the hills in the distance seemed oddly bright relative to the forest. I also wanted to move the river closer and I thought of adding another layer of trees that's even closer to the scene. You can actually see the limbs on the trees in this layer, since they're just barely close enough for that. It gives more "forest" in "Keveran Forest".

The special fogging effect of Keveran Forest

Date: Nov 19, 2009
Screenshot #17: This scene is pretty much the same as the above, but it seems oddly brighter. This is because of the fogging effect I've added. Notice how, in the background, the hills have a band of fog coming up to them and how the whole lower part of the scene seems to be filled with a fog bank? Drop below 1536 CU (48 blocks) and you begin to enter the fog bank, which is one of the warning signs to indicate you're getting close to the point where you'll fall out (the river becoming fully obscured by the trees is another warning sign). Originally, 1536 CU was the fall out point, but with the addition of the closer layer of forest, this has been reduced to 1024 CU (32 blocks) instead.

This fogging effect isn't quite as you'd think it is either. Although the background may be fully obscured, the foreground isn't, but it's still highly obscured - 80% obscured. This is to allow you to be able to still see where you're going. This same fogging effect occurs in the clouds too. A similar case also applies when going underwater, but world 8 (Keveran Reef) has not been programmed in yet so I won't be able to test it until any of the water worlds (Lake Keveran (world 5), Keveran Reef (world 8), and the arctic world (name and world number classified)) are added.

The clouds from above

Date: Nov 20, 2009
Screenshot #18: Before this time, the clouds were only visible from below them and the scene had a basic fog when near or in them. This time, the clouds are visible from both below and, shown here and fairly close, above. They've also been optimized to reduce the draw count. It, originally, was peaking at about 1820 draws per frame, but with the optimizations, it's reduced to just 940, which is almost as good as it's going to get. That assumes that the clouds are all visible, clear out to maximum visibility (Keveran Desert is the earliest world where this is the case).

The on screen data shown here is what the defaults are, upon starting a new game. A score of 0 makes sense in this regard. A standard with almost every video game is that you start with 3 lives. Speed is always 0, although it doesn't show this here. 20 HP with full HP is what you start with. As I have it, the timer doesn't count down like it normally does, it, instead, counts upwards, but this is only to see how the clock/timer would look like.

Clouds special effect - objects poke through clouds

Date: Nov 20, 2009
Screenshot #19: While this effect is not seen in Keveran Forest because no object reaches high enough to get into the clouds, merely lowering the cloud's height to barely 450 feet for their bottoms is enough to get this recently added special effect. Here, the clouds are viewed from above, where anything below about 1050 feet is completely enveloped in the clouds. In other words, areas above this poke through the clouds while areas below this, unless viewed through a gap in the clouds, are hidden. This effect is not seen until either world 3 or world 9. The exact world is unknown not due to them being classified, but rather, because I'm unaware as to how high the objects in world 3 are (they may reach into them, or they may not - I can't tell since I don't have world 3's scenery done, just 6, 8, and 9 and my plans rule out the others, except the questioned 3, before 9).

It may seem like more of the large hills of Keveran Forest, as seen from this screenshot, should be obscured, given the 600-foot thickness of the clouds (which is rather low), this is a limitation of using 2D instead of 3D. With 3D, this effect is very easy to do, but with 2D, it's considerably more difficult. Still, the more distant parts of the clouds are hidden by the closer tall objects and the closer clouds hide the lower parts of the more distant hills. It's very good for 2D. While I could more mimic the 3D type effect, the draw count would get up so high that even my dual core computer is unable to handle it, and that's with the optimizations recently added.

Cloud creation - how I use Excel

Date: Nov 21, 2009
Screenshot #20: "Pixels times scaling equals coordinate units" - it's my favorite formula when it comes to artwork. Why? It's what I use to get the 3D effects. A formula that simple (and its derivatives like "Pixels = CU/Scaling", obtained by solving for the "Pixels" variable) provides the very 3D effect you see with the clouds. This screenshot shows it being put to use for extra zones of the clouds.

You'll notice 2 windows present. The first, in front, is that of "The GIMP", which isn't anything new. Behind it is Excel. Excel is where I use that formula. Column A is the overall image row. Column B is the resulting width, of which I also use as the X position, at which the object needs to be scaled down to. Column C is the Y position that column A relates to within the actual image file. Column D looks empty, but it contains an occasional "x" to quickly jump between zones (using the control key and the up and down arrow keys to jump while in this column, one of my shortcuts). Column E is what the scaling of that particular row is. Column F is the multiplier factor that column B uses as part of the optimization. In other words, column B is showing a value 16 times higher than it really should be. However, do note that the image repeats 16 times. This is done to reduce the draw count and it's mostly how I went from 1820 draws at the most to about 940).

When I worked on the clouds, I used columns B and C (they're bold so they stand out, making it quicker and more efficient). To do what I did takes almost no math skills. Just look at column B once and cursor position within GIMP. Notice that the X position is 947? I scan column B to find find where it changes lower in the spreadsheet and note the Y position, 3090. With this, I make the line as I'm doing in this screenshot. I then scan column B again to find the end of the 946 value and note that as well, 3076. I repeat this process until I reach the top of the image. However, the X position is actually 1 more pixel to the right than it should be so I mass-move the whole layer (done with a rectangular selection than dragging it to move it) to the left 1 pixel. The reason is that column B is not the X Position, but rather the width. 0 to 947 is actually 948 pixels wide. Most would think it's 947, after "947-0", but consider how many numbers there are from 0 to 3 - there's 4 (0, 1, 2, and 3).

Edit (on Nov 26, 2009): I forgot to mention that the file name shown is actually the scaling range. 3072 to 4096 means that this zone for the clouds spans from a scaling of 3072 (307,200 feet away) to 4096 (409,600 feet away).