Saturday, July 10, 2021

In-depth look at Simile Thoughts

     If you've seen my previous post, you might be wondering if I've abandoned Paperboy. Don't worry, I have not. I've just come to the – slightly late – realization that, before diving deeper into making a full-scale game, I should probably finish the one project I had been working on for years. So I put Paperboy aside for a little bit and focused heavily on finishing Simile Thoughts, a mappack for Mari0. This is what I'll be covering today.

      Before anything else, however, I highly encourage you to take a look – and read – into the mappack's main post, over on the Stabyourself.net forums. Here's the post in its full glory. It covers a lot of what I'll talk about in this postmortem, and also has a few pictures of some of the levels if you're curious about the overall looks of the project, since I won't be covering every single level here. If you intend on playing this mappack, I highly recommend doing so before reading this blog post, as it will contain spoilers for some of the puzzles.


     Simile Thoughts is a project that started in roundabout April of 2018 (that is the earliest I can trace any file that directly relates to the project). The intent was to create a spiritual successor to Hollow Purpose, my previous Mari0 mappack. Both mappacks are designed under the same core idea: instead of a traditional, tileset-based, sidescrolling mappack, both would have their puzzles set in a single, static screen, and make use of the custom background to act as the playable area.

     For Hollow Purpose, the single screen was the imposed limitation (as that was the theme of the contest it was made for), and the custom background was the solution I found to make it as flexible as I could. For Simile Thoughts, I wanted to take this idea and expand upon it. It provided many advantages over its sidescrolling counterparts, such as greater reliability with mouse interactions, and infinite freedom with the visuals (as opposed to being locked to a tileset). It was also the perfect creative outlet to explore new puzzle ideas and make as much use of any given space as I could, which, in turn, led to more ambitious, creative puzzles with far more element reuse.

     From the very beginning, my idea was to make this a mappack with 16 puzzles and 4 world themes. The challenge was then to conceive of new ideas to make those puzzles. And there was a catch: all of that had to be done with the constraints and limitations of Mari0 1.6, which, while the latest officially released version as of writing, is extraordinarily outdated when compared to community-maintained mods and updates, such as the official beta versions of Mari0: Special Edition, the fan-made mod Alesan's Entities, or the community-driven Mari0: Community Edition (coincidentally hosted by yours truly). For context, Mari0 1.6 was released back in 2012!

     The limitations of Mari0 1.6 were almost unbearable at times. The simplest things could not be achieved as trivially as with any of the alternate/modded versions of Mari0. Some examples: fizzlers in 1.6 are permanently on, they cannot be toggled; lasers are always deadly; cubes always auto-respawn; there are no logic gates besides the NOT gate, and the NOT gate cannot be turned invisible. The list goes on and on, but the question remains: if that version was so restricting, why stick to it?

     There were a few reasons. The first, and most important reason, was because of a shift I had seen in the Mari0 map-making community. Everyone was moving on from 1.6 way too quickly, in favor of versions with new entities, animated tiles, and everything customizable. While there is nothing wrong with that – I myself have made use of all of those new toys on several occasions – it did rub me off as overlooking the potential held by those already-existing features. I had seen plenty of mappacks, even for 1.6, which had "custom elements" be the focus of the gameplay, but very few mappacks using the existing mechanics, with their intended purposes, in new and innovative ways. So that was something I wanted to change. I wanted to create a mappack that 2012/2013 me would have loved to play. One that didn't require any mods, or learning new mechanics, or getting used to new features. Just a pure, vanilla mappack that really tried to squeeze out the usefulness of the early features.

     The second reason was that I wanted to turn this into a visual design challenge. I wanted to see how fancy I could make these levels with only the techniques and tools described previously. If you take a look at Pop A Portal, a mappack I made back in 2013, you'll see how overly simplistic and limited the visual design was. Even if you ignore the dated graphics, the limited tileset meant that every level felt "samey". Similar tile patterns, similar vegetation, similar overall atmosphere. I wanted to do away with that. I wanted something as fresh as playing Portal 2 for the first time: every chamber is a new visual experience, even when the underlying elements are mostly the same. I wanted to enter a chamber and see pink flowers, or a fancy wall art, or some dilapidation that responded to the environment. I wanted each chamber to have its own impact, its unique mark, its own DNA. So that's exactly what I did with Simile Thoughts.

     The third and final reason was that I wanted to push myself creatively, and explore my own creative solutions to all these limitations. Given that I presently intend to seek work in the game development industry, I found it important to get used to dealing with seemingly impossible to overcome challenges and restrictions. I didn't allow myself to modify the game, I didn't allow myself to have scrolling levels, and perhaps most importantly, I wanted players both new and old to the game to have a good time, so I didn't allow myself to assume the player to be completely acquainted with the game. In doing so, I spent a long time sketching a number of ideas and prototypes, classifying them by their element usage and difficulty, and building a gradual difficulty curve whilst also making sure the gameplay was consistent in each world.


Early sketches and rough ideas. Most of them didn't make the cut into the final mappack.

     This project ended up giving me a lot of insight into what I should prioritize when designing levels. By laying a clear set of goals, I was able to jot down which features were important to tutorialize, which mechanics needed to be introduced better, which element combinations had potential, and so on. By being so restricted in puzzle size, I was able to efficiently determine which puzzle ideas were or were not doable, which moves were the most interesting, and most importantly, how to make as much use of any given space as possible. While early levels were more "spacious" and with fewer moving parts, the later chambers had tighter layouts, with more gameplay happening at any given section.


As is customary with any large-scale project of mine, my whiteboard was completely overtaken. The stars represent the level's difficulty; beneath them the core puzzle element from each test. Those were the metrics that would later determine the final order of the puzzles.


     Some of those sketches were of fully-visualized puzzles, which in turn became playable prototypes, while many were snippets of puzzle ideas or simple concepts that would later have puzzles constructed around them or be merged together with other ideas. This stage was extremely experimental, and it's where puzzles saw the most change – from small layout tweaks to complete overhauls of core ideas and moves. It was also during this phase that many new ideas came about, as experimenting with the mechanics in-game led to new and interesting discoveries that were later forged into their own puzzles.


Earliest available video of what then became puzzle 4-1, nickname "Pink".


     As time went on, I kept on taking notes of each idea that could be worked into a Mari0 puzzle. Eventually, I had all 16 puzzles I needed, with a few backup puzzles and ideas – which, incidentally, helped save a lot of time later on. It then became the optimization phase of the project.

     The next challenge was making sure every puzzle was consistent and reliable. A big problem I've encountered with my previous mappacks was that players would often try to beat the levels in unpredictable ways, often times by simply not understanding what was expected of them. With Simile Thoughts, I wanted to make every room as readable as I could. Superfluous elements were removed, crucial moves were narrowed down and emphasized, and the layouts were adjusted so that all moves were easy to execute and worked every time. Plenty of puzzles had mechanics or ideas that relied too heavily on precise coordination, timing, or sometimes even luck, and those were cut away. Other puzzles had moves that were too tight to execute, or had too narrow a timing window, and those were improved and optimized as best as I could. For example: in the video above, the portal surface directly over the faith plate was lowered by a block, so that reaching the platform with the button became an effortless task.

     With all this "cleaning up" done, it was finally time to get working on the visuals. I rearranged and reorganized levels based on a number of criteria that were fundamental to the flow of gameplay. The first criteria was perceived difficulty. Hollow Purpose, in its limited scope, had no room for introducing ideas and puzzle elements in an organic fashion. As a result, most players spent far more time in each of its two levels than they would have had the mappack taken its time as Simile Thought did. So the first few puzzles were the easiest, while the last few ones were the toughest. Moreover, with each chapter, the initial puzzle would be slightly easier than the previous chapter's final test, giving the player some mental rest, whilst also providing them with space to process the new environments and sets of puzzle elements.


Illustrative graph, meant to represent the general approach towards difficulty across each world and level.


     On top of the visuals, each world would offer a unique set of puzzle elements and tools that would match that world's theme. Which meant that deciding the themes and their order could only happen when the 16 levels were more or less set in stone. Not only did I have to sort levels by their difficulty, I also had to group them together by puzzle elements, such that they made sense in conjunction. I had a few potential themes in mind, and eventually found a sequence of levels that worked well enough for them.


Original draft for world themes and puzzle ordering. Interesting to note is that the first puzzle designed ended up becoming 4-1, the same level in the earlier video.

     With the puzzles designed and sorted, and with the themes chosen, it was finally time to get the graphics part going. With me so far? Because this was September of 2018, a mere five months after the conception of this project. I didn't know it at the time, but I was just getting started, and was about to enter the toughest, most time-consuming phase of the development.


1-1, humble beginnings...


     It turns out that making the levels as highly detailed as they turned out to be is a process that takes months, since I had to be constantly reiterating, tweaking, testing and adjusting the visuals through various layers and blending modes until it looked acceptable. Moreover, once I was happy with the results, I then had to start the process all over again for all subsequent levels. The bulk of the work took place mainly at the first level of each chapter, with the other levels being "easier" in that most of the assets and creative decisions were already made and could just be "copied over" (and, by "copied over", I of course mean manually copied and pasted for each tile, and adjusted according to each level). Yet, even after all levels in a given chapter were finished, I continued coming back to them, either to improve on their visuals or to adjust for changes in layout.

     On top of that, I was working a full-time job at the time, and had to proceed with most of the development in my lunch breaks. Moreover, I also worked on several projects in parallel while developing Simile Thoughts. While I only had roughly half an hour to work on it per day, it was actually a great way to keep the project going at a steady pace, since most of the work at this point required very little "preparation" or mental effort, and could, for the most part, be picked up and left off at any given point.

     When working on the visuals, one aspect I tried to be very cognizant about was contrast. I wanted to ensure that the foreground and background elements were easily distinguishable, and I constantly worried about clarity of layout. I wanted players to be completely clear on what they could or could not interact with, which areas represented safety or danger, and where the goal was. I kept the foreground with higher contrast and darker colors, and the background with more muted, softened, lighter textures.

     Another important aspect was clarity in connections. I used a variety of techniques to get around the limitations imposed by the antline system in Mari0 (antlines are the little dotted blue lines that connect elements together and change color according to their power status). In some places, I used fake, "deactivated" antlines in the background to communicate branching lines (which are not available in this version of Mari0) or to cross over gaps that are offset of the entity's default grid. In others, I broke off large gaps or used cables where the longer antlines would otherwise visually clutter the level or cause confusion.

     Finally, one of the key visual aspects I kept in mind at all times was color palette. I wanted each individual world to have its own, unique, instantly recognizable palette. I wanted players to be able to tell from afar in which world they were just by looking at it. Given the four distinct themes, it was a relatively easy task. I ended up taking many, many creative liberties to ensure the colors were interesting and distinct enough – that's why the third world, inspired by Portal 2's "Art Therapy" style, actually looks like it's nighttime, when the original theme did not. I gave each world a primary and secondary color. The primary color would be the most recognizable, the one you see when you zoom far out from the levels. The secondary color would provide contrast between foreground and background, or increase the level of detail within the given set of tiles and textures.

     For the "Night Therapy" theme, I wanted each level to bear a unique piece of wall art. I often times felt that Portal 2's "wall art" pieces were interesting, but sorely lacking in variety, colors and dynamism, so I took it upon myself to make each level have its own artistic identity. In one level, you're soaring through a rainbow. In another, you might be walking past some snowfall, while a little snowman watches you idly.

     Likewise, for the "Overflowered" theme, I wanted to expand upon Portal 2's "Overgrown" theme, by introducing more variety in types of vegetation, such as new vines, colorful flowers, mushrooms and more. Each level in this theme bears its own secondary color, as well as its own focal "nature" theme. In one level, you walk over sand and past cacti. In another, you have red flowers and huge mushrooms.

Each world's unique color palette, as well as World 4's per-level secondary color.

 

     This period of lunch break development occupied the vast majority of the project's runtime. Cut ahead to January of 2021. Now that I no longer had a full-time job, I could dedicate myself more thoroughly to Simile Thoughts' development. I managed to finish all the important levels, leaving only minor things such as transitions and ending incomplete. I figured it was high time to get the mappack playtested by someone else, before I was ready to call it a wrap.

     I got myself a playtester already familiar with Mari0, and right away he found tons of exploits with varying degrees of severity. Some were a quick fix, others required major relayouting. However, unfortunately, three of the mappack's puzzles were completely unsalvageable. I had no choice but to create three brand new puzzles from scratch. Thankfully, I had kept all of those "extra puzzles" I mentioned earlier in the planning phase, which ended up saving me a lot of work. I managed to make use of two of those puzzles, and used one of those "ideas sketch" as part of a larger, brand new final chamber.

 

Comparison between the old, discarded levels, and the new levels that replaced them. The World 2 puzzles had to be reshuffled to accommodate the new level's easier difficulty. World 4 levels kept their individual themes and some assets, but still had to be mostly remade.
 

     Remaking those levels, as well as designing those previously-mentioned transitions and end level graphics, cost me a few extra months of work. After facing some scheduling complications, I was encouraged by a friend to release the mappack, and resolve potential breaks and exploits as they happened. And so with that, Simile Thoughts finally went public! I did have a few players find new exploits, which were swiftly patched, and I had to content myself with using some royalty-free music in order to speed up the release, but I can finally put this project to rest now!

     As for the future of Simile Thoughts, it is uncertain. As of writing, the mappack hasn't received much feedback or playthroughs. I had plans for working on a mod that would introduce many quality of life features, graphical overhauls, sound replacements, and just generally make the gameplay as smooth as possible for both new and old players. However, since there hasn't been any demand for such a mod, working on it would entail a lot of time and effort that could be spent better in continuing the development of Paperboy.

 

Preview of how far I had gotten with the mod project. Keep in mind that this version was a prototype, and would have to be rewritten from scratch, were there to be a demand.

 

     If you've read it this far, thank you very much! Simile Thoughts was a passion project of mine, and I'm incredibly proud of how it came out. I have acquired many new skills in pixel art and level design that will be of great value for my future projects. I hope to see you in my next blog post!

No comments:

Post a Comment