Devlog 06: Production Sprint 1 - Week 3


1. Introduction

This week the team focussed on finishing up the first production sprint, we worked on several things such as the environment, level design, animations, particles and a lot of programming.

2. Environment pieces

For the Environment pieces Sarah and Nicolas created a bunch of assets to populate the level with. The assets are a set of variations of core elements that will bring our environment to life. Materials were created for these assets in-engine. The shader was reworked and so was the outline which now works by generating a mask on the selected objects based on screen space instead of extruding the face normals outwards. To prevent the outlines from being cut at the edge intersections we figured every mesh has to be smoothed out! This gave us a much cleaner outline with less artefacts. A skybox that fits the tone of our game was also handcrafted and a mock-up city level was created for playtesting purposes. All shown below



3. Level Design

For the level design we have put together two playable layouts with a diversity of different components/blocks that we can now playtest properly and decide which to pick or not pick for the final level layout. These have been smoothed/ added ramps for an easier approach to climb on ramps rather than straight walls. The segments that will be chosen for the final product can be freely be rearanged to fit the best course for the players.

4. Animations

Arthur also worked on 2 more animations for the bird, being the picking animation and the jump animation.

5. Particles

Arthur has started making particles for in the game. So far he made the smoke trail particle that spawns from underneath the wheels of the skateboard.

He made a Trail that will be used when the player uses his rocket boost, The trail color will be changed the the players color scheme in a later stage of the game.


Finally he created a death particle effect for when the players die.

6. Programming

6.1 Game (re)Implementation

On the programming side of our project we came short last week. We had basic movement implemented again, with the structure for our new movement system completely layed out. However the game itself was still unplayable. This week we focused on implementing the core game features, which are the movement and our race.

6.2 Movement

Our movement is the most extensive part of our game, however not all of the movements that we’ve designed are core to our game. Movements like a stun, or the kick down are not part of the core of the game whilst (for example) the jump would be categorized as part of the core of the movement. So this week we focused on implementing the parts that would count as part of the core.

We will go over each “movement type” that was implemented, but we won’t go over how this ties in to the movement system. If you’re curious about how it works you can find an extensive explanation in our dev log of week 4.

6.2.1 Skating Movement

Skating movement refers to the default movement of our character (since he’s a skater duh). Here is the implementation of our skateboard:


There are two main things happening here that are important;

  • We apply a force along a vector parallel to the ground
  • We add more speed the slower we go, and reduce it the faster we go

The first point allows our player to move up ramps using his input,before this we would only apply a force horizontally, which would make our players get stuck against a ramp when they should be able to climb up it. The second point makes the “launch” of the player feel more responsive, since speed is built up faster at the start, rather than having to slowly build speed. However, with only this script the movement will definitely not feel like a true skateboarding movement. For this we need two more crucial components.

6.2.2 The Gravity Multiplier


A skateboard is heavy. To convey this to our player we need to play some tricks on gravity in order for it to not feel floaty. We used the approach also used in old Mario games, which is to add a scaler to the gravity, both on the ascend and descend. This will speed up or slow down the rate of change depending on the scalar value, for our intents and purposes we want the gravity to speed up, especially when falling, to convey the weight of our skateboard.

6.2.3 The Ground Magnetizer


The second crucial component to make our skating movement feel good is making it stick to the ground. This could also be seen as simulating its weight. The reason we implemented this specifically though is that we felt it was odd when the skateboard would lift off the ground too easily. We wanted the player to have more control over his airtime (more on that later), this also means letting the player decide when he wants to go into the air.

6.2.4 Air Control

Since we’re on the topic of air control, let’s take a look at our air control movement type. It’s a very simple script, it only runs when the player is not grounded and enables horizontal movement. It resets velocity when the input direction is changed. Which was the main reason why we implemented this movement type; it was very frustrating for players to not be able to change directions after messing up the jump. And due to not being able to easily switch directions it would be difficult to regain control over the character.

6.2.5 Jump

A jump is a simple component, usually a simple force upward would suffice. However since we’re dealing with a skateboard and ramps that transition into each other in different directions another force needs to be applied in the move direction. This is because players want to “jump” off a ramp to get them to the next one, in some situations like the beautiful dev rendition below this can be a problem if only a vertical force is applied.

6.2.6 Rocket Boost

Players will also have a button to boost themselves to regain speed when they fail or to make tight jumps. The implementation of the movement itself is simple.


7. The Race

The second part of our core is what gives purpose to our movement, which is of course the race, which will be managed by our; RaceManager! For the sake of this devlog I’ve removed the body of the functions and will only provide the properties.

8. Bounce Pad

In the previous devlog there was a short mentioning about the Bounce Pad. So one of our programmers worked further on this and polished it and got rid of several bugs that where occurring. The gif below shows how it goes.


But there was a problem when the player tried to jump into the bounce pad. The bounce pad did trigger but nothing happened so the following happend.

the following was the expected result:


So we debugged and changed and added a bit of code so that it does work like intended. And we got this result.


Files

[Group_03]Slothboarding-v1.0.zip 41 MB
Apr 18, 2023

Get Slothboarding

Leave a comment

Log in with itch.io to leave a comment.