Exswinkbike!
…so named by gentleman RC, who did the character art.
Development time: ~20h including creation of background art assets, mechanic tweaking, and briefly flirting with creating an editor (not quite ready for primetime.)
Exswinkbike Prototype 1
Exswinkbike Prototype 2
Exswinkbike Prototype 3
The Practical Value of Cloning
As the name might indicate, Exswinkbike started as a clone of Excitebike. So the design goal here wasn’t particularly lofty; it was mostly intended as a learning experience.
A note on cloning: in learning how to create art, one must master the ‘fundamentals’ – figure drawing, perspective, realistic rendering and the like. One way to approach this is copying the works of great masters. Picasso mastered photorealistic painting before venturing into cubism and making bulls of handlebars. Likewise, every competent artist has copied thousands of Bridgeman or Hale-Richter hands, heads, feet. Copying great works is a great way to master skills. In games, this is cloning. There’s nothing wrong with cloning successful mechanics as a learning experience; people who are learning to program games often start by making a Pac Man or Asteroids clone. As aspiring game designers this is what we need to be doing and doing rigorously. At some point I’ll move on to cloning Ski Stunt Simulator, Mario 64, and things of greater complexity. I encourage any aspiring designer to do the same.
‘Clone’ is not a bad word.
Aesthetics * Skill Ceiling * Input Sensitivity * Abstraction Layer
In its current state, Exswinkbike is similar to Excitebike in two ways. First, the agent you’re controlling is a motorbike with a rider on it which is viewed from a slightly angled side perspective. Second, succeeding at the game is mostly about properly aligning the bike to match the terrain you’re trying to land on. There it parts ways with Excitebike, now more closely resembling an amalgam of Trials and Ski Stunt Simulator, with just a sprinkling of Excitebike.
Exswinkbike has the beginnings of some nice impact aesthetics, provided by the physical nature of the mechanic. These could be enhanced with basic particle effects (dust or smoke particles from the tires, an explosion of particles if the rider hits the ground) and faked video effects (a screen shake on impact).
The input is at the “second layer” of input abstraction because your mouse movement controls the rider, not the bike. So, to influence the direction and rotation of the bike, you move the rider around. Moving the rider changes the center of mass for the whole system, altering rotational vectors. The result is that you can tuck her against the bike closely and lean her forward to increase the speed of your rotation, or push her away from the bike and backwards to decrease or reverse your rotation. The skill is in predicting the direction and speed of rotation you’re going to want and compensating early, sometimes before the bike is even in the air.
In terms of process, I’d call this one a “creep” design. As I accomplished each small, incremental design goal, I supplanted it with another, larger one. I decided that instead of a one-to-one clone of Excitebike, it would be more fruitful to create a basic physics rig for a motorbike. So I built out basic shapes for the bike, tires and suspension, imported them, and constrained them using springs, adding an “engine” torque to drive the back wheel. I decided that powering only the back wheel was adding unnecessary complexity, and was causing the bike to flip more easily than I’d like, so I distributed the force evenly between both wheels. Then I decided I wanted to add a rag doll rider to the rig, which added up to more complexity than anything I’d tweaked and balanced previously. On top of that, I decided I wanted to make the controls mouse-driven, and to funnel all control through the rider rather than map it directly to the bike.
Exswinkbike has a high skill ceiling because the mechanic is simulation-based. Physics-based mechanics have high levels of input sensitivity and react uniquely to minute differences in input. Instead of pressing one button and getting a specific effect, the player sweeps the mouse around in broad gestures to approximate the intended effect. As far as the computer is concerned, the long, sweeping mouse movements are just a series of tiny incremental button presses that have specific effects, but perception blurs this and makes it seem fluid. Functionally, there are infinite numbers of positions and postures the rider can assume. These effects, which speak to the finicky nature of physics-based mechanics and second layer input abstraction, make the initial learning curve steep. By design, however, the frustration inherent in such a steep learning curve is mitigated to some degree by the fact that it’s fun to crash – failure is partially enjoyable.
Prototypes & Evolution
The process here was somewhat broken for rapid prototyping or commercial purposes; this was mostly a great learning experience. The evolution:
This is around three hours’ work. There was a promising feel from the get go: a good impression of speed and some satisfying impact and overlap when the bike recoiled from hitting the ground. I quickly hacked in loss and victory conditions; if the body of the bike touched the ground, you lost. If you made it to the checkered polygon, you won. Of course, ‘winning’ simply means it says ‘win’ instead of ‘lose’ (and resets you just the same.) The most annoying part about creating this initial setup was the respotting, actually, since I had to ‘unphysicalize’ all of the bike’s physics objects, move them to where they were going, and re-run the setup script to get them back to being physics objects again. All in all, though, it’s not hard to build a basic physics mechanic in Virtools if you have a clear idea what you’re creating.
…and this is where I went a bit wrong moving forward. I decided I wanted to create an increasingly complex physics system, but approached it in more of a “bolt-on” fashion. Ideally, you should frontload any complexity and the design process should be a whittling down. In his commissioned essay in Rules of Play, famed designer Reiner Knizia says as much: “I like my game designs to begin with elaborate concepts and too many features, and then later streamline the game play, only retaining the best parts of the design. I find this process easier than trying to bolt on additional elements later, and overall it has led me to more satisfying game designs.”
This is where the bulk of the time that went into this project was spent. When dealing with large numbers of constraints and springs, a system such as this is in danger of becoming unstable very quickly. And indeed it did. The actual tweaking of variables is not so tough, but it’s difficult to make progress if every variable you alter is in danger of causing the entire rig to explode (literally.) Consequently, I spent a lot of time learning about what specific values would cause this rig to go belly up and working around those constraints. One variable that was surprisingly important was the “dampening” parameter applied to each object. A good analogy for this parameter is drag, or air friction. The default value is relatively high and was hampering the speedy feel I was going for, but it took me quite some time to realize what I needed to alter to change the impression of speed. An interesting point raised here is that of variable setup.

When creating mechanics, there are two disciplines. The discipline of tweaking abstracted values and curves to achieve a specific feel is relatively straightforward – a very aesthetic, intuitive judgment, but a fairly obvious one. The ability to effectively tweak a mechanic is dependant on the strength of your vision. If you have a crystal clear vision for the mechanic you’re trying to create, tweaking variables is relatively easy. The second discipline, system design, is much more difficult. You need to set up a system in which the variables exposed will allow you to achieve the desired feel through tweaking. This second discipline is a much more subtle, challenging one to master. Once you have a specific mechanic in mind, there isn’t really a ‘right’ or ‘wrong’ way to go about creating it. You need a very clear vision of the feel you’re trying to create so you have something against which to measure progress. Past that the implementation is up to you. The ultimate litmus test is this: does it work?
If it works, it works. No one will care why and how.
This was the last iteration before I added art and altered the wheelbase to become more stable. In some ways, I like this prototype more that the current working version. It’s finicky, difficult to control, and somewhat obnoxious, but it has a certain charm. Because of the level of difficulty, and perhaps because I’ve played a lot of Ski Stunt Simulator and Trials, it feels like a real accomplishment to grab the reins and really get it to do what you want.
In the final version, I changed the wheelbase of the bike to be a bit wider for more stability, and adjusted the skeleton of the rider until it was possible to tuck her up, close to the bike, for faster rotation.
Moving Forward
I’m going to submit Exswinkbike to the IGF next year. Moving forward, I’m going to experiment with a few different structures. I feel like there is much greater potential for physics-based mechanics than what has been explored thus far. A lot of the physics mechanics out there continue to be shoehorned into existing structures, most often a series of levels (as in a traditional platformer.) A physics-based mechanic dictates a different structure, I think. I’m not quite sure what that structure is, but the first thing I’m going to try is a series of “personal best” parameters that will be tracked and accessible via menu. In the next iteration, the level will have three checkpoints. Between each checkpoint, the player with have an array of personal best values – things like lowest time to checkpoint A, fastest speed, highest point reached, longest air time, most flips in a jump, most backflips in a jump, longest wheelie, longest nose manual – all of which will be constantly updated as the player plays. Each time you score a new personal best in any of those areas, you’ll be prompted and unlock more abilities. I’m going to test a few additions to the existing mechanic that will be unlockable, including a piston like apparatus for controlled jumping, some kind of glider or pseudo flying addition, magnetic grappling for the tires, a gravity reversal device, and the ability to change direction mid air. We’ll see how it goes. Feel free to make suggestions.
- Swink
Comments are working now. Hooray!
Looking forward to seeing Exswinkbike in the IGF next year! I have to say that right now Exswinkbike has a really nice flow to it, the physics are sweet, and I can’t wait to see where it lands a year from now.
Nice walkthrough. Thanks for the link to “Rules of Play”. If I had known that Knizia had written an essay for it, I probably would have gotten that instead of the Theory of Fun book, but I heard they were both pretty good (Theory of Fun fit my college budget). I’ll let you know about it when it arrives in the mail.
[…] One thing that I originally found off-putting about the Indie Game Jam/Experimental Gameplay Workshop was its emphasis on the programmer-as-designer model. I come from an art background, and while I’ve learned how to program well enough to create rapid prototypes in Virtools, solving clever technological problems may never come easily for me. That said, I think the only litmus test one needs to pass to be considered a game designer is that of designing a game. Stupid, right? I honestly don’t care what the medium is (amazing and innovative board games do exist), or whether the game is built around a clever piece of technology. I don’t buy the idea that the only way to innovate is through the prism of demo scene style programming. It certainly seems to help, though I’m almost inclined to call in a ‘correlation versus causation’ strike: it seems that brilliant, creative people – IE people who program at that level – are drawn to creating innovative fare regardless. A foundation of intelligence and education builds thinkers instead of drones, I’d say. Also, and I guess I draft Costikyan on this, it seems to me that different combinations of game elements in different measures and applied different ways do constitute innovation, albeit incremental. I look at a game like X-Com and I don’t see anything that can’t, if componentized, be traced back to earlier designs. That’s not the point, though. The point is how they were combined, how the system feeds into and out of itself, and the overall tuning of the game. The Longview, essentially. God, I love X-Com. […]
Hey, saw that the comments were working, here is the testing I did when you first put up the game, the one you told me to post up for people to read.
Yea I loaded up the game and was taking mental notes, I just figured it would help you more if I just kept this window open and wrote down what I thought as stuff was happening.
- The controls seem to be very easy, but its still hard to control the rider, as in, even tho the control scheme is simple, I dont feel like I have “control” of the bike.
- Once you get the hang of doing front flips, its hard to stop the bike from trying to do a second, and regain control… I’m like on my 30th run…
- The back tire seems to loose, some times it goes under the bike when your at like a 75 degree angle and should just be doing a wheelie, and a few times I landed a cool trick perfect on both tired, but the impact made me spring foward off of the back tire.
-The feel of the game if fun once you can stay on the bike, I’m still having problems stopping rotations, and with the back tire…
-When you land at the perfect angle you do get that smooth feeling of speed that you do in excite bike, I’m trying just to keep the bike level, and not do tricks, its still hard to do cuz sometimes at high speeds the bike wants to flip on its own, even if the mouse is behind the bike…
-On one of the high jumps I landed on an invisible platform…
-I got the hang of doing flips, You start with the mouse in front of the bike, but instead of moving it in a circle (which would have you trying to keep it in front of the drivers head) it seems to work better if you dont follow through and just leave it in front, feels wierd.
-with this new knowlege I am landing stunts, but For no a parent reason, some times at the end of landing one the drive flys off….
- Off of the first jump I did 4 front flips, landed on the front tired, then did a back flip …. awesome
-I reversed myself over the ramp behind the starting point and onto the world of nothingness…
ok about 45 min later…
final thoughts, It seems fun, the only 2 things that messe up the flow, are the control of the spins, I mean trying to level out the bike, even when you have it down, it still sometimes just loses control for no reason. The other thing is the back tire, it seems to springy, but I was thinking if it had less room to move under the bike, it would fix this with out even dealing with variables. Sometimes the bike seems to want to hop off of the ground. Well other than that I mean its fun, but I think it would be ten times better if you didn’t feel like you were “walking on egg shells” with the controls. Though that could be what your going for…
Well I hope I helped out at all, I mean i could tell that after tweaking the games going to be addictive, plus with the goals, and rewards you were talking about adding (for stunts, speed, ect.) it’ll be great.
-Juan
[…] Exswinkbike CritterSwing Swinkeroids Wormsworth Bionic Commando 3d Jumper Exercise Noteswinger […]