From the outset, one of The Last Sprite's design pillars was 'rolling player character'. My desire to include this came from experience playing Overwatch. I'd found that of all the characters Blizzard had created, the character of Hammond had the most interesting method of getting around, rolling and swinging from place to place. Given that I only had a 3-4 month development window, having fun inherent in player movement seemed an excellent use of development time. But before I jumped into implementing rolling movement, I researched and created an on-paper move set.
Research
My research mainly covered two areas:
What made for 'fun' movement generally?
How had other games implemented satisfying rolling movement?
In answering that first question, I dug into books by Jesse Schell, articles by Caleb Compton, and plenty of first-hand research into games that had fun movement mechanics. To answer the second question, I researched into games including Overwatch, Rock of Ages, Katamari Damacy, The Eternal Cylinder, and Super Monkey Ball, breaking them down to understand how they'd designed (and implemented) the rolling movement of their characters. I also looked at how rolling had been implemented in the 'rolling template' provided Epic Games within UE5.
I looked into how these games made their characters fun and satisfying to control, evaluating the 'weight' and precision of movement, the abilities available, roll speed, methods of control, use of physics, sound effects, visual effects, and more. With this research under my belt, I moved on to designing The Last Sprite's moveset.
Designing the Moveset
I wanted to create a move set that complemented the design of the character as a rolling ball, providing fluid, fun movement that would satisfy all of Schell’s and Compton’s criteria. I decided that I wanted the accuracy of movement provided by a ‘faked physics’ solution (more on that on the next page) rather than a full physics solution, which led me to use Overwatch as my main source of inspiration.
​
Overwatch offered players more choice of movement than the other games researched, with grappling and slamming moves, which led me to implement the same abilities in The Last Sprite. I created a simple test map with ramps and platforms, and began prototyping, testing, and iterating my chosen moveset. I perfected the moveset in this environment, ensuring I knew what fun platforming looked and felt like long before I began designing levels.
Rolling & Jumping
As a priority, I needed to get standard movement and jumping right. I experimented in-engine with acceleration, deceleration, jump height, gravity scale, and max speed to create a character that felt light, was highly responsive to input, and could platform accurately.
I ensured the rolling of the vine ball around the Sprite model matched the character’s movement speed across the ground (if not done, this is extremely immersion breaking) and added a looping ‘rolling tumbleweed’ sound effect that increases in volume the faster the player moves to help embed the player in the world of the game and give a greater sense of speed.
Super Roll
Super Roll is effectively a 'sprint' mechanic that increases the player's speed and allows them to move more quickly through the game world. It was important to give the player an even greater sense of speed than they get from normal movement.
Some of this sense of speed comes from an actual increase to the player's speed, but the majority of it comes from camera trickery. I'd noticed from research and experience playing racing games that the sense of speed you get from sprint/boost abilities often comes with an FOV change. I implemented this in The Last Sprite, widening the FOV during Super Roll. The volume of the rolling sound also increases to make the player feel they're moving faster.
Initially, Super Roll was active for as long as the Shift button was held down, but this made it awkward to change direction while rolling. After testing, I made Super Roll activate after a single press of Shift, and deactivate once the player's speed dropped below a threshold.
Ground Slam
The Last Sprite's core objective is the deactivation of harmful machines scattered around the world. Machines are deactivated by ground slamming buttons linked to them.
I wanted players to feel the impact of the slam move, and also to feel rewarded for slamming in the right place to deactivate machines. Slam can only be activated when the player is in the air, and upon activation the player's velocity is reduced to zero. They hold in the air for a fraction of a second, float up, and then slam down on whatever is beneath them. I added screen shake, VFX, and SFX to play when the character hits the floor.
Different SFX and VFX play to reward the player for successfully slamming on top of a button. They also snap into the depressed centre of the button, making them feel that they've made a physical change to the button. Buttons are positioned so that players can see the machines they affect, giving a greater sense of impact and progression.
Grapple
The final move in the player's arsenal is grapple. I designed the grappling mechanic similarly to how it works in Overwatch, with players able to grapple onto any part of the environment. However, this made level design difficult, as the ability to grapple to anything afforded the opportunity to skip areas by swinging around the edge of islands and other obstacles.
On review, I decided to take inspiration from action adventure games featuring climbing (Horizon Zero Dawn, for example), making it so the player could only swing from specific objects and using a recognisable visual cue (in this case vines) to indicate which objects these were.
Initially, I scripted a crosshair to appear when the player looked at grapple-able objects (as shown in the gif above). Unfortunately, playtesters reported that this made grappling too difficult, as it required the player to jump, look directly at the vines, then activate grapple.
In response, I made grappling easier, significantly widening the sphere trace that determined when a player was in range of a grapple-able object. I also moved the crosshair from the centre of the screen to the grapple-able object. Playtesters confirmed that this made grappling easier and more satisfying.
Comentários