Monthly Treeverse Update #6
The sixth edition of monthly Treeverse updates. Read below for some game development insights on what we’ve worked on in the last month.
An update on Treeverse. A look at our development and art team progress. We will be posting monthly for you to follow along the development of Treeverse, so make sure you subscribe!
Nearing our 6th Monthly Update, we have hired more people onto the team and a website is almost ready. As mentioned in the previous update, this website will be purely informational, and we will have a completely revamped one in the future. We are excited to introduce the team to you all! Before we move on to the rest of the post, I’d like to show you what we have also been working on with OnCyber.
OnCyber is a digital place to experience NFTs in 3D virtual worlds, accessible in multiple different mediums (Mobile, PC, VR).
Concept Art Update
In the following images, you will be able to see an in-game screenshot, level design concepts and a character. We are exploring other unique ways of making the Timeless characters stand out while having the standard characters cel-shaded.
Some words from Scott, our Art Director:
“The art team has been working to build on top of the art direction we have established thus far for the past month. We have started to put different elements into one screen to verify how they might look next to each other, this includes the environment, the player character, and the monsters. The overall visual theme is becoming clearer when we can see a more complete version of the game scene.
This theme will then guide us in creating other parts of the visual details such as VFX for monsters and their skills (WIP below). Going forward, we are working to expand on what we have tested so far, we will create a complete level that is consistent with our lore (The previous one was more for the visual), and then begin to explore the town and open-world area which will be a challenge we have to tackle in the future.
Please note: All visuals are still WIP and will be iterated throughout the development process.”
Engineering Update
General Overview
The entire team has started working on the ECS-based codebase. There’s still a lot of stuff to figure out regarding the proper implementation of systems and features, but it really helps that most of the codebase is relatively modular and decoupled. It’s allowed for the devs to work on various different features simultaneously with minimal clashes. This month we’re giving you the first glimpse of the structure.
Codebase Overview
Layers overview
The codebase is looking neat. Each layer introduces new functionalities and is responsible for usually one or two things. Specialised layers build on top of more generic layers, and interact with each other almost exclusively via components.
The GameObjectLayer
We have refactored this a few times. It’s a particularly important layer as mentioned in our previous monthly update since it’s what allows our ECS based systems to interact with Unity game objects. Since we are using Unity on our servers, it really helps to be able to make use of the Unity ecosystem on the server as well. We’ll need to find a good balance between this convenience and the performance requirements of our servers.
Designer Tools
DebugLayer allows us to visualise all the component values of entities at runtime and modify them at runtime as well.
We’ve started working on the AuthoringLayer. This is what allows prefabs that have been dragged and dropped into the Unity scenes to automatically be converted into Svelto entities at runtime. It’s somewhat complex since the relationships between Unity game objects and entities are not a direct one-to-one mapping.
UILayer
This handles all the UI that is visible on the client. It’s pretty much a top-level layer that can read from all the other layers to display the appropriate information on the screen.
It requires the engineer who works on it to have a very good general overview of the entire system. This meant that our UI engineer really had to dig into the entire codebase extremely fast.
InventoryLayer
This layer is super important and handles the various things that occur in the game when a weapon or equipment is equipped, dropped, picked up etc. It’s mostly a callback-based layer that reacts to world events and input. You can easily tell how thorough some of these layers need to be in order to function properly. The groundwork for the visual presentation is also close to completion, which will allow you to visually see things being equipped and unequipped etc.
You will also notice how each layer has its own Tests folder which is used to ensure that the code functions as expected. This won’t capture the various bugs and quirks that prop up during live gameplay, but it ensures that our code works as expected from a logical perspective
CombatLayer
Directional abilities and the dodge ability were the key focuses here this month. This includes projectile/moving abilities as well as abilities that cause player displacement like the dodge. We can start working on more complex abilities following the patterns discovered when implementing these abilities.
This layer has a lot of moving parts as you can tell from the huge number of files responsible for its functioning. It has been in the works for a while and requires ongoing revisions to ensure it remains generic and flexible enough to handle a vast number of ability types.
NetworkingLayer
Another type of layer that requires constant revision. We’ve cycled through a few socket level libraries, and have settled on using Unity’s new UTP library after realising the weaknesses of other ones.
Networking is notoriously difficult to get correct. It’s something we will start focusing on once a solid number of features have been built. Since the team is still adapting to the ECS architecture the focus is on building actual gameplay instead of wrestling with netcode, until we have something substantial. Rest assured, we’re still researching in the meantime to ensure we are ready for its challenges, and looking for more experienced engineers who are well versed in it.
On Development Practices, Revisions and Refactors
This month we’ve given more of a glimpse into some of the inner workings of our codebase including its structure and the various modules.
This month was particularly full of adaptations as the team found better ways to organise the layers and dependencies. An example of this is that the gameObjectLayer and NetworkingLayer were originally top-level layers that used many of the other layers. They were then flipped to become more generic and fundamental layers instead. Refactors like these require major changes in the entire codebase that don’t necessarily make for a glamorous monthly update. Nonetheless, I’m extremely proud of how the team has worked together and managed to get actual functionality built despite this.
In these monthly engineering updates, it’s hard to really demonstrate how much work needs to go into ensuring that the code not only functions but remains something that can be built on top of for the many years to come. This means constant revisions, rewrites and refactors as the team learns, grows and adapts to the ongoing challenges of game development.
On Scaling An Engineering team
For a game development studio and engineering team, it’s important that we treat the codebase with care and respect if we want to even dream about scaling as a team. In the ideal world, the 30th engineer added to the team should be just as effective in output as the 4th/5th engineer. This often doesn’t work in reality since codebases can become unruly and wild, however, it’s our professional responsibility to design and build our system in a way that allows this to be possible. This was one of the primary reasons we started using ECS and we are already starting to see some of the benefits.
Thanks for tuning into this monthly engineering update!
Game Design
Some words from our producer, Robert:
“Our main objective for the month of May was to finalize our combat experience and our minimal combat loop. After building several different prototypes, we settled on a hybrid system that involves strategic skill casting like a MOBA game and a dodging mechanic to increase the pace of our combat.
We also added in target aiming assistance to reduce the learning curve for casual players allowing them to experience our exciting co-op dungeon combat. Aside from this, the designers also made progress in lore, level, stats, and systems. We have designed a couple of new tribes. Due to our strategic combat experience, players won’t be experiencing hoards of enemies to slay. Instead, the levels will be designed in a way where the players will need to work together to figure out the best possible way to defeat each enemy encounter.
We believe this will elevate the importance of teamwork which is something we highly value in our MMORPG. Player and enemy stats, on the other hand, will be fine-tuned to perfection through dozens of actual human gameplay tests and programmed simulations to make sure the difficulty of each fight is right on spot. Last, we designed the framework of all our core systems. Since we are a classless MMORPG, we finished designing the framework of our weapon system, active skill system, passive skill system, stamina system and much more. We will start designing more weapons and skills in the upcoming months to give you guys an idea of what our combat will feel like.”
Timeless *******
We will just leave this here and let you guess what we also have in the works if you own a Timeless.
Hint: We want to support all sorts of mediums so Timeless can be used across multiple platforms!
Open Positions
We are actively looking for people in the positions listed below:
Lead Developer
Project Managers
Unity Developers
C# developers
Database Engineer
Lead 3D Artist
3D Animators
Senior Environment Artist
IT Recruiter / Recruiter
If you are interested in any of the roles, have the right experience and excel at what you do, contact vacancies@endlessclouds.xyz. For more information on the artist roles, check out some of these roles on our Artstation page.
Going Forward
When building a game, the foundation is the most important thing. Especially if you want to scale fast in the future. It’s easy to build cinematic videos and fake gameplay to entice users. However, the end product is what matters most.
Some are worried that NFT volume and Crypto prices falling will affect the team, but this is not a worry. Treeverse will be created regardless of market volatility.
Disclaimer: Please note that anything written in this document should not be taken as financial advice. Endless Clouds is dedicated to producing a fun, enjoyable game that integrates NFTs. NFTs are a new and highly experimental technology and should not be bought for investment purposes.