Dear Tibians,

we, the team of Tibia programmers, are happy to share some snippets of our very own journey of implementing the monk in Tibia with you.

Many months ago, on a fateful day, our product management team dropped a bombshell - they are cooking up plans for a fifth vocation!

On one hand, this project sparked instant euphoria among the team members; on the other hand, there were doubts about its feasibility, considering the extensive code base we work on daily and the amount of legacy code. So the first task for us was to investigate if it would even be realistic to add a fifth vocation in a reasonable time. Therefore, we needed to review every single line of code related to vocations, covering everything from NPCs and quests to the conditions for using potions.

This alone was a tremendously extensive and complex task, yet the prospect of creating a brand new gaming experience for Tibians greatly motivated us to overcome any obstacles. 

After some bustling days of checking and analysing, we were finally able to present a list of needed adjustments and what it would cost to implement all the changes needed. 

The rest is history; we committed to the topic, and everyone was thrilled and excited about it. It was obvious that this project would be massive, and who does not love a big project brimming with new features?

A typical day for a bunch of programmers...

We changed and added a lot of code...

To give you some numbers for a better idea: In the game server and our tools, we had to change 1004 files with 99044 changed lines of code. In our client, we had to change 613 files with 26073 changed lines of code. And finally, for the website, we had to adjust 112 files with 4814 changed lines of code. Overall, more than 130,000 lines of changed code to bring the monk into the game.

Of course, not only were a lot of adjustments to our already existing code needed, but all the new features around the monk, as well as the monk himself had to be implemented as well. 

For example, adding the new spells for the monk: For any new spell to implement, we get a precise description of the spell from the content team or the product management. All the needed data, like mana cost, cooldowns, and, of course, how the spell should work in detail. Some of the spells of the monk have also completely new mechanics, like the virtue spells. For these new mechanics, we discussed a lot in advance how to implement them in the best and most efficient way:

We wanted to make the code robust, easy to understand and easy to modify. This process of finding the ideal path for a feature to be implemented is not easy, but also one of the coolest tasks for a programmer, because it allows for creativity and the exploration of new methods.

When we develop features, the team spirit at CipSoft really shines, and the monk project was no different. As deadlines approached, one of our valued colleagues, originally scheduled for another project, stepped in to help finalise the remaining features in time. Dedication and teamwork are the secret sauce to working not just successfully, but with a smile too!

But let us get back to the hard facts: As you can imagine, not every change was done easily. Adding harmony and the serene state to the UI was a very special task, especially regarding our creature HUD. First, we had to understand how the existing arcs were drawn in the older code which was not documented. The code included the computation of a radius, start and end angles to draw these arcs and it was written very generic to make the arc completely scalable. We had to add the new UI components in the same way and used Bézier curves for the light grey area around the serene circle. Then we added the documentation. Overall, this was one of our favourite tasks. We particularly recall the moment when it was completed and we used "Swift Jab" to build up harmony. It was incredible for the whole team to witness the harmony in the arc and to see some lines of code finally come to life. This is what programming is all about.

We hope this gives you a little glimpse into our programming team and our tasks and we trust you will enjoy the monk and all his new features. We an truly say, that we have put our heart and soul into this project, and we hope it is evident in the gameplay.

01001000 01100001 01110000 01110000 01111001 00100000 01100100 01100101 01100011 01101111 01100100 01101001 01101110 01100111!
Your Tibia Programmers

New Vocation Insight Featured Article 4/6
Author:CipSoft
Discord