Escape Velocity
I thought I would do a postmortem on a prototype I have been tinkering with in the hopes that A ) others may have insights into the design challenges I struggled with and B ) it might give other people interesting ideas.
Web Build
What is?
Escape Velocity started as my entry into this years Global Game Jam. It is a very simple game. The player controls a centipede like creature which accelerates along a closed circuit. The player has only one button which when pressed will launch the creature from the circuit. The creature will either hit and kill another player or end up on another circuit.
The game is essentially a deathmatch. First to 8 kills wins. Kills are obtained by hitting another player side-on. With every kill the creature becomes longer, making successful players more vulnerable while providing a clear visual indicator of the number of accumulated kills.
Why is?
I wanted to experiment with how many people can share a single keyboard and create interesting social/physical interactions between players. I was inspired by Fingle:). Later I became curious about how many people can play on a single pc sharing the keyboard and multiple gamepads. The current iteration theoretically supports up to 20 players, however I have not tested with more than 10 and suspect it will become laggy.
What went wrong
Writing my own line intersection tests.
For some reason unity does not provide any functions to perform simple 2D or 3D line intersection tests. I spent a great deal of my global game jam time implementing my own and fighting floating point bugs. If anyone knows of a lightweight, simple and robust library that provides these functions I would love to know about it!
Visual noise
Although the mechanics in Escape Velocity are pretty simple, the game itself is quite frustrating and difficult to follow. Players join the game by selecting a key and the double tapping it. Its quite difficult to associate the key you just pressed to an avatar on screen. When everyone joins at once its chaos. Although I tried to keep the aesthetic clean and simple, clearly displaying more than 6 players concurrently is a challenge.
So What went right
Music by Creative630
@Creative630 created an awesome soundtrack for me during the jam which encouraged me to push on with the game, even when nothing else was working.
Rage Spline
I love building things with splines, and had been keen to try RageSpline for a while. With it I was able to mock up assets and levels in seconds. Its simple and really straightforward to use. Documentation could have been more thorough, but the source code is well structured with well named variables, making it easy to extend any functionality I needed.
I finished it!
... kinda. Finished is a pretty strong word. But the game has a title screen, a level structure, and a basic game loop, which is more than I can say for a lot of my past games. I really want to hone the skills with finishing projects since its pretty damn difficult, but very gratifying.
I found that the upper limit for players sharing a keyboard is about 8 people due to both physical space and certain keys blocking the signals of others. I think that the design space of ‘many players one device’ is really interesting. I’m keen to explore it further. I think my next attempt will likely have much slower gameplay that can scale to support 10 to 20 players. I’d love to know about other games that follow this design.
Web Build
What is?
Escape Velocity started as my entry into this years Global Game Jam. It is a very simple game. The player controls a centipede like creature which accelerates along a closed circuit. The player has only one button which when pressed will launch the creature from the circuit. The creature will either hit and kill another player or end up on another circuit.
The game is essentially a deathmatch. First to 8 kills wins. Kills are obtained by hitting another player side-on. With every kill the creature becomes longer, making successful players more vulnerable while providing a clear visual indicator of the number of accumulated kills.
Why is?
I wanted to experiment with how many people can share a single keyboard and create interesting social/physical interactions between players. I was inspired by Fingle:). Later I became curious about how many people can play on a single pc sharing the keyboard and multiple gamepads. The current iteration theoretically supports up to 20 players, however I have not tested with more than 10 and suspect it will become laggy.
What went wrong
Writing my own line intersection tests.
For some reason unity does not provide any functions to perform simple 2D or 3D line intersection tests. I spent a great deal of my global game jam time implementing my own and fighting floating point bugs. If anyone knows of a lightweight, simple and robust library that provides these functions I would love to know about it!
Visual noise
Although the mechanics in Escape Velocity are pretty simple, the game itself is quite frustrating and difficult to follow. Players join the game by selecting a key and the double tapping it. Its quite difficult to associate the key you just pressed to an avatar on screen. When everyone joins at once its chaos. Although I tried to keep the aesthetic clean and simple, clearly displaying more than 6 players concurrently is a challenge.
So What went right
Music by Creative630
@Creative630 created an awesome soundtrack for me during the jam which encouraged me to push on with the game, even when nothing else was working.
Rage Spline
I love building things with splines, and had been keen to try RageSpline for a while. With it I was able to mock up assets and levels in seconds. Its simple and really straightforward to use. Documentation could have been more thorough, but the source code is well structured with well named variables, making it easy to extend any functionality I needed.
I finished it!
... kinda. Finished is a pretty strong word. But the game has a title screen, a level structure, and a basic game loop, which is more than I can say for a lot of my past games. I really want to hone the skills with finishing projects since its pretty damn difficult, but very gratifying.
I found that the upper limit for players sharing a keyboard is about 8 people due to both physical space and certain keys blocking the signals of others. I think that the design space of ‘many players one device’ is really interesting. I’m keen to explore it further. I think my next attempt will likely have much slower gameplay that can scale to support 10 to 20 players. I’d love to know about other games that follow this design.
Comments
Not just the postmortem, but I like where you went with the game. The tail trails show how fast players are moving at a glance, the score filling in the tail AND making top scorers easier to hit? Smarts! I like the on-track elements too. About the only thing that I'd like on top of all of this is a constant key-leap/turn direction. If you wanted to cross a line in the other direction, you'd have to just tap the key and have a little bit of "re-join amnesty" so that controlling the players became a little easier to predict.
Awesome game, gratz!
Must say the controls are pretty confusing - pressing the button at all will make your jump off, if you hold it it will rotate in one direction, if you leave it it'll go in another... But sometimes they flip around? If you keep tapping it it can potentially go in a kinda straight sort of swim?
I don't feel like I'm in control... Maybe it'll just take a few plays but I don't know what to expect when I hit the button.
Not sure how to make it better, maybe if you press a key you'll leave the track, if you leave it you'll join the next one you touch. That to me makes absolute sense, like a slingshot (that also means needing more round tracks and fewer straight tracks to mix up the trajectories)
But that might just be a completely different game. Another thing is to maybe... When a new player spawns, an arrow/line joins the new character on-screen with roughly where the key is on the keyboard in relation to the screen - so if an "A" was pressed there'd be an arrow running to the bottom of the screen, pointing roughly where A is (to the left). This would work best with a full screen set up, and may eliminate a bit of confusion? It's not perfect, but it gives a gist of things.
Keep it rocking, it's smart :)
The aesthetic is even prettier than at the jam. I love the animated title screen with little wormies going around, and the sound effects feel good. The tasteful feedback of changing the border to the color of the winning wormy is smart.
Having seen the title screen it makes me wonder whether a single player could be possible. I know that isn't the thrust of the game, but if there were a lot of AI controlled wormies traveling around and you gobbled them up and the game progressed a little like Flow, or like Forget Me Not, that could be kinda cool I think.
I think the jumping onto other paths could feel a bit better. I think, maybe.
Things I might try do is remove the big speed cost to joining another track, I find myself staying on the same path a lot when playing, in order to gather speed and then in order to be the fastest wormy on my track (as changing track means an established wormy may overtake and destroy me). Also, just after I've collected a bunch of speed boosts sometimes I change track and then end up losing my speed boost.
I think changing path, and either going in the opposite direction, or smoothy crossing to a parallel path could be a little more predictable. In particular in the square levels I might suggest trying out putting paths at discreet intervals. If the paths were exactly the same distance away from each other that holding your button would turn you off your path and land going the other way on another path that might make predicting collisions with other wormies easier (because the relative point that you hit the other track at would be consistent), and make making reverse direction maneuvers feel badass (because players would always get them right).
Also... WORMHOLES! Like this :
Joining a new track meant you took a speed hit relative to the angle you hit the track at. This meant that you could shunt tracks and remain fast if you got the join angle as close as possible, which felt awesome. This also meant that the "swimming" that @Tuism mentions could be lengthened by repeatedly switching tracks and hitting at a right angle to slow down as much as possible, then leaping off-track again and swimming.
Is the increasing score counter for swimming still in? That was pretty awesome, but I don't know if it's compatible with the lower score cap now... Maybe make the time you need to swim depend on what your current score is? Show that via a slowly filling in circle around the lead shape, then people can make bee-lines for anyone swimming that's about to score (because you'd have to make it back to a track, obvs!) AND it forces high-score leaders to swim slower, which I really like :)
So yeah, please don't remove the skill elements of the game, I love that those are there.
(I mean having a thing that gave feedback prior to the connection to the new line the better your angle, so people could learn the rule better).
I think it was suggested that when you get a shunt onto another track/path perfectly there could be a reward (or even speed boost). I think Merrik might have suggested that.
Again about the discreet steps between lines in the level design: I checked again, in the current levels sometimes you simply can't hit the new line right. Some of the lines are too close together and so switching paths means you always get screwed if you try to cross there.
I'd suggest when making levels try figure out what shapes produce nice feeling shunts. Obviously you can include some tricky shunts as well, but the current levels feel like they've got a few too many tricky shunts.
I think if you have some simpler levels, that are less chaotic, with more predictable distances between the lines, you might get some more meaningful player interactions. (In the first iteration of this game the player who didn't press anything at all won a lot, though I think this current iteration is a lot better).
But as the primary complaint in the current build is: that players don't feel in control, and that the collision rules don't seem clear (particularly head on collisions) - some early *teaching* levels may be in order (and seeing how the game changes when people are given simpler levels where they have more control would be a useful experiment).
“ I’m not quite sure what you mean, could you rephrase? this is my interpretation:
That's what I originally had, it might be worth trying again. It would simplify things and put a greater emphasis on timing. That's a pretty nifty idea, though I also want to support gamepads.
Blackships gave a great suggestion of making the worms glow when their button is pressed. I think I'm going to focus my energy on the multiplayer design for now. I ditched the score system in favour of ‘first to 8 kills’ since a lot easier to convey progress. I definitely want to find a way of encouraging ‘hang time' off the rail.
Two possibilities are:
A ) slowly fill in circle around the lead shape as disleksia suggested, and receive another segment if you make to the another rail
B )Build up a charge that is converted to speed when you hit the rail. I agree, that the punishment is frustrating, but if I give a boost for a perfect re entry, it can potentially be exploited by looping in the same place.
There should definitely be minimum distance, as well as gaps that are perfectly spaced. I really want it to be as pick -up-and-play as possible, but I'm not sure how to get to that point. Perhaps a tutorial level is a necessary evil. I could just have hints at the bottom of the level. A respawn interval may also give players a chance to look around and see what other players are doing. I really do need to make attacking other players less random and more fun.
I’m toying with the idea of implementing local time warps that slow down players when they get close one another. Kinda like how Peggle slows as you are about to hit the last peg. Some of the most fun I've had is during a super slow dog fights with another player
And those are mostly things that can be solved without a tutorial.
I might suggest doing something like what Bari-Bari-Ball does before every level starts, i.e. rapidly explain the goals and then let players have fun.
Also, yes, that is exactly what I was talking about regarding fixed turn direction and rejoin amnesty. Although obviously the line-crossing could be done much faster by a player who just tapped the key.
The boost exploitation could be fixed by either: Requiring players to launch from 1 track to another in order to boost properly, but this would mean that you wouldn't be rewarded for cutting corners like a pro; Or making tracks only accelerate you a little bit and boosting would take you above "track max" which meant the track would slow you down as you moved along it, so boosting in place would be a strategy, but it would make you vulnerable/predictable. Think Sonic spinning in place to speed up. Also, tactical boosts and corner cuts would become really useful for catching other players and colliding to score.
You could also perhaps implement some sort of deliberate rubber-banding: give the traps a bias towards track segments occupied by the score leader, or the guy with the highest speed / longest non-switch.
Also, Blackships' wormhole idea sounds interesting, what about level wrap, though?