February DevLog | Week #3

Development
February 22, 2019
November 18, 2021

Welcome back to another devlog! This week was a relatively quiet one for our game development team, except for the Character Artist who spent much of their time trying to figure out the best way to create our Forest Druid’s leafy hair. The result looks great and we can’t wait to show you it, along with a couple of new animations for one of Erendorn’s fearsome enemies.

3D Character Modelling

With the majority of the Forest Druid character already modelled, this week was dedicated to creating the leaves that make up her hair. In a previous devlog, we mentioned how the original method used to do this was extremely inefficient. The leaves were originally made by using planes that were mapped with leaf textures. These were then placed manually onto the head base. Not only was it very time consuming, it also risked causing performance issues in the engine as it would need to render lots of transparencies on top of one another. As well as that, using this method to populate the head with leaves was not giving us the aesthetic we were hoping for.

In order to find a way around this issue, it was important for our artist to find a fast, automated process that would also give the best final result. Using a method that is used to create trees and bushes, our artist arranged three leaf planes in the formation you see in the image below. Leaf planes have texture maps applied to them, mainly in the form of colour and transparency information.

Screenshot of 3ds Max scene showing a leaf plane, a head base and leafy hair piece
To create the Forest Druid's hair, we positioned three leaf planes into the formation above before using the scatter tool in 3ds Max to populate the head base with them. This made the process much faster and gave our artist more control over the style of the leaves.

When arranged in this way, this group of planes allows a leaf to be seen from most angles. The scatter tool in 3ds Max was then used because it is not only a quick way to populate the head base with leaves, it also places the leaves perpendicular to the surface. A few parameters were then adjusted to edit the amount of and positions of leaf planes on the head base.

The reason this method was effective is because:

  • It avoided too many transparent planes being rendered on top of one another, meaning that it isn’t at risk of slowing down the game engine
  • The leaf planes being perpendicular to the head base gave the hair a more realistic nod towards trees and nature
  • The formation of the leaf planes meant that they could be added to the head base in a fast, automated workflow

After positioning the leaves, our artist began modifying the vertex normals on the leaf planes. These are invisible lines that run off each vertex of a 3D model. Normals are associated with light direction: a normal that faces a light source will result in that surface of the leaf appearing bright and well-lit; a normal that faces away from a light source will be dark or shaded to some degree. Therefore, in this particular example, vertex normals fake the appearance of the fine details that appear on the leaves by utilising light and shadow.

Using this method, our artist was able to:

  • Create leaves that had a soft shadow gradient
  • Prevent any harsh bright or dark faces appearing on the leaves, which would have made the model’s features appear very muted

Once all of this was done, our artist could then manipulate the head base’s shape in order to change the results until he found something that closely resembled the original concept sketch. However, there was an issue with doing this.

With the size of the leaves being fairly consistent when populated along the mesh, the top of the head often ended up looking, in the words of our team, a little “poofy.” A quick fix for this was to generate the leaves for the top of the head separately from the leaves used for the rest of the head. This gave our artist more control over the sizes of the leaves so that the design could be easily manipulated.

There were a few more details of the Forest Druid that were finalised in this week's devlog:

  • The leaves that grow from the cloak were created and placed using the same method as before
  • The vines that wrap around the model’s arms also had leaves growing from the wrists. The vines were made from a strip of planes generated from a helix spline while the leaves were placed manually

Finally, after the long and arduous journey of creating the hair, our Character Artist can finally move onto the texturing phase. This is where all the magic happens so make sure you come back to next week's devlog to take a look at how it turns out!

5 Forest Druid models in 3ds Max facing the camera. They all have leafy hair
After populating the head base with multiple leaf planes, we began manipulating the overall shape until we found one that best resembled the original concept sketch.
5 Forest Druid models in 3ds Max with their backs turned
Because the leaves sit perpendicular to the head base, the top of the hair looked quite poofy. This was also caused by the fact that the leaves were all similar sizes.
Screenshot of female Forest Druid model in 3ds Max
To fix this, we created the leaves for the top of the head separately from the leaves that are used at the bottom of the head.
Completed mesh of a Forest Druid in 3ds Max
With the hair now finished and the mesh complete, we can begin the texturing process for the Forest Druid.

Animation

After creating an idle animation and idle variation for the Skeleton enemy, which you can see in last week’s devlog, our Animator could begin making several more animations for the Skeleton. This week, she created 4 new animations, including:

  • Walk cycle
  • Stun reaction
  • Updated hit reaction
  • Death animation

Our Animator also created a basic rig for a bow and arrow which was then added to the Skeleton idle. As we focus on animating more of Erendorn’s enemies, the King Cobra was the next character to receive some new animations. An idle animation and idle variation were created this week for the King Cobra, and the way it attacks is currently being worked on.

Server

It was a quiet week in the server for our programmer and game developer. The only fix that had to be made was to the AI Intentions, a system that was created to make the enemies use their abilities correctly. This system had a bug that meant the intentions weren’t being used every turn. This meant that enemies would only try to use their abilities every other turn instead of each turn, which they should now do following the fix that was made.

Only one ability change was made this week: the cooldown of Heal Wounds was reduced from 6 to 5. There was also quite a lot of work carried out for the item generator this week:

  • Data structures for the item generator were made
  • Rule sets for the item generator were made
  • The interface for the item generator is now nearly complete
  • The API endpoint, for getting item slots from the database, was made

The item generator is a development tool we are making that allows us to add ‘power’ to base items. Stats in the server are assigned power values which the generator then uses when adding stats to items. This is then used to determine the power level as well as limit what stats can go on each item. The item generator can generate every combination of all the stats, potentially giving us millions of items. Two base items were able to be made this week: Item Slots and Item Type.

https://doe.horus.ninja/wp-content/uploads/2019/02/skeleton_animationset00.mp4

This clip shows all the animations created for the Skeleton enemy this week, including a walk cycle, stun reaction, hit reaction and death animation.

Next week is the last week of February so as well as posting our usual weekly devlog, we will also be summarising the month over on our company website - so if you’ve missed anything or are feeling a little out of the loop, that’s the post for you!

LATEST NEWS

December 8, 2021
2021-12-08 19:00
December 8, 2021
Development
Monthly Devlog #35
Highlights from last month include: Unreal Engine 5 work intensified as our Environment Artist tested new systems and techniques for the game. This has lead to some exciting achievements, which we'll share blow. Our latest cosmetic armour piece took shape and was completed...
December 7, 2021
2021-12-07 19:00
December 8, 2021
Development
December Devlog | Week #1 | No. 157
Last week our teams were hard at work on some exciting stuff! The transition to UE5 has begun, set pieces received a refresh and a whole host of SFX were updated! As always, join us on Twitter, Instagram, and Reddit for daily updates on Depths of Erendorn!
November 30, 2021
2021-11-30 19:00
December 8, 2021
Development
November Devlog | Week #4 | No. 156
This week we saw the completion of our recent cosmetic armour set, the Blue Melmee saw some animation updates and work continued on the Golang bug fixes. As always, join us on Twitter, Instagram, and Reddit for daily updates on Depths of Erendorn - now let’s get into it!
November 24, 2021
2021-11-24 19:00
December 8, 2021
Development
November Devlog | Week #3 | No. 155
This week our teams have been adding the finishing touches to many aspects of their work. Plus, our Droval model takes its first steps! As always, join us on Twitter, Instagram, and Reddit for daily updates on Depths of Erendorn - now let’s get into it!
VIEW MORE..