Hello and welcome to this sixth devblog, the first of a new series dedicated to the game’s mechanics.
We’ll begin with something that may seem easy (at first glance) : [b]grab/throw[/b] objects.
The purpose of this mechanic is to allow players to grab an object, move the object as he moves and let go/throw the object with a defined power in a direction he chooses. When an object is grabbed, it doesn’t have any gravity applied to it. This allows the player to manipulate the object very easily.
We spend a lot of time on this mechanic to make it the most satisfying and the least restrictive as possible. Before I show you our final result, here is the evolution of the mechanic :
[img]{STEAM_CLAN_IMAGE}/40367837/0b543da13768b4dbbc928eec0dc79f7d18e5ce7f.png[/img]
[list]
[*][b][u]First version :[/u][/b] No cursor, the player had to use the basic cursor. The grabbed objects could only move on an axis around the character (the white arrows aren’t in the game, it’s only here to show you the axis). They couldn’t collide with walls back then. The throw option wasn’t available, the player was only able to grab & let go of an object.
[*][b][u]Second version :[/u][/b] We added a cursor in the game that replaced the basic one (hidden). This cursor is very useful to know where the player is aiming as it can only move in a circle around the character. We also included the throwing mechanic which was very basic at the time (throwing objects at a set force that we defined).
[*][b][u]Third version :[/u][/b] We weren’t convinced by the throwing mechanic and the lack of flexibility. That’s why we chose to add a power bar that allows the player to throw an object with variable strength. This made the throw mechanic a lot more enjoyable and a lot less rigid.
[/list]
[img]{STEAM_CLAN_IMAGE}/40367837/946be800b490fe7ccd203803ca2dedaf1771c7ef.png[/img]
[list]
[*][b][u]Fourth version :[/u][/b] After a lot of tweaks, we chose to make the grabbed objects collide with everything except the character. It felt better with collision and added a new layer of difficulty for the player as he needs to avoid walls & other objects. We excluded the character from the collision to avoid the small collisions that would happen when manipulating an object. These collision tweaks were necessary to make another major change : remove the constraints of the cursor. The cursor could now move freely inside the character’s range. It felt more natural to use and a lot more enjoyable.
[*][b][u]Fifth version (current state) :[/u][/b] We added multiple visual & audio feedback to emphasize the character actions and the object collisions/movements. The cursor. The cursor is now hidden when an object is grabbed and an arrow is displayed when throwing an object to show the throw direction. The charge bar has been integrated into the character’s model to simplify the UI and make it part of the character’s action animations.
[/list]
Among the visuals I shared above, something important isn’t mentioned and doesn’t stand out. In our first tests, we experimented with two ways of throwing objects :
The “physical” throw : This type of throw is tied directly to the object physics. As you know, the cursor follows the mouse movements while being restrained in an area around the character. By moving the mouse quickly, the object is gathering speed and velocity which can be used to throw an object if you let go of the object at the right time. With this technique, it’s possible to throw an object with a lot of speed if you do it correctly.
[img]{STEAM_CLAN_IMAGE}/40367837/ccfb7cda08d6d81f1b5573dd885bf4e687e932d6.gif[/img]
The “artificial” throw : More traditionally, the player aims somewhere and pushes the throw key. We then give an impulse to the object so the object is thrown at a set speed (always the same) in the direction of the cursor.
[img]{STEAM_CLAN_IMAGE}/40367837/daa4b87cf5e0bed04d8526b42dcac4d7ccedcd57.gif[/img]
After some playtest it became clear that the physical throw was the most entertaining but there was a handling issue that came with it. It required the player to move the object quickly and let it go at the right time while aiming at the right spot.
We chose to not make any choice and keep the two options with a hybrid solution. When charging a throw the traditional way, the object is gathering speed and if the player lets the object go at the right time, he will have the throw impulse in addition to the speed he gathered while moving. This way, players that aren’t used to the physical throw can use the normal throw and the players that want to throw objects with a lot of speed can use both or just the physical throw.
We made sure that all levels are doable with the traditional throw so we don’t exclude some players that aren’t comfortable with the physical throw. Of course, this mechanic will probably evolve in the future but we are at ease with the balance we have now.
Thank you for reading this devblog, I hope you found something interesting. While you’re here, I would like to warn you about the delay between each devblog. We decided to delay each devblog by two weeks (monthly devblogs) to have more time for the development. We still plan to release a demo in a couple of months and the game before the end of this year.
Have a nice day,
Corentin PB