This week, the team at Project Gamechanger has been busy modelling new characters, creating new visual fx, sculpting new set pieces and working on some new character vocalisations. In addition to this, we’re also working towards getting Depths of Erendorn playable in UE4, so a lot of programming work has been carried out in the engine to help achieve this. Remember to follow us on Twitter, Instagram and Reddit for daily updates on our turn-based fantasy RPG! 

3D Modelling

After many hours of work, this week we successfully finished the Rhinogar model! Before we got to that stage, we had to make some final mesh adjustments, like pinching in the helmet armour around the eyes. We also lengthened the skirt and tassel, as well as made the shoulder armour a bit bigger. We’re really pleased with the outcome of this Rhinogar, a character that will appear in Depths of Erendorn in many different versions as powerful enemies your team will have to battle. 

The next set of models we’re taking a swing at are the Lizards. If you follow us on social media, you’ll have seen a lot of lizard concept art recently, so it was decided that it was about time to start bringing these designs to life. The first step was modelling the general lizard base, which will then be edited in the future and used for four different lizard variations, including:

  • Thorny Lizard
  • Spiny Lizard
  • Big Lizard
  • Swamp Lizard

We started work on the lizard base by blocking out the face and body proportions in ZBrush, trying to get everything as close to the original concept as possible. The feet were actually made separately so that they could be copied and pasted, which saved our modeller from having to sculpt both the front and back sets of feet individually. 

After getting some feedback from our Animator, which we regularly do during the modelling process of any character, the pose was adjusted to ensure that the legs would deform well during animation. The next step was to create the lizard’s underbelly. To do this, loose skin was added to that area using an alpha. This then allowed our modeller to test the tiling rate to ensure good readability. While the first attempt was a bit too dense, the second attempt was a success, and that brought an end to the base sculpt! Our last bit of work on the Lizard this week will be to retopologise it so that more work can continue on it next week. 

Animation

This week, we finally finished transferring and editing all of the Parakaw’s animations on the main rig. This is following on from the last couple of devlogs, where we were working on getting the Parakaw ready for export. With that work out of the way, the first set of this character’s animations were exported. Our Animator then imported the Parakaw and these animations into the game engine.

The next playable character our Animator worked on getting into Unreal was the Zentragal:

  • A few of its animations were adjusted.
  • The animations were then checked to make sure they used the latest rig version.
  • Some small skinning issues that cropped up were fixed.
  • The rig and animations were then exported.
  • They were then imported into Unreal Engine for testing. 

The next set of animations that will be added to the engine will be for some generic skills. Our Animator has already started to transfer and adjust the generic skills for each character – for example, Disarm and Kick were transferred onto the main rig and then adjusted for use with the Human Knight, Earthen Dwarf, Twilight Elf Assassin and Watertarg. The skills Palm Strike and Spinning Kick were also transferred and adjusted for the Twilight Elf Assassin and Watertarg. 

As a quick side note, our Animator was happy to see that the Rhinogar model that was finished this week will be able to use the same rig in the engine as other humanoid, bipedal characters. We’re not transferring this character over just yet, since we’re focussing on playable ones first, but it’s good to know that the main rig system we’ve set up is applicable for many other types of characters in the game.

Environment Art

Work continued on sculpting various set pieces for our caves this week. After adding in all the details to the flowstone sculpt, low poly meshes were then created. In addition to this, more high poly flowstones were completed this week so that we can have some variation among these set pieces. 

Our Environment Artist then set up a separate scene in UE4 for set piece testing and lighting. This will be important to do to ensure that everything integrates will into our caves. As we mentioned in last week’s devlog, the next set pieces we’re working on are the stalagmites. Our artist has now started blocking out the general form of these stalagmites, so these will be getting refined next week.

Blockout of stalagmite in ZBrush
We have begun blocking out the stalagmites, which will continue to be sculpted and detailed in ZBrush.

Visual FX

After working on so many of the Parakaw’s abilities last month, our VFX Artist decided to start creating some visual effects for some of the Forest Druid’s specific spells, namely Reserved Power. This is a spell that does one of four things, depending on what the player chooses. It can:

  • Restore Mana each turn for three turns, either to yourself or to another team member.
  • Restore Health each turn for two turns, either to yourself or to another team member.
  • Restore Energy and grant Energy Regeneration to yourself or another team member for three turns.
  • Inflict Nature’s Wrath by dealing Nature Damage to a given enemy, ignoring Resilience and Armour.

Each of these sub-spells for Reserved Power share cooldown, and once this cooldown ends the player can choose one of the four spells again. Once we’d done some work on these, we went on to create another visual effect for the Parakaw Astromancer, this time for the Master of Magic trigger. This ability gives the Parakaw a 30% chance to restore 30% of the Mana cost for each spell cast. While this can only be used on the Parakaw, we tested the VFX on the Forest Druid for conveniency purposes.

Our VFX Artist found a really nice tip on creating trails in Unreal this week, so to test this newfound knowledge they decided to redo the trail for Frostbolt – and we love the results! As a result, they’re going to redo some of the other projectiles next week, so we’re excited to see how they all turn out.

Sound Design 

This week in Sound Design, we started recording vocalisations for some of the humanoid characters, like the Rhinogar Warrior and Unproven Lionman. Generic sound sets were also created for a few of our other characters and creatures, including:

  • Elven characters
  • Dwarven characters
  • Human characters
  • Lizards

Included in these sound sets are a load of ‘base’ sounds for each character type, like grunts, growls and snarls. Doing this will allow our Sound Artist to get a handle on what each character class sounds like, allowing them to eventually go even further by refining each set of sounds to differentiate between variations of characters within the same character class. Elven characters, for example, now have a distinct set of generic base sounds –  but these will be worked on and diversified in the future so that the Twilight Elves, Storm Elves and Fen Elves all have their own unique sound effects. 

Our Sound Artist has already started doing this for the Lizards. After creating a sound set for them, they’re now using this to produce the nuanced sounds for the Swamp Lizard, Thorny Lizard and Silver Iguana. Work on this will continue into next week, so make sure you come back to hear how it’s all coming together.

This is a vocalisation of one of the Rhinogar Warrior’s attacks.
This is a draft sound of the Unproven Lionman’s growl.
Included in the Elven sound set is how their attacks will generally sound. These character sounds will soon be paired with character animations in the game.

Programming

Our Programmers’ aim this week has been to bring us closer to our goal of being able to play Depths of Erendorn in Unreal Engine 4 – and, more specifically, to get to the stage where players are able to do things like view the layout, read a summary of enemies, vote to reroll and, ultimately, spawn into different rooms. A few additions have been made in an effort to achieve this goal:

  • The method for dealing with set pieces and their sublevels has been updated, and spawn tiles are allocated via this data when rooms are generated.
  • The main top-down camera pawn has been created and linked with the player controllers to allow for movement, zooming and tile selection.
  • A Placement Manager has been added to deal with the pregame phase and validate spawn locations and selections.

A number of UI widgets have been added, too, including a loading panel for displaying the state of the game as the player joins a server; a notification panel which can be sent messages that display while in the game; and the world space health bars that float above game entities.

Speaking of game entities, Entity Characters now have an initialise function to setup data from the Game Entity class into the Entity Character. As well as this:

  • The Entity Manager now keeps a map of Entity ID for each spawned Entity, and there is an Update function to maintain this map.
  • Game Entities can now store information on their current state. For example, information about if they are stunned or disarmed is now managed and made available.

Furthermore, the GameServer Connector is now properly accessible, meaning that we can begin to send and receive commands to and from the server. Making the Connector accessible in this way is crucial because it impacts many other areas. For example, Entity State updates, and every other change that happens during a game for that matter, are received via the GameServer Connector. As well as this, with the GameState Updater now fully integrated, the GameState Updater can now also listen to updates that are fired from the GameServer Connector. The Updater then validates them and requests new updates if an invalid one is received. 

Our Programmers ended the week by making a few more tweaks here and there:

  • Altered some GameLog parsing functions and data held within logs.
  • Adjusted level generator set piece rotations, with the default rotation being north facing.
  • The Ballot Manager should now detect and trigger the relevant events to ongoing Ballots.

That’s it for this week! We hope you enjoyed reading about what our team has been up to. For daily updates, remember to join our social media family – we love hearing your feedback!