This is a game about scrunching things. Specifically, scrunching corkraches (which are a lot like cockroaches, but specifically designed to annoy both etymologists and entomologists) and scrunching hair.
Stacey, our heroine, is a teen girl. You know how teens can get when they don't get their way, right? Stacey has had her favorite scrunchie stolen by the neighborhood hound, Bows... SPARKY. Sparky the vile dog. The only thing standing between Stacey and her beloved scrunchie is a bunch of physics-defying platforms and an army of corkraches. Corkraches that must be scrunched. How will she scrunch them, though?
Lucky for her, all of this scrunchy teen drama (appearing this Spring on the CW) has caused Stacey's mighty teen girl rage to swell to bursting ... she has developed the psychokinetic ability to push and pull objects. Wooden crates are good examples of corkrach-whumping devices, as are other corkraches.
Stacey moves around via the A, W and D keys. A moves her to the left, D moves her to the right, and W enters a door. She can move left and right in the air, too. Don't question it. There's precedence for this sort of thing with psychokinetic teens. How does she get into the air, though? There's no jump button!
Instead, she JUMPS WITH HER MIND.
Super Angsty Girl Rage Powers
This functionality is a work in progress.
The arrow keys are used for pushing and pulling things. You pull this off by entering a key gesture with the arrows. That is, you press one key, hold it, and press another ... somewhat like mouse or screen gestures. As with a guitar, these combinations sustain until you release them, so you can't make another gesture until you let go of both parts of the last gesture that you made.
The first key pressed in a gesture (the one that is held) indicates the FROM direction, and the second key in the gesture indicates the TO direction. When Stacey unleaches her psychokinetic blast, the targeted object will move from the FROM direction toward the TO direction. If there is an object in the FROM direction closer to Stacey than there is in the TO direction, that object will be targeted and pulled toward her. If there is an object closer to Stacey in the TO direction, that object will be targeted and pushed away from her.
|Launch Stacey straight up||UP then DOWN|
|Land Stacey very fast||DOWN then UP|
|Push something on Stacey's right||LEFT then RIGHT|
|Push something on Stacey's left||RIGHT then LEFT|
|Pull something from Stacey's right||RIGHT then LEFT|
|Pull something from Stacey's left||LEFT then RIGHT|
|Launch a grabbed object||DIRECTION then DIRECTION|
What's the good of grabbing an object? Stacey can then hurl said object in any direction that she likes by chording like a push, because that's exactly what she is doing. The object will scrunch any scrunchables that it contacts, itself scrunching when it comes up against the unscrunchable. I freakin' love the word "unscrunchable."
Open Source Projects Used
Specific to this game, the key handling and movement physics were pretty much completely replaced, as are a good deal of the sprites. Total changes can be calculated between the following repos:
In Case I Don't Finish
Since I found out about the Game Off so incredibly late (two days before the original deadline), there is some chance that I won't actually finish before the deadline. Even if that happens, this was a pretty good experience. I didn't know anything about Dart before I started, and Danny's original codebase didn't work with the current Dart SDK. So, I have another repo dedicated solely to updating the code to work with Dart.now. I generated a pull request for Danny yesterday, and it appears that he merged it while I was grabbing an unplanned nap, so that's pretty rockin'. You go, open source.
Following is the text of Danny's original README. It's pretty cool that he took the time to put together an example 2D platformer, and you should definitely check him out (his links are at the top of the live game).
Open-source platform webgame Author Danny Hendrix This game gives an example of a setup for a HTML5 game. The game is written in Dart (http://www.dartlang.org/). Demo is available on http://www.dannyhendrix.com/dart/platformgame . To improve performance, the level is buildup from tiles. Objects move from tile to tile, only the tiles that have changed are repainted each frame. Objects are pre-rendered on separate canvases. More information on performance improvements used in this game: http://www.html5rocks.com/en/tutorials/canvas/performance/ Feedback is always welcome :).