Last week, I coded a draft of the game's ending. Allow me to be terribly vague about the specifics, but I'm very excited about what I've been producing.
I've always had an ending of some sort planned for Against the Wall, but on reflection, I never had a very good one. The goal that I listed on the Kickstarter project was that your are "struggling to return to a village located miles above the starting point." Nearly two years ago, that was a major component of the ending. It's changed and evolved much since then. The other week, during a discussion with my friend Atlas, I had an idea for a new conclusion that would be a fun challenge for me to implement. Since then, I've added a couple new layers to the meaning of this ending, and smashed my fists into a keyboard until it was coded.
Note that I still have a ways to go on the other set pieces of the game, the last thing that I produce before beta should be the intro area.
Let's talk about the game's progression.
Part of this game's original experiment was to create a linear game that's gated not by invisible walls or narrow corridors, but by the sheer difficulty of sequence breaking. You could skip almost everything and head right for the highest city, but you're not exactly making it easier on yourself. The experiment has changed a bit. I will be including some backtracking as part of the progression and visits to side areas, though this will always be aided by rail vehicles or elevators.
This change was born out of a suggestion that I received at a the Game Center's Practice conference last November. I asked a crowd about the challenge of guiding players through a linear path in an open world. The best recommendation that I received, via Kevin Cancienne, was that I should just embrace the openness of the world. I originally intended a more-or-less straight linear progression from city to city, the idea being that a player could jump off the highest town and view all the bricks they extended on the way down. While this sounds neat, I'm more interested in creating a good experience on the way up, and fleshing out the world horizontally.
So I amended the plan, but initially kept the same ending. I won't go into specifics, but the original ending was predictable and cliché. I wasn't excited about it, and this lack of excitement was a stumbling block for me for quite a while. The real obstacle was my own obstinance; I was sticking to a set of narrative points that I developed back in May 2011 when I started the project. E.g. I won't reveal X, I won't explore Y, the player can't do Z. Well, I broke my rules in order to create something cool. I'll forgive myself eventually.
I should mention, I will have a job and a few classes during the semester. One of these classes is for a thesis project that is the complete polar opposite of Against the Wall: a networked multiplayer sci-fi 2D twitchy action game. I'm trying to position Cartwheel as an eclectic indie studio, a bit like how Double Fine develops an odd mix of cool, quirky games. I suppose the thread that will tie all of my games together is a kind of expansive minimalism. If that fails, I could try to play the pretentious artist whose work is never understood boo-hoo.
What I've Been Playing (With)
On Monday, I messed with the Game Center's Oculus Rift virtual reality headset (OVR). What's great about this device is that it gives you a good sense of vertigo and a feeling that you occupy space in the world. It's perfect for Against the Wall, though I cannot bet that the thing will go mainstream. The biggest problem with OVR is motion sickness. I played Half Life 2 with the headset for all of five minutes before I had to stop in my tracks. I'm just not used to experiencing games this way, I suppose. Still this could be a great feature for VR buffs and anyone who wants a fully immersive experience on the Wall.
So, I played with the headset and poked the SDK a bit. From this, I've made a list of what needs to be done in order to implement this feature:
- An OVR mode should be added to Video Settings in the Menu. This would override the following settings:
- Resolution will be fixed to 1280x800, full screen. This is the OVR's screen resolution.
- The crosshair will always be on.
- Anti-aliasing will be forced on and set to 4x, rather than optional and using 2x.
- Currently, the player has a camera that renders the world, another camera is used for the GUI, and a third camera for the loading screen. To be compatible with OVR's stereoscopic 3D, I need one camera for each eye, and a special script that adds filters to them and controls how far apart they are. Swapping the camera set-ups will be the most difficult technical challenge with OVR.
- I need a mouse-driven crosshair, rather than the fixed reticule in the center of the screen. This would present the steepest game-feel problem with OVR.
- The Character Motor and Mouse Look scripts need to be modified to account for head-tracking and crosshair tracking.
- The wand would appear to be hovering in mid-air. A solution may be to tie its position more closely to head-tracking movement, so the player never sees the whole thing.
- Xbox controller support.
- Configuration and calibration options in the video settings menu.
- Disclaimer message. I'm not in the business of replacing keyboards.
Implementation should take two days of work, with another day for testing, and another for fixes (generous estimates). It will be a weekend project for sure, as this is a secondary feature. I should be able to provide an update on this by the end of the month.