One caveat on the following: it all seems to be written in the past tense, but this shouldn’t be mistaken as an indication that things have changed in the present! Past tense just seems more suitable for telling a tale that’s over a year old. Once again, apologies for not starting this blogging process sooner!
The initial plan for this game was to make something simple in order for us to get up to speed in a new development environment, namely C++/openGL.
The assumption was that we would be able to leverage our experience with physics/collision/platformers — not spending much time learning/developing the required technology — so as to allow us more time to learn the new tools.
The high-level direction for the game was “Umihara Kawase + parkour”, in a world where the environment was not just static platforms, but moving, mechanized, segmented “robots”.
In N the player can’t really interact with anything, and the “physics” is pretty one-way — you feel the world, but it doesn’t feel you. We wanted to make things bi-directional, and in doing so open up all sorts of possibilities for player action — moving things around, shoving, tripping, etc.
We tried to define more concrete features we wanted to support:
1) Soft Collision: instead of a rigid circle as in N, we wanted the player to feel much more forgiving and “soft” when interacting with things — basically, we wanted users to feel like the thing they were controlling actually had knees.
2) Rope: we wanted a simulated rope which supported all of the behaviours found in Umihara — you can wrap it around things, you can attach it to things and pull them, you can swing on it, etc.
3) Full-Blown Simulator: in order for interaction to be two-way between the player and the rest of the world, both the player and the rest of the world have to be simulated. This requires some sort of physics model governing the movement of all objects in the world.
When we started planning things, we estimated that these features would take a month or so in total. This may seem a bit optimistic, but at the time it didn’t seem like much work because a lot of it had already been done: we already had a working rope-simulation working in N’s tilebased engine, and we figured that the physically-simulated enemies the player would be shoving, crushing, and throwing could be modeled simply by extending the bounceblock model in N, to create sort-of-springy, mobile assemblies of chunky shapes.. robots.
At least, that was the plan.
After a month or so of prototyping various simulation ideas, it became apparent that we were going to have to rethink our approach — we wanted a certain feeling/fidelity from the world which just wasn’t happening with our simple physics models. All of our mockups seemed much too “N with a grappling hook and some moving bounceblock piles”, perhaps because that’s exactly what they were — we were using N’s tile-based simulator for prototyping!
Here’s a look at one such very early prototype — just download and unzip it, instructions are onscreen. Swinging around is sort of fun, you can sometimes get a good “run up the wall and across some of the ceiling” sort of thing happening, but in general this left us feeling quite “meh” — it was obvious that the concept had potential, but we weren’t going to create the sort of feeling we wanted by simply recycling existing technology.
This lead us to start from scratch, building an entirely new and different “robot simulator”..
**EDIT: the prototype is over a year old, and is meant to demonstrate some of the things mentioned in the post, rather than provide an accurate picture of where the game is headed! **