We’ve got some huge news in this week’s devlog. Not only have we completed two class types of Daggerclaw Harpies, or started creating some brand new environments, we’ve also decided which new game engine we’re going to use to continue building Depths of Erendorn with! Stick around to hear a little more about that later in this devlog. For now, let’s get into what we’ve been up to this week!
3D Character Modelling
After working on the Daggerclaw Harpy Slayer series for the last couple of devlogs, the sculpt for this class type was completed this week. Once the clothes had been blocked out, we added sculpt details (like cloth folds) before retopologising everything. With the low mesh done, we made some feathers out of individual planes and added these to the shoulders so that they appeared like they were coming out of the skin, not just sitting on top of it.
With the Slayer series done and dusted, we moved onto another Daggerclaw Harpy class type: the Wanderers. With the conflict between their King and Queen causing tensions in the main settlement, Daggerclaw Harpy Wanderers are those who choose to abandon their native home in search of the wonders offered by the far reaches of Erendorn.
Since the Wanderers travel across the land, searching far and wide, we thought it would be useful to add certain details to their sculpt in order to reflect their lifestyle:
- We made their bag bigger so to accommodate all of the trinkets and troves that they discover on their travels, as well as general survival tools they may carry.
- We added a rolled-up blanket to their design so that they have something to sleep on when camping out in the wilderness.
- We showed some paper scrolls poking out of their bag to indicate things like journals, notes, maps and other elusive documents.
After all this, the belt around the waist was given more detail and made to look somewhat armoured. This completed the sculpt, and we’re now in the process of retopologising everything – so keep your eyes on our social media to see how it turns out!
This week, we focussed on creating more animations for the Twilight Elf Assassin. Two abilities we did this for were:
- Shadow Leap: This is a generic skill that allows the Assassin to leap from up to 6 tiles away. It deals Physical Damage and also has the chance to stun enemies if performed from behind.
- Shift Strike: This is a starting ability of the Assassin’s. It allows the player to teleport behind an enemy within a 6 tile radius and deliver Void Damage. It can also stun 1 tile targets.
After this, and after spending some time studying tutorials, we decided to test dynamic bones on the Assassin’s cloak as a way of moving the cloak without having to add any animation to it. We’re still working out the kinks with this, but once we’ve figured it out, it should make the whole process a lot more efficient – especially for other characters that wear cloaks!
Switching Game Engines
You’ll remember from a previous devlog that we’ve decided to switch game engines. This decision was made due to the fact that our current game engine was hindering our development in a number of ways. If you’d like to know more about what went into this decision, then head over to a previous devlog where we talk all about it.
After a lot of research and even more tests, we’ve decided to continue building Depths of Erendorn with Unreal Engine. There are a number of reasons that brought us to this conclusion:
- UE4 fits all of our requirements, from better terrain systems to advanced rendering systems.
- UE4 offers great graphics, allowing us to really push the artwork in the game to the next level.
- UE4 is very well documented, unlike our previous game engine where the documentation was a bit unreliable.
- UE4 also provides a lot of integrated tools, as well as having a lot of compatibility with external tools.
Now that the switch is underway, every department is spending some time getting to grips with Unreal. We’ve already started creating new animations, environment scenes and visual effects in UE4, and the results we’re getting are incredibly promising! We can’t wait to see Depths of Erendorn come to life in a totally new way, so make sure you join us over on Twitter, Instagram, Facebook or Reddit to stay in the loop!
Continuing on with our work from last week’s devlog, eight versions of pine trees were created and implemented into UE4. We also did this with six variations of ferns, lending to our scenes a viridescent and lush overgrowth that we think really captures Erendorn’s wilds.
We also started making some grass before creating a test scene for all of our foliage so far. We’re really stoked about how all of this is coming together in the new engine, and we’re eager to start properly building all of Erendorn’s environments!
With our change over to UE4 now underway, our VFX Artist spent some time this week familiarising themselves with things in Cascade, the particle system used in Unreal. They then started remaking a lot of our VFX, all the while researching similar games that use UE4 to see how they’ve handled VFX.
Switching game engines also invites a lot of fiddly work, and we had to spend some time this week experimenting with different ways to most efficiently transfer assets between projects. Our artist also had to start organising their folder structure and naming convention in order to accommodate this change.
One thing our VFX Artist has really enjoyed about working in Unreal is how easy it is to make visual effects that are bright, glowing or shiny – but it can be a double-edged sword, so our artist is taking a lot of precautions to ensure that they don’t go overboard with it! This is because, for VFX, it’s really important to save these kind of effects for the moments where they will be the most impactful. Otherwise, if bright, glowing effects are happening everywhere, you run the risk of the game becoming super busy and the visuals becoming underwhelming.
Now that we have made the decision to switch our game engine to UE4, we can get back to basics! A lot of changes were made to the server this week:
- We created a utility class for reading Data Tables and assigning icon IDs.
- We added a local save to remember players’ login details.
- Server Responses were standardized and all response content is now compressed.
- Disconnecting from the game server should now remove players from any non-started game lobbies.
- A server’s last message to a client with a valid request_id is now cached in case the message cannot be verified on the client and needs to be resent.
- Server responses were updated after the first implementation in order to implement response caching.
- Lobby updates sent by the server now have a disconnect flag to indicate whether the update was due to a player disconnecting.
- We changed the way commands from the client are processed by the servers so that we don’t have to use separate escaped JSON strings.
- We added a ResendRequest Command for clients to use when we need to re-acquire a corrupted message.
- Cached responses now timeout and are deleted after a timeout period, or upon connection close.
- Character selection menu widgets were added. These display account characters and their abilities when selected.
After all of these changes, we continued work on simplifying and improving the game’s communication. We did this by allowing commands to pass callbacks with command requests, which ensures that the responses are dealt with correctly. We also added the ability to send a command that will receive and store account character information.
In between all this, our programmers began the integration of Unreal’s Data Table assets, which is used or accessing ability information. This new system should prevent the need to constantly transmit data about abilities, thereby optimising our workflow. By keeping a local copy of the database tables and updating them at login, we also have the potential to be able to reduce the amount of communication required for matches to be played.
Now that we’ve chosen a new game engine, there are going to be a lot of updates and changes happening – so keep your eyes peeled!