Metamorphic is a first person, physics based, puzzle platforming game I've been working on for the past three years. Developing its core mechanic was by far the hardest part of the development process so I thought I'd share a bit of the work that went into making it.
It seems to me that most game developers begin a new game with a specific core mechanic or an art style or a storyline. These places, certainly, do seem like valid points to start. However, when one’s desire with a game is to deliver a certain feeling to the player, none of these places seem like quite the right way to begin. For this reason, Metamorphic was built from the beginning with a different guide in mind – specifically the desire to convey the excitement of building for purpose and the beauty of physics and engineering. It was this mindset, I believe, that ultimately allowed for the mechanic of Metamorphic to evolve and permute into something that could deliver the experience I had originally imagined.
I began with two mechanics that I thought embodied this feeling – one where the player could create and destroy static blocks and another that would allow the player to transform these cubes into a vehicle if assembled in the correct formation.
While the cube gun was well received, players had a lot of difficulty with the Sphere Car. It didn’t help that there was no method in the game to convey to the player the specific configuration needed to make it, but regardless, people weren’t all that enthused when their ‘creation’ came to life.
Originally, I thought that perhaps this reaction was coming from the fact that the Sphere Car wasn’t that fun – its only real use was to ride over water – so I prototyped two more (in theory more fun) morph objects: a speed area and an antigravity creator. These mechanics worked in various convoluted ways, but perhaps inevitably play testers liked them no better than the Sphere Car.
Although it took me a while to understand these reactions at the time, in hindsight, they seem very natural and obvious. With this mechanic, players weren’t actually building anything themselves, they were merely following a very specific set of rules to make something I had created. This idea worked well in LEGO games where worlds were open and the vehicles had new abilities, but in Metamorphic, this mechanic felt restrictive and contrasted immensely with the freeform block placement ability players already had. Although I had spent a significant number of hours on all aspects of these three mechanics, I eventually accepted they were not and could not be good enough so I decided to scrap them.
After a few days of searching for new ideas, I eventually stumbled across a voxel-based buoyancy script. Immediately, I saw the possibility of making a voxel based physics mechanic and realized that not only would such a mechanic be more user-driven, it also seemed it would have many possible uses (a fact that would haunt me near the end of development). After another long period of prototyping, after just a few hours of play testing, my suspicions were confirmed! People were really excited by the way the mechanic worked and were quite enjoying playing through the few levels I had made. Finally, after what felt like an obscene number of hours against a wall, I felt I beginning to see over it!
While at this point, I was certainly on the right track as far as the creation of a suitable game mechanic went, there were still a couple of crucial permutations and a bit of pruning that would needed to happen before the mechanics would deliver the feelings they needed to.
As two was not enough, I prototyped three more mechanics, however, only the first of these – the helium voxel – would make it to the final game. The second, the platform voxel, a mechanic that allowed the player to create an arbitrarily large platform connected by the vertices he defined, ended up not being nearly restrictive enough and proved to have an incredible number of buggy corner cases. It was a fascinating concept, but Metamorphic wasn’t the right fit for it. The third – the foam voxel – allowed the player to create morphed objects which floated on water. I was convinced this mechanic would make the cut until I began trying to make levels with it. Compared to the three other mechanics, I had a lot of difficulty coming up with more than a handful of uses for it. Despite the fact that it was definitely fun, I ultimately decided to leave it out. (However, having now designed quite a few levels, I can see more potential uses, perhaps you’ll spot it in an future update!)
Finally, I would find that when morphed objects became large, the number of mesh colliders within them caused their simulation to run hilariously slow to a point where it became extremely unrealistic. Gutting this code and replacing it with code that would find the optimal cylindric representation of the volume, however, fixed this issue.
There are three key changes in mindset I’ll take with me to my next game.
First – I will absolutely not spend any more effort prototyping a mechanic than is absolutely necessary to understand it. I dropped a lot of hours into getting that fancy vertex morph to work for the Sphere Car, but ultimately that effort was wasted.
Second, I will try to be more open to showing less developed versions of my work to others. (This one though, I think is really hard for those with no track record to really take to heart. I certainly felt that if I showed an extremely rough prototype of my work to someone, my efforts wouldn’t be taken seriously.)
Finally, I would spend as much time developing levels as developing mechanics. For the longest time I was just churning out code – I felt I needed finished mechanics before I could play a level. While this was certainly true to some extent, it was through making each level work as expected that the mechanics evolved to be as they now are. I probably spent a solid week coding the platform voxel, but then immediately when I tried to design a level for it, realized it was going to cause a lot of headaches. No matter how much I simulated the way things would work in my head, it was only through making levels that I could really understand what the mechanics needed to be.
After many hours of watching and hearing people play Metamorphic, I believe this morph mechanic ultimately comes tantalizingly close to bringing about the feeling I originally intended. Although looking back at the evolution of the gameplay the path seems obvious, each step of the way was a challenge that, at the time, seemed nearly impossible. I am extremely proud of what Metamorphic has become and exceptionally excited to hear what you have to say about it when it becomes available on Steam in just two weeks!