Phsyics Rolling Ball Platformer

Hi,
This is my first main project I’ve been working on in C++.
Tell me what you think! :slight_smile:

So the first thing that has been created is the ball controller in C++, it uses an add force based on the way the camera is looking so the player can move the camera around and move in that direction. It also has the ability to double jump.
The game also has full controller support set up and I test using both K&M and a controller, in the future I’ll try to make these configurations as customisable as possible.
Next, I created a blueprint of the sphere based on the C++ class to quickly prototype interaction with the blueprinted gravity pad. This works by supplying the player ball with a gravity direction that is set by the designer and turns off gravity for the ball. It’s not the best way to implement it and needs updating, but its a start :slight_smile:

https://youtube.com/watch?v=qFrQscJfrv8

Update 2

I’ve ported the gravity system over to C++ and updated it so that the sphere is passed a forward,right and gravity vector by the pads and the player’s sphere checks whether the array has any contents in, if it does then an average is calculated and the gravity is disabled so the new gravity direction can be applied. The forward and right vectors do the same so the player can move in regards to the direction of the pad rather than the ball.

I’m still not finished on this system and shall continue updating it, I also made some new launch pads which you can see in effect, they launch the player at a specified angle and impulse force. The force and angle are visible by variables (the angle is represented as an arrow component) so level designers can change the strength and direction of the launch individually :slight_smile:

Lastly, I implemented speed boosters which can be seen at the end of the video which work similar to launch pads except they add an impulse on the ball in their forward vector, so the ball gets a speed boost forwards.

This current map is used to show off the currently implemented features.

new update. I’ve re-vamped the Gravity (Again… 3rd time) so that the pads no longer give a direction of gravity and instead it’s gained from the hit normal where the objects collide. This allows me to import custom assets to use as the gravity ramps and pads and have them be any shape.

However, at this point I’m unable to get the forward vector from this (I’m planning on using the cross product of the gravity vector and up vector to get an orthogonal facing vector for the ball) so at the moment the pads still provide this. The sideways movement is provided by the right vector of the camera and allows the forward movement to flip at this time too.

I’ve also begun on some modelling and texturing, as you can see the player sphere has a new model and texture, this was created by a quad sphere (turning a cube into a sphere) to allow for easier texturing however this may be re-worked as the seams can sometimes be seen (but not sure if that’s just because I know where they are). The launch pad model is subject to change too, it doesn’t fit the clean sci-fi theme of the game and gives off a more military sci-fi feel.

Currently working on a couple of extra features to add to the basic game fundamentals before beginning proper level design and 3d modelling / texturing.