I was actually wondering why his changes are not getting included into the main tfs repo to make it better, is he not allowing it or ppl dont have time to test it or what else ?
They are cherry picking some bug fixes from time to time, but Saiyans is actually someone who knows alot of cpp and is rewriting several things that simply break backwards compatibility, which is a pre-req for actual tfs development plan.
This should not be a problem because considering you have the src of otclient, you can simply use latest protocol and remove the new features and program the tfs and otclient to mimic 7.4 versions, for exemple even using 12.4 version.
Besides this he's doing things in a pace way more agile than tfs can handle, let's us remember we are in tfs 1.3 for more than 2 years now? People is simply not reviewing nor testing PRs anymore, so they get stuck and the repo isn't evolving. I wouldn't be wrong to say very shortly tfs will be replaced for his version.
The thing is we always worried more about improving versions and keeping it backward compatible than to actually try to make something that is an engine apart from tibia world. Having this, would not simply improve our architecture, but would also make us work all in same version.
This means more tests, more opportunity for people contribute and more people would use this engine, outside tibia world.
In order to achieve it there are 5 main pilars we need to evolve and a bonus one that would be desirable:
- AACs
- Architectures and testing
- Engine
- Client
- Sprites
- Bonus: Use of new technologies trending
I would say Menah progress pretty much cover the client part, we just need to start making PRs in his repo to create modules, improve user experience and have the best client we can make. What saiyans is doing pretty much covers the engine part, we just need to support him to rework some parts of the src that doesn't make sense at all like itemType -> Item -> Weapon, for example or the division of classes and methods throughout the src. Things are too attached and that makes testing way more difficult.
Regarding AACs, we need to find out what exactly is going wrong with them, znote and Gesior made a huge work to make them look like RL Tibia and they have a lot of cool functionalities and so but there's been so many complaints of sql injection, exploits and other stuff that one can't simply trust to use them. Also it would be great if we had new layouts that don't necessarily are related to Tibia. By running simple tools like sqlmap or acunetix you already get a shit load of warnings about cross-scripting and other flaws.
Architectures and testing is about raising awareness of those points, coming from a team of regression testing I find myself frustrated to know we still trust manual testing and reviews when the vast majority of the src and client could be automatized with some useful unit/regression testings. Also we need to discuss archictures of both engine, client and overall architecture people are using. What works, what doesn't? While I can talk about the engine, I don't have the same experience for talking about overall architecture of hosting, for example. What tools and tricks to use to avoid ddos, iptables? which rules? This is something that we have a lot of different answers but none of them seem to work perfectly for all cases.
Sprites is something that is always in discussion, even when I talked about generating artificially using GANs there were people telling me to stop it because it would make spriters get away from the community and only benefit otadmins. I think we should try to invest in an initiative like peonso had in the past of creating a new spritesheet of just custom stuff to replace tibia strings once for all. That would be the default one when we talk about otclient.
Lastly, there is a huge list of new and trending technologies we could benefit. Machine Learning is something that is very easy to achieve with Python support and that open a door for infinite possibilities, why not try to make tfs compatible with calling python scripts?
I'm doing a master in data science and I see a lot of possibilities to use this learnings to solve some big problems, but since I haven't evolved much in having python support (with sklearn lib) to tfs, is something still that require a manual intervention to run.