September 2022
Disclaimer
As a reminder, devblogs will be available only for Patreon patrons until the next game update. After which, every devblog posted prior to this update release date will be publicly posted, one by one, on the game’s website.
v0.4.2
This update was extremely fastidious. I’ve worked on so many things at once but with much less available time. Thus, I could not finish everything and the game still currently contains too many bugs.
Talas shoes animations
I continued Talas’ shoes’ animation through this month.
Usually, animating clothes in a 3D environment tends to be very complex. This isn’t limited to making a vest move along the wind, but also to animate a character putting clothes on. This is why, most of the time, this animation is done offscreen.
In Talas’ shoes’ case, it is not possible to keep these suggested animations offscreen. I also must take into account that this animation will be visible from very close. I’ve spent a lot of time refining this animation, and since this rig is fairly new, I’ve had to start several parts of it over while developing edits and fixes.
This animation was tedious to create. I am glad about the current result, but I will have to refine it a bit further.
Either way, the minimum for it has been done and the animation’s main parts won’t change, which will allow me to focus on Cobble’s animations without having to redo everything at every single edit.
Shoe in game
Now that shoes are done, I need to make them usable in-game by Talas and his AI. I thankfully coded in such a way that adding style and integrating my development did not take that much time.
Unfortunately, following the code migration to Unreal Engine 5, plenty of game elements weren’t compatible anymore, forcing me to fix some major issues. I took this opportunity to make my code more modular. More details below.
I also worked on player interactions regarding collision and animation, but I was unable to realize all that I had in mind. For example, when a player is imprisonned within the shoe while worn by Talas, a ‘cheat’ allows me to move the camera at a specific level and location to see Talas’ talons with a small space between his sole and the shoe’s inner sole. Also, when Talas crushes Cobble with his shoe, it is currently not possible for Cobble to be stuck to its threads.
Refactoring orbs and teleport
Obviously, fixing some issues led to other problems appearing. Some of them could have been fixed with a simple edit, but in most cases it was preferable to rework a couple things.
As an example, teleporters and orbs. Previously, there existed only one class for every orb along with an enumeration to allow their functionnality to work. There now is an order class that works with a base and subclasses to ensure each orb’s individual functionnality.
Same thing goes with teleporters.
All these edits not only allowed to fix a few issues, but also made development easier for future evolutions.
Modular Assets and code management
I took advantage of the migration to Unreal Engine 5 and the issues I previously had to make most of the game’s code and assets modular. This won’t change anything for the player, but this will greatly ease adding new content and features.
Here is an example : currently, Talas’ shoes are treated like a simple module. I can delete the module or add other modules such as slippers or other shoes without having to edit the base files.
A module contains every asset tied to it, such as models, textures, animations and code. This system will also more easily open the door for modding some time later.
Modular gameplay
Gameplay also evolved into using modules. I previously made a huge refactoring that made a single class be needed for VR and non-VR players to avoid needing a lot of subclasses depending of use cases, and to not have to duplicate some bits of code. This also easily allows to switch between VR and non-VR modes without having to restart the game.
The issue is that, as I add more and more features, it becomes harder and harder to manage every element indepedently when they’re all in a single and unique class.
For this reason, I turned the character’s class way more modular as well. Some non essential features are now managed by subclasses / components that will be added to a character depending of their uses.
For example, I have a module that is meant to center the player’s camera after a delay. It will work in specific situations only, such as when Cobble is laying down on the starting plank. This module will also not be used for VR players.
Player interactions
I also had to rework how interactions between players and their environment works in game, to the point I’ve created the system back from scratch. Previously, a player needed to be in a specific spot and press the interaction button to interact with an element. Now, the player must look towards the interaction and, if they are close enough, can interact with it.
VR players will need to physically reach out to the interactible with their hand, but this feature isn’t done yet. I also added a small icon to display interactible elements.
Sub level
Sub levels are more or less levels hidden within the game. The teleportation room used for fast travel, or Talas’ stomach are sub levels.
Since I intend to use those more and more for different interactions and contexts, I’ve coded and generalized their use. For example, the teleportation room will be found in every level that contains green orbs for fast travel.
Customisation UI
I updated Cobble’s customisation screen so that it can be used in a more intuitive way, with pages and sub-pages. The menu works with a controller and there are much less elements displaying on screen, making it easier to navigate in VR.
Unfortunately, all features aren’t available yet as I didn’t have time to refine everything.
Thank you for reading!
See more: Devblogs - Wips Telegram Chanel - Discord Chanel - Support the game - MMVS game