RAMON HUISKAMP
  • Portfolio
    • WarpThrough
    • Defend Your Friend
    • The Red Stare
    • Project Plungers
  • More projects
    • Project RIAS
    • Crashtastrophy
    • ParityHood
    • Asphyx
  • About me / contact

WarpThrough
A fast action game with a unique take on combat

Solo developer
(2018 - 2019) Roofkat

Fact sheet

Title: WarpThrough
Platforms: PC
Engine: Unreal Engine 4
Genre: Action platformer
Time: July 2018 - December 2019 
Team: Roofkat (Solo development)
Awards / recognition:

Steam - Released December 2019
Official selection Dreamhack Winter 2019
The Very Big Indie Pitch - 2nd place 2020

Description

WarpThrough is a fast and challenging platformer with arcade-inspired gameplay, unique combat, and a short story full of charming characters. Get into the flow and balance beating up monsters with warping through portals.

The story mode includes the hot-headed Charlotte and her dad Manor, a scientist researching other dimensions.
Along with them are Three, who's very excited about ... everything.. and Ebbie, who's dog is eager to go warp around where no dog has gone before.
In this short story mode players will unlock new levels, discover how to play with all of the characters, and try putting a stop to the monsters that invaded your home!
Relevant sites:
WarpThrough.com
WarpThrough on Steam
Roofkatgames.com 

My contribution

Everything
Thymo Boog helped me understand audio design, and Plan of Attack did PR for WarpThrough - but the design, assets and functionality in the game, as well as most work around development, were done by me :)

As there's a lot to cover, I'll separate things out more than in my other pages. Below I'll talk about
  1. ​Gameplay & level design
  2. Systems & Tech
  3. ​Narrative
  4. Audio
  5. ​Lessons learned

Gameplay & level design

Foto
Unique combat: Stand still to punch
tl;dr: I made combat interesting by using 'standing still' as an action, and using movement buttons to trigger attacks.

​
A number of years before working on this version of WarpThrough, I made a small prototype which already had a lot of the game's essential ideas. You were in a single-screen level, had to make your way from portal to portal, and had to defeat ever-spawning enemies. However, this prototype had an attack button. Whenever you pressed the attack button your character would have a brief charging animation before attacking. I added this to create a sense of timing and purpose to your attack (inspired by, of course, dark souls). It felt quite bad. I wanted WarpThrough to be a fast-paced platformer, and not being able to instantly attack when pressing the button felt like a frustration rather than an interesting mechanic.
After having left the project alone for some time, I thought of something I hadn't seen another game use yet: Making "not pressing any buttons" into an action. This would mean whenever you stood still you would start charging, and if you were charged up, you could press a button to instantly attack. I realized with this system I didn't need a dedicated attack button, and using the directional input you used for movement allowed you to attack in 4 directions, instead of only left and right. 
After tweaking and polishing the system, it started being really fun to play. Releasing buttons & fighting and platforming to your next portal felt similar to a rythm game, allowing players to really get into the flow once they got the hang of it.
Foto
Each character has it's own attack
tl;dr: Character attacks change gameplay significantly, as you need to focus on different aspects depending on who you play as.

​I started out with a character that can punch in different directions, but immediately wanted to experiment with the new control / combat scheme I designed. I made a character that rotates their gun around while standing still and fires when you start moving. His range is really useful, but the timing on his attack is hard to master. Another character has a dog, which she calls for while standing still. The dog tries to come to her, relying on the physics system, and defeats anything in it's path. The dog can be really powerful, as it can take out a lot of enemies at once, but it's hard to control. The last character leaves a trail of electricity behind him: being able to take out monsters that move into it. 
These characters all change the gameplay significantly, as you have to pay attention to different elements based on who you play as. One of the most interesting things I've noticed is that people's opinion of Ebbie and Three vary a lot: some people really like playing with the dog, while others enjoy the tough but precise timing of Three's gun. And if they like the one, they often don't really like the other.
All in all I'm very happy with these character attacks. One downside is that, aside from the punch, none of the attacks make use of the directional buttons. I still have a number of other attacks in mind, some of which utilizing these directions more, but perhaps I'll be able to add those another time.
Foto
Foto
Foto
Foto
Different dimension: Different enemies
tl;dr: When you enter a portal, the enemies that spawn change (Changing up the gameplay whenever you progress). I made the different enemies combine in interesting ways by giving them significantly different movement.

​WarpThrough is heavily inspired by SuperCrateBox, a very minimalistic action-platformer where your goal is to pick up crates, and with every crate you pick your weapon changes. Tying your goal to something that changes gameplay seemed really interesting, so with WarpThrough I decided that every time you hit your goal (the next portal) it would change the enemies that spawn. This was more subtle than changing your weapon, but also allowed me to ramp up the difficulty a lot more as you get further in the game. I designed a number of different enemy types, four of which I actually created. These enemies all follow the same rules for combat: You defeat all of them in one hit, but they can defeat you in one hit too. The way I made them interesting, especially when combined, is that they all move in a different way. This means if you have different types of enemies around you, they'll be coming at you from different angles: requiring you to pay careful attention.
Foto
Level 1 icon
​(overview of the layout - green edges are the actual collisions)
Foto
Level 2 icon 
Foto
Level 6 icon 
Foto
Level 7 icon
Foto
Layout & route for "Encounter with Her"
Foto
Layout & route for "Encounter with Him"
Level layouts
Enemies and players wrap around edges, and symmetrical layout make it easier for players to predict where enemies come from. By playing with this throughout the levels, I could make more the game more difficult in later levels, without having to add more or stronger monsters. You can see in the above layouts that level 1 and 2 only have a couple of points where edges can be wrapped around, while levels 6 and 7 are a lot less confined: meaning you have to pay attention to enemies falling on your head or coming from an open side. Level 6 is definitely the most difficult level in the game, I made level 7 a bit less difficult while spawning monsters quicker to make players feel more of a sense of mastery as they reach the end of the game. 

Throughout the game there are some levels without the main gameplay, mostly used for story. However, I also used these levels to make sure players understand certain concepts in the game, that aren't otherwise explained. In "Encounter with Her" (pictured above) players need to understand that they can wrap around the edge in order to continue. In "Encounter with Him" they need to understand they can wall-jump. These concepts are not necessary during most of the gameplay, but understanding them can really help you get better at the game. Forcing players to try it out in a peaceful level makes it easy for them to figure out.

Systems & Tech

Player characters
Player character share a lot of functionality, mostly different in the type of attack they use, along with the visuals of course. 
Input is handled within the player controllers, which was quite a challenge as I wanted easily rebindable keys and local multiplayer - not something set up as a default in Unreal. The video below goes through some of the blueprints.
Enemies
Enemies don't use a baseclass, instead using components and an interface to share functionality. The video below goes into some of the relevant blueprints
Physics, animation, and other systems
Instead of using Unreal's default movementcomponent and physics, I created my own physics component: allowing me to fully control how I was going to move actors through the world, and how they would interact with colliders and each other. I used this in the character, enemies, and the toy ball laying around - it allowed for a bunch of movement and worked really well for my purposes.
I also created my own animation system so I would be able to control each frame I needed, a way for any actor to receive player input, and a few more useful little systems like that.
Conversation system (Narrative)
I set up a widget blueprint (Unreal's way of making UI elements) to handle conversations set up in a data table. This meant that I could write out most of the conversation, including a bunch of the functionality, in google sheets. That was a great help when I was on the go, not requiring access to my beefy computer.

Narrative

This is still in progress! The process of making WarpThrough was very interesting, and I hope to write more about this soon.

Audio

This is still in progress! The process of making WarpThrough was very interesting, and I hope to write more about this soon.

Lessons learned

This is still in progress! The process of making WarpThrough was very interesting, and I hope to write more about this soon.
Portfolio
Prototypes
About me
  • Portfolio
    • WarpThrough
    • Defend Your Friend
    • The Red Stare
    • Project Plungers
  • More projects
    • Project RIAS
    • Crashtastrophy
    • ParityHood
    • Asphyx
  • About me / contact
Powered by Create your own unique website with customizable templates.