sylvie

beware of my sword

hello! i'm just a little sylvie, i like posting on this web site. meow meow meow

left half of love ♥ game, with @aria-of-flowers


Linker
@Linker

It’s been a few months since release, so I think this is as good a time as any for a bit of reflection. I don’t really have a blog or anything (I could use my portfolio site though, I suppose, or itch…) so I’m writing here! Obviously spoilers for Flipside, so if you’re interested in my games and don’t want to have plot beats exposed to you, maybe wait to read this!


I’d been kicking around the idea of a 3D Elephantasy for a while, even during the development for the original Elephantasy, but mostly later on after it was out.

I did a bunch of prototyping and dev work after Elephantasy released. Some of this involved working with another dev Somfunabulist (aka Myles) on a joint project that we both sort of fell off of. What’s important here is that I got a nice jumping/z-axis system working, based on one of my older attempts at making an isometric game. After we both fell off of the joint project, I got thinking about making another isometric game, which led to the Isometric Dungeon Crawler I was working on in late 2021 to early 2022. That project was also a sequel/spinoff of an old project, but I may talk about that another time. This also fell through, but it left me with a basic isometric game engine, props that could be manipulated/stood on by the player, and a good foundation for platforming. Now I just needed an idea for how to use everything.

One night, lying in bed, I started thinking about psuedo-3D and sprite stacking. This is a technique where devs will layer 2D images in slices to give something the illusion of 3D. I had an idea of making a 3D environment built around these kinds of 3D blocks, walls, etc. built up in 3D space, such that the camera could rotate accordingly and things would look right. It was at this point that I injected Elephantasy back into the idea; I had a mental image of Belle wandering around a lighthouse on a forested plateau, maybe jumping around, walking up slopes, and so on. It was a bit ambitious, even for me. So, I scaled the idea back a bit to work with systems that I already had. Thus, the project that would become Flipside was born!

The first big hurdle mechanically was getting the perspective and platforming to work. I initially wanted dynamic 3D platforms such that I could set up with the corners being points in 3D space, and then make them any size/shape I wanted. My first attempts at this were promising, but inevitably things fell through. Draw order and faking the perspective (making things appear behind other things in the 2D space) was the main issue, and it would continue to be an issue up until release. I had managed to get props (ie. pots, bombs, etc) to stack and act as platforms, both for themselves and for the player. This was a big part of the gameplay I was envisioning, and something I lifted directly from my inspirations for the game (Knight Lore by Ultimate, and Solstice by Software Creations). This caused more issues with perspective, however, and so I eventually scrapped the dynamic platforms in favour of making the world out of individual “tiles”. For a few weeks none of the tiles had side-textures (I was worried about causing performance issues) but I eventually figured that out too.

To quickly get into mechanics, each tile has separate height and base values; these dictate how large the tile/pillar is, vertically, which in turn is how collisions are determined. Props work similarly, except that instead of having dynamic height and base values, props always just have the same static numbers for their dimensions, and use those to determine collisions. Each tile also has a top texture, which determines their side-texture. These side textures are then placed in segments, from top to bottom, along the “sides” of the tile pillars. This way, if a pillar shrinks and grows, it will continue to look right. This was a bit of a pain in the ass, but the final look isn’t too bad! Best of all, it wasn’t too bad performance-wise! Hooray!

I came up with the story concept pretty early, at least partly. Belle, the main character from Elephantasy, had aged a bit since the first game; she now has a name (I had her name in mind since the first game, but I largely kept it as a headcanon) and she has learned how to jump in the interim. I knew that, mechanically, I wanted to have the player run around two separate worlds (Link to the Past style) (which gave me the idea of something breaking out of the underworld) and I knew I wanted to have a “belly of the beast” style level at the end, with some kind of deception re: death’s identity. I knew that collecting lost souls would also be important (though their names/personalities mostly came together later on in development). Ludos, the lighthouse keeper dog, was also an early idea, though he was less developed than he could have been. And finally, I knew that I wanted the needle to be a useable item in the final battle, which you could swing/throw like a spear. Other than that, though, most story beats got fleshed out on the fly.

I have rough maps from this time showing how the early-game areas would connect. I ended up building my own in-engine room editor specifically to avoid using Game Maker Studio’s default room editor. It’s a mess, but it’s my mess, and it gave me much more control over how the areas were put together than I otherwise would have had, imo. As I built rooms, I would add them onto physical maps on graph paper, which I used to place myself in the world and plan how I wanted areas to look. It was a tedious process, and ended up being what the majority of the development time was spent on.

As a somewhat related tangent, in Flipside, rooms are loaded on the fly from .ini files in the game save data; when starting a new game, a default set of .ini files is copied over to the save folder for use/modification. The only thing I (as a dev) could update room-layout-wise on players’ games was this default set of rooms. This lead to issues upon release, when some rooms would be broken and I couldn’t fix them for preexisting save files, because they were using the set in their save folder, not the defaults, to load the world. Go figure!

I also knew, gameplay-wise, that I wanted more items than the original 4-5 in the first game, all of which return in some capacity except the vine item. The vine was initially supposed to return, but evolved into the wand (which originally created floating platforms that vanished after a while). Some items had new uses too; the boots now allowed you to bounce/flip off of walls (a scrapped idea I had for Elephantasy), and the bird from the first game, Polnareff, became the method of warping in the sequel. Then there was the herb bag, a combo of the seed satchel from the Oracle Zelda games and the potions from Soltice; I liked the idea of a multi-tool item, which could do lots of things, but only a limited number of times.

Items could also be upgraded in Flipside, which meant coming up with secondary uses/abilities for each item. The issue, however, was redundancy. I wanted each item to have its own uses, so that none of them became unusable, and none became too powerful. I don’t know that I entirely succeeded (the bubble, like the scuba gear in the first game, feels either essential or useless, and the book can be ignored entirely on repeat playthroughs) but that was the philosophy behind what items ended up in the final game. In practice, height-economy became most important. Items that allowed for easy vertical mobility (like the herbs or the boots) were VERY good, and could circumvent a lot of puzzles. I have some gripes with this, but at the end of the day, the game is more a sandbox than a rigid puzzle game anyway. And it’s fun to figure out ways to get around!

Anyway, this post is getting kinda long, so I may do a separate post talking about the aftermath of release (which was successful, but also spiked my anxiety). We’ll see! All in all, Flipside was/is probably my most ambitious game to date, given how much shit I had to figure out on my own (level editor, perspective, “3D” platforming, etc.) so I hope folks have enjoyed it! If anyone has questions, lmk and I’ll add explanations if I can.


You must log in to comment.

in reply to @Linker's post:

I loved how the game looks! And I know you made a level editor... was it easy to make levels? I'm always interested in people's custom tools. It seems like it was easy enough given how nice the end result looked!

It was relatively easy, though there were definitely some quirks to the editor (because I cut corners in places) that made it more difficult. Still, it had everything I needed, and that was what really counts! At one point I considered adding a second scenario to the game (like the second quest in Zelda 1) with altered areas/item locations, but I was so sick of making rooms by the time the game released that I just wanted it to be done. I still might, though! We'll see!

this was great! throughout angeline era's level design i've been thinking back to how most of flipside's rooms each have their own 'characterizing' idea to it, whether it be a puzzle, action-y challenge, or just like a spatial thing. a few questions:

  1. were there any organizational logics or themes you used for brainstorming those individual rooms?
  2. what were the broad strokes in the process of the final world layout coming together?

Great questions! I'll try to answer them as best I can:

  1. I think in terms of brainstorming individual rooms, I looked at them from two angles: how the fit together into larger structures in the world (are they a part of a tower, corridor, maze, etc.) and what mechanics/items were being used in the larger areas. Most areas in the game have a soft focus on one or more main items, with some side areas for very specific puzzles with other items that aren't strictly necessary. For instance, the palace ruins (the red brick area in the underworld) were designed with boots in mind, and the whole underwater part of the ocean was obviously built around the bubble. So sometimes I would design rooms to utilize these items in specific ways, especially if there were ways of using them that weren't immediately apparent. I also had a list of "sequence ideas" which I would add to and pull from when I was designing things; these were basically scenarios that I thought might be fun for players, like the lava river sequence in the volcano, the little sokoban-esc challenge in the ice area, the shipwreck on the seafloor, the Duke miniboss, etc.

  2. I started by trying to figure out what areas I wanted in the game, and then laying them out more generally. I made two rough flowchart-like maps (of the overworld and underworld respectively) and loosely connected the areas together. I wanted a fairly open world with lots areas you could access right at the start, but I also wanted some inter-connectivity, like with the underground areas in the underworld linking up in places, or the hidden village and the volcano. In practice, some areas didn't end up being attached to others in the way I'd initially planned (or were connected to different areas, or were scrapped entirely!) but in the end, all of the areas currently in the game were conceived at this stage. From there, I started by making individual rooms for the main island area in the overworld, and Death's palace/the item hub area in the underworld. Then, at some point, I started laying out how I wanted the areas to look on graph paper first, and then filling in the space I'd blocked out with the necessary number of rooms. This was better and worse than the freeform way I had been doing it; on the one hand, it gave things a consistent size, and meant that I wouldn't run out of steam and make some areas super short because I'd never committed to an area size. On the other hand though, filling in the rooms was tedious, so seeing the blank areas wasn't always great for morale (especially doing the belly of the beast level; that whole area I was getting more and more burnt out).