Map 3 Development Blog Post

Pogostuck: Rage With Your Friends

Climb a surreal mountain on a pogo stick and make friends along the way.

Work on Map 3 continues. I still don't know just yet when it will be done and released. However, I wanted to share some insight into the development of the map. As you might already know the main feature of Map 3 is branching paths and segments, multiple routes to take. One of them is a short [b]strawberry themed precision jump area[/b], reminiscent of the notorious Map 1 pineapples. This is what we will look at today. [img]{STEAM_CLAN_IMAGE}/34023786/24aa2c68a22e27abfee24ddad8a5d50b7fe70eca.png[/img] [i][b]Note:[/b] The screenshots do not show the final visuals of that area. In particular have I used a sprite/ texture from the internet for the grass and the tree leaves which I yet have to replace with my own.[/i] The idea sort of came from a pineapple wall obstacle I sketched back in 2019 for a then theoretical Map 2. It was thought to be across and opposing the crocodile and dragon jumps that made it into the map later on. Have a look at that part of my larger Map 2 sketch file from back then (and you'll recognize other areas of said level): [img]{STEAM_CLAN_IMAGE}/34023786/bbf843ffb8f6b06f83bba64d1ec09ce637dd2c05.png[/img] While I prototyped the new Map 3 (over the course of 5 months, every now and then) I found the following alignment of small obstacles to be best, in terms of challenge, flow and general layout: [img]{STEAM_CLAN_IMAGE}/34023786/55e49094f5df2f773b0b7cc70e90ba0f2e8c1503.png[/img] I had strawberries in mind but some other object also (for example for more spikey things, or have only the left side of that area be strawberries), however I do not recall my exact thoughts anymore. Either way, when I was confident with the map layout I ported the level into Blender, my choice of modeling program, where I turned the (skewed) block based level sketch into actual game geometry. [img]{STEAM_CLAN_IMAGE}/34023786/a96b1a5dd5bc7129742f96cbdd5955c93c49e8d2.png[/img] You can see that the rendering of Map 3 is similar to that of Map 2, in contrast to the more simplistic materials and lighting in Map 1. Taking on the strawberries I started with a basic 3D shape of a strawberry and then figured I have to create the normal map right away. For that purpose I created the monstrosity which can be seen below, with the sole purpose of generating the small blueish normal map in the lower right corner of the image: [img]{STEAM_CLAN_IMAGE}/34023786/4e7c6629e1fe3660b96f4f3370e85ab06a3c1908.png[/img] Using that normal map I could create my first strawberries, move them in position and deform them slightly here and there to fit the level editor sketch as well as for visual reasons. [img]{STEAM_CLAN_IMAGE}/34023786/84c7079404eec16ad948f203c915d8ad1a20e952.png[/img] I realized quickly the polygon count was exploding so I had to "fake" all of the other instances with 2D strawberries, which caused a whole heap of other problems and additional work. The idea now was to create 8 generic and multipurpose 2D strawberries which I would then be able to place into the level and only use up a few polygons for each. This included various steps, some of them shown in the following image. [img]{STEAM_CLAN_IMAGE}/34023786/3e767b2c12b18ccdc1b15e1950b606c1c85aa723.png[/img] As those 2D strawberry polygons make up a single mesh for greatly improved performance (instead of drawing every strawberry one by one) they don't have information about their orientation. As a result, the lighting of the 2D strawberries (in particular) is incorrect and will vary greatly on their tilt. However, I deemed it to be acceptable given the other benefits and considering the time and work it would take to improve on this. Still, making the 3D and 2D strawberries look as similar as possible took a considerable amount of time. [img]{STEAM_CLAN_IMAGE}/34023786/c6d71f4ec01e4278d8937def3654f1566589d149.png[/img] First screenshot again: [img]{STEAM_CLAN_IMAGE}/34023786/24aa2c68a22e27abfee24ddad8a5d50b7fe70eca.png[/img] For Map 1 I had written several algorithms to automatically generate 2D contour collision meshes for the 3D models used there. While this had saved me tedious work of handcrafting all collision geometry it lead to a bunch of issues with them as well, which especially popped up during the first few weeks and months after launch. For the purpose of smoother gameplay and less bonks I handcrafted all collision meshes for Map 2. I am doing the same again for Map 3, and given the extra paths and more intricate geometry this is as tedious as it gets - but hopefully worth it. (If you have ever dabbled into game development you can imagine the time spent on every step, in particular if you accidentally delete/ overwrite progress such as me making the green stems in this case, or realizing oversights such as not being able to tint seeds yellow without extra data.) [img]{STEAM_CLAN_IMAGE}/34023786/e571e21ae90ed484c62481923b769dd80fc55391.png[/img] That's it for now, back to work.