Skip to main content

Designing and coding the in-level transitions

What do you think is happening at the end of the level?
This is one of the questions we asked our players following the second in-class play-test event. For this version of the game, once the player successfully unlocked and pressed the launch button, they would see the following screen:


Nearly every response included some variation of this sentiment:
I have no idea.
This was not exactly the sentiment I was going for in the level design. It's clear that something needed to be implemented to support the story, as thin as it is. The players did seem to remember the story pitch ("you are stealing a space ship") well enough to try to help answer this question with their own imagination. Yet, that wasn't going to cut it.

After unlocking and pressing launch, we needed to communicate at least a few things:
  1. That the level was completed successfully
  2. That the player achieved his/her story goal of escaping with the ship
  3. That not all ships were the same every level
I figured a quick transition animation should solve each consideration. Why not make this the jump to light speed? That's always how spacecraft seem to at least temporarily get away from trouble in every sci-fi adventure... Plus, this seemed like a good design to change the player's perspective from inside the cockpit to outside of the ship. Players could see the ship they just commandeered, and this might make the Keep / Sell / Donate choices above more meaningful. 

From a programming perspective, all we had to do was create a few references on the GameManager and make the HyperspaceController itself. We added GameManager fields to determine what the name of this level's Ship and what its Sprite looks like. The hyperspace controller would be an inactive gameObject that gets enabled by the GameManager upon launch success. The actual "hyperspace" effect could be achieved with an animation that is set to play upon activation. After a controllable time delay, the hyperspace would transition to the KSD (keep / sell / donate) EndLevel menu. We didn't have custom ship sprites yet, so I just created the animation with a placeholder. (Props if you recognize the game it's from!)

With a little text and a particle effect system, the final transition worked well enough! I also added an optional delay to the Launch class that would give a moment of pause before the transition appeared. This ensures that the final click of the Launch switch doesn't result in such an abrupt perspective change. The final composition for the end of the level looks like this:

I was happy with the outro transition, but there was still something missing before each level. I wanted to add something that communicated that the player was already in a rush before even being inside the cockpit. If they're stealing things, then maybe the timer represents the risk of being caught. So therefore, getting to the ship quickly should also be part of the experience. It also breaks up the monotony of visual design by, again, being outside the ship. This time, as "you" the character running to the next potential ship.

By alternating pressing LEFT then RIGHT shift repeatedly, the player would "run" to the ship Track & Field style. There is a definitive joy surrounding hammering buttons on an arcade cabinet, so this "mini game" could be a way to alleviate mouse-centric controls and remind the player that the keyboard can provide input too. It also can make some of the levels harder/easier depending on how quickly you get there. With more artwork, the intro running transition could be a cool way to showcase different spaceports or things of this nature. There is a lot of potential for expanding this idea.

There's more to modify for the intro runner transition, but it is a lower priority right now than the creation of interesting levels and switch combinations. I hope to revisit the intro during the polish phase



Comments