STORROR PARKOUR PRO VIDEO GAME: INSIGHTS 1
Davide 'Dado' Pirola heads up the development team at Hole In The Sleeve, our partners in this project. He is aiming to write these insights for us regularly, giving updates on progress and explaining various aspects of the video game's development. In this introductory blog, Dado covers a lot of ground, ranging from the philosophical to the technical!
I'm starting this post with a simple word - passion. For me, this word means a lot. I've had a long and, dare I say, successful career in the video game industry. I have also done a good stint as an entrepreneur. And importantly, I’ve completed the full circle - a few times. By full circle, I mean I've experienced all the highs and lows, and all the in-betweens.
Now, at almost 50 years old, I feel very lucky to have had the chance to complete those loops. It changes you, in an almost inexplicable way. Renders you more genuine, makes you appreciate everything, arrogance is removed, any sense of superiority disappears, feelings of envy go away, and the need to be successful at all costs is gone! And I think that’s because the next time you’re at a low point, you have the knowledge of the heights and the in-betweens, and you feel comfort in that.
Entropy is a great teacher, it forces change upon you. If you never change, or have the possibility to, you’re missing the full range of experiences that make you emotionally richer. And so, like in Plato's allegory of the cave, you only see the shadows of those emotions, not the reality. My advice is, if you have the chance and can do it, you need to get out of the cave and experience the real thing!
And importantly, experiencing the full circle gives you the ability to want to do something because you are passionate about it, with no calculations, no predicted gain. Passion enables you to take more risks, both in a good way and a bad way. But you know that, one way or the other, you can keep going and complete another circle.
Most people don’t know that this video game owes a lot to the famous quote from a John Lennon song, “Life is what happens to you while you're busy making other plans”. In October 2020, I was busy on a big project, and accidentally stumbled upon some STORROR YouTube videos. It occurred to me that a game around them and parkour would be a great idea, so I emailed quickly, not really expecting any reply. Next thing I know, Drew gets back to me with “Cool, when do we start?” - I replied “Now!”.
You might have assumed this is yet another product made to fill a gap in the market, the result of a carefully researched market analysis. But the truth, I can tell you without hesitation, is that STORROR Parkour Pro is a product of pure passion. It comes from the desire to create something viscerally authentic, a video game we can be proud of for years to come.
I truly believe the parkour community is one of the best communities in the world. Period. I was pretty worried that managing a Discord server populated with thousands who love jumping on walls was a recipe for disaster. Well, I was very wrong.
I love the mutual and unconditional respect you find in our Discord channels. Sharing the same passion is a great catalyst; with similar minded people you can find a sense of genuine and healthy belonging, a communal place where respect has no hierarchies.
It was fascinating to see Toby explain to newcomers how to practise his preferred move. And how Sacha, with his innate positive attitude, always praises kids posting their Instagram clips. Also, how the most experienced members always have a word of encouragement and advice for others, and how light-hearted the whole conversation is, no need to take yourself too seriously! Because the parkour community is so great, it's a very natural process to give back, and everyone feels welcome.
The making of this game is a collaborative process, and our early access backers are very much involved. Here are some examples of people who are now part of the game for real!
'You in the Game' backer - Jude
'You in the Game' backer - Tim
Early access backers who join us on the STORROR Parkour Pro Discord server are encouraged to give feedback, their views and ideas are valued, and acted upon whenever practicable. They can even submit their own original artwork to be considered for inclusion in the game, and everyone loves this feature. Some of these designs have already made it into the game as street art - we're very proud of them!
Street art by Discord member - Art.grsl
Street art by Discord member - Golden
Street art by Discord member - 5hif7y
This is the most important part of the game. It’s going to be our unique selling point, our forte. From the outset, we've planned multi-year research, in order to achieve our goal to have the best dynamic animation system for an action/simulation game like ours. Currently, we have a nice and solid Motion Matching solution running; it’s one step, with many more to come. Here’s a quick overview of the past, present, and the future of animations.
We started with the basis of a simple character walking, running and jumping, like in any other video game. Then we’ve moved towards a more complex locomotion system, which included a more balanced blend between animation states (i.e. between running, walking, jumping), a simple rag-doll simulation, and a very basic Inverse Kinematic (IK) implementation for hands and feet. IK means the ability for the character to adapt to various terrain types (such as hills, slopes, steps) in a way that the feet are always planted naturally on the ground. It’s an important cornerstone for dynamic/procedural animations.
But those are techniques present in 99% of modern video games, and of course we want to do more, a lot more! The first area of research we have explored is a cutting edge technique called Motion Matching, mentioned above. This technology was developed by brilliant programmers/scientists at Ubisoft studios, more than five years ago. It took a while to get adopted and it’s still very fresh, very few games use it (some of the Assassin's Creed chapters and The Last of Us Part II). It’s clearly the future, or rather, the beginning of the future!
Compared to the old school way of doing animations, it is a paradigm shift. The main difference is that it can simulate locomotion much more naturally. Imagine someone running up and down the road, changing direction a few times, turning around, stopping and sprinting back again. In a normal animation system, you need to devise a big logical 'state machine', which is in fact a big graph of every combination of moves possible. Is it turning left after sprinting, or after walking? Or has it stopped and then restarted? And when restarted does it need to go left or right, and is the character holding a pistol? Then switch to the pistol holding turn.
Ultimately, you’ll end up with an explosion of all the possible combinations of those states - usually there are about 15,000 of them. You can imagine the joy of an animation’s programmer who needs to check every combination is working flawlessly!
Motion Matching aims to kill almost all those logical steps. It’s based on a conceptual big, long, clip that has all those animations performed one after the other, and grouped by a very clever index. Basically, choosing the right animation to perform works like searching on Google, so you can find what you want super fast and accurately.
But again, that will become the norm in a few years time, we’ll need to do more. The motion matching system is good for locomotion, but we have much more going on than that. We have very complex animations like jumps, laches, vaults, etc, and we need to link them flawlessly.
We also must be aware of the surroundings. Are the feet too close to the wall to perform that jump? Are the hands too far from the ledge for that vault? That is where the current state of the art ends, and we go into the future. For our first release, our aim is to tackle context sensitive surroundings, in a dynamic way.
Have you ever noticed that certain obstacles in most video games have the same height? You’ll rarely find a wall that’s 1.03 metres high and another that’s 1.05 metres. Usually they are all standard sizes like LEGO blocks, so you only have a handful of combinations to worry about. As our environments are based on real world architecture, we need to be very accurate and precise, and so our animations must adapt to varying heights.
That’s mostly an IK problem (our friend from above) but the real challenge is to merge IK and a recorded motion capture animation. For example, take a super accurate double cat pass by Toby, and make it look like he did a hundred of them, with a slightly different outcome.
Essentially every jump needs to be different. One of the things I said to the team at the start of the project was “Think about it, you’ll never take the same step again in your life, you can go close, very close, but never exactly the same”. That is our goal. Never the same step.
Have you noticed how fake any running cycle looks in video games? It appears very robotic. That’s the 'uncanny valley' for you! If you've not heard of the uncanny valley, have a quick search on Google, it’s a fascinating subject.
Tackling this “never the same step” will bring us to a fork in the road in our research. That’s where the pure motion capture or hand crafted animations that we are using today will give space to more procedural and computer generated (AI) animations.
Now, we are many years behind a consistent, credible and robust solution yet, but I have the feeling the path might have been set already. There are some pretty cool examples of AI learning to walk from scratch. While they are just tech demos with no possible practical applications in games yet, you need to take note. And this is why we decided to dedicate the other half of our research to it.
I expect we will meet halfway in a few years' time, and possibly stay there for a while, until we crack General AI. The steps are too big, and in an interactive experience like a video game, you need robust systems.
Another area of research that sits pretty much in the middle of all of this is secondary motions, micro movements, which make the character real. Small things like preparation steps for a big jump, facial reactions and commitment, more natural idle cycles. I think those are the untold and unknown heroes of the uncanny valley. They are relatively straightforward to implement but very hard to do naturally. I don’t think game dev teams put sufficient effort into it, but I do believe in them!
Have you ever noticed how the animations in a video game's cut scene always look more real than the second you start playing the character with the controller in your hands? It looks like piloting one of those giant Japanese mecha robots, rather than controlling a human being. Of course there are limited inputs you can give with a controller in your hands, but I think those idle/hidden/subtle movements hold the key to rise from the valley!
While animation is our main focus, we also want the environments in the game to be truly impactful, visually. In a subsequent blog post, I’ll be going into quite a lot of detail about how we've created our first demo map, a small piece of central London.
In the meantime, I want to show you some examples of screenshots here. If you check out the same locations on Google Earth, you’ll appreciate the attention to detail that goes into producing these. Big ups to our 3D artists Florian and Nathan for such craftsmanship!
London Eye viewed from Jubilee Park, Southbank (see on Google Earth)
IMAX cinema, Waterloo (see on Google Earth)
IMAX cinema from above (see on Google Earth)
Since the crowdfunding campaign on Kickstarter ended, we've had people contact us who didn't get chance to back the project at that stage, and would like to now. So if you'd like to get involved by backing the game, and joining us on the Discord server, you can now buy early access through the video game page here.
You should find all your questions about how it works are answered in the game FAQs here. But if you do still have queries, you can email us at the HITS team here.
Thanks so much for reading this far. I'm planning to write another update soon - but for now, back to coding!