There should be an initiative to help developer get a better start with supporting Open-Tibia and allow for wider adoption of Open-Tibia programs such as OTClient by providing detailed information about all Tibia-related protocols and file formats.
Open-Tibia would not have been possible without the detailed understanding of Tibia's protocols and file formats by its developers. Such would be the structure of the Tibia sprite file (.spr), and the login protocol that allows the client to communicate with the server and establish a safe connection. Throughout the years this information has continued to be collected but has never been at one place at the same time except in the form of an implementation (otserv, otclient, and many others). What we need is one source for all this information so that future development will be easier on everyone, and to allow the learning-curve for new developers to be much less steep than it is today.
The Problem
The issue we are currently facing is that many older developers end up not having time, or the will (we grow up/interests change) to keep up the cat & mouse game between us and CipSoft. What I am talking about are the new protocols (10.77, 10.90, 10.91, etc.) that are coming up every so month, and the new items, outfits, monsters, and worse of all the game-protocol and file-format changes. Although these changes have been coming at a slow phase throughout the years it has still been a rather big effort to implement all of those features into Open-Tibia. Every one of us will not be staying at one place our entire lives, someone has to eventually replace us. In the case of Open-Tibia experienced developers are not as many as they were before, those who really understand how the Tibia protocols work, they are none but a few, and they are Not being replaced. That is the problem. We have a very few new developers who are getting into C++ development of otserv and even fewer who really understand the Tibia protocols. When an experienced developer leaves, he takes all the knowledge of those protocols with him. What we have left is the code-base and fractions of information here and there of how things really work. If this continues the death of Open-Tibia will be greatly accelerated.
Symptoms
Today we have an amazing project that almost completely replaces CipSoft's Tibia client. However, there still are some things left to be done before it can actually replace Tibia Client completely, and some of these things are unfortunately taking a very long time because of this problem that we are discussing.
An example is: https://github.com/edubart/otclient/issues/642
This problem, like probably many others, are a result of lack of documentation of the Tibia file formats. Because otclient is more dependent on CipSoft's stuff it will have more of these bugs. This is why we need to document every detail of CipSoft's file-formats and protocols, and then see if otclient (and otserv for that matter) comply with the specifications. In this way we can also enable more developers (such as myself) to help the OT community out with these issues. Right now any developer who wants to help will have to guess how things work from existing code, because they don't have what only a very few people have, which are the details on how the Tibia protocols/formats work.
By the way, if you didn't notice, this bug has been there for a while, and it hasn't been fixed.
The Solution
The solution to this problem is to collect all information about all relevant protocols and file formats in one place. Wherever that place/platform is, it should be maintained by the most trusted people in the community, preferably in a public Git repository or a Wiki where changes are non-destructive and where the information can be easily downloaded. It should also be easy to contribute to it. Even if you have a very small piece of information that you see is missing, you should be able to easily, within a week see it as a part of the documentation.
The text format of the documentation should be decided before-hand, and be followed at all time to keep a consistent structure. For the file-format, it's preferable to use something simple such as Markdown, but you could also use something else that is open and non-binary such as Latex. But in case of a Wiki, you may have to use their custom format.
If many members of the community, and especially the most experienced developers, decide to be a part of this initiative we might have something useful in a very short period of time. I'm personally doing nothing here more than giving an advice, I've got a great deal of experience in running OT-servers but I have nothing to contribute in terms of Tibia protocols and file formats. This is all up to you.
Open-Tibia would not have been possible without the detailed understanding of Tibia's protocols and file formats by its developers. Such would be the structure of the Tibia sprite file (.spr), and the login protocol that allows the client to communicate with the server and establish a safe connection. Throughout the years this information has continued to be collected but has never been at one place at the same time except in the form of an implementation (otserv, otclient, and many others). What we need is one source for all this information so that future development will be easier on everyone, and to allow the learning-curve for new developers to be much less steep than it is today.
The Problem
The issue we are currently facing is that many older developers end up not having time, or the will (we grow up/interests change) to keep up the cat & mouse game between us and CipSoft. What I am talking about are the new protocols (10.77, 10.90, 10.91, etc.) that are coming up every so month, and the new items, outfits, monsters, and worse of all the game-protocol and file-format changes. Although these changes have been coming at a slow phase throughout the years it has still been a rather big effort to implement all of those features into Open-Tibia. Every one of us will not be staying at one place our entire lives, someone has to eventually replace us. In the case of Open-Tibia experienced developers are not as many as they were before, those who really understand how the Tibia protocols work, they are none but a few, and they are Not being replaced. That is the problem. We have a very few new developers who are getting into C++ development of otserv and even fewer who really understand the Tibia protocols. When an experienced developer leaves, he takes all the knowledge of those protocols with him. What we have left is the code-base and fractions of information here and there of how things really work. If this continues the death of Open-Tibia will be greatly accelerated.
Symptoms
Today we have an amazing project that almost completely replaces CipSoft's Tibia client. However, there still are some things left to be done before it can actually replace Tibia Client completely, and some of these things are unfortunately taking a very long time because of this problem that we are discussing.
An example is: https://github.com/edubart/otclient/issues/642
This problem, like probably many others, are a result of lack of documentation of the Tibia file formats. Because otclient is more dependent on CipSoft's stuff it will have more of these bugs. This is why we need to document every detail of CipSoft's file-formats and protocols, and then see if otclient (and otserv for that matter) comply with the specifications. In this way we can also enable more developers (such as myself) to help the OT community out with these issues. Right now any developer who wants to help will have to guess how things work from existing code, because they don't have what only a very few people have, which are the details on how the Tibia protocols/formats work.
By the way, if you didn't notice, this bug has been there for a while, and it hasn't been fixed.
The Solution
The solution to this problem is to collect all information about all relevant protocols and file formats in one place. Wherever that place/platform is, it should be maintained by the most trusted people in the community, preferably in a public Git repository or a Wiki where changes are non-destructive and where the information can be easily downloaded. It should also be easy to contribute to it. Even if you have a very small piece of information that you see is missing, you should be able to easily, within a week see it as a part of the documentation.
The text format of the documentation should be decided before-hand, and be followed at all time to keep a consistent structure. For the file-format, it's preferable to use something simple such as Markdown, but you could also use something else that is open and non-binary such as Latex. But in case of a Wiki, you may have to use their custom format.
If many members of the community, and especially the most experienced developers, decide to be a part of this initiative we might have something useful in a very short period of time. I'm personally doing nothing here more than giving an advice, I've got a great deal of experience in running OT-servers but I have nothing to contribute in terms of Tibia protocols and file formats. This is all up to you.
Last edited: