thank you for the release. Hopefully one day you'll share the bugs you have fixed in OX, and the list of those who you couldn't.
This would take the community to a next level
Like Syntax pointed out, OX has diverged so much from TFS that it would be really hard for us to do this. As a whole, TFS is fairly bug-free, new ones are fixed regularly, and we've even contributed bug-fixes as well (e.g.,
Check that player partner isn't self by jo3bingham · Pull Request #2472 · otland/forgottenserver). The majority of our changes to the server code has been improvements (e.g., creature pathing, spell area line-of-sight, etc.), but, again, these have come at the cost of major rewrites that make it hard for us to raise a pull request against the TFS repository. Apart from that, major PRs on TFS seem to either get ignored or rejected for one reason or another (e.g., Flatlander's pathfinding optimizations:
Optimized Pathfinding by Flatlander57 · Pull Request #2464 · otland/forgottenserver) and never make it in to the master branch which leaves it up to individuals to merge it into their own branches which causes further divergence from the original source.
Let me preface what I'm about to say so I don't sound hypocritical, TFS is good enough for what it is; an emulation of a Tibia server. 99% of players aren't going to notice a difference between it and CipSoft's server of the same client version (assuming the server hoster has a 1:1 map, monsters, actions, etc.). The problem with TFS is that it's difficult for newcomers to contribute to; even someone who is proficient in C++. There are multiple reasons for this including basically no comments or documentation, spaghetti code, a mixture of C++ standards (C++98, C++11, C++14) [granted this is common, but it still can be confusing for beginners to the language]. Even the shear size of some of the headers (player.h) and classes (luascript.cpp) is insane.
What I think would take the community to the next level would be a new server built from the ground up, using the latest standards and technology, commented and documented along the way, but, more importantly, with constant community updates. Take a look at some of the other attempts at a new server, and in different languages (C# and Python come to mind), development is basically dead. Why? Lack of developers is one reason, but I think the main reason is there's no communication with the community (whether or not the community cares). For example, I took a quick look at the C# server that was recently in development to possibly lend a hand, but their development was in a state that made it nearly impossible for anyone to contribute who hadn't been following along since the beginning because major components were split up with a single person working on them in a single branch when they should have been split into smaller jobs. If they would have taken advantage of the task/project section that GitHub provides (or even a third-party one like Trello) to plan out features, prioritise them, divide tasks, and keep track of progress, and also using their thread here on OTLand to update the community on the development process, I think the project would be doing much better as of right now.
I think C++ and Lua are still the optimal languages to use (but with more of the server in Lua and only the necessary core in C++), though others would disagree. I think doing this would be a lot of fun, and I would enjoy doing it if I had the extra free time. Maybe I'll have the time in the future...
To add on to Syntax's closing statement "More to come...", I have plans on releasing protocol changes to the community, like I've done in the past, among other things once OX is in a state we're happy with.