Alright, so a "short" update since last time:
Between
January 14th into February the 7th I added all the basic multiplayer functionality so players can see each other logging in, logging out, walking around, teleporting, pushing each other, setting player color/intensity (shared), made cipclient work fully, added version 7.70 alongside version 7.72, so you can login with either client at any or the same time. I also tried to add 7.6 version by disabling encryption with version 7.6, other than soul I think there are more protocol differences that made it not work (yet), probably not really worth adding anyhow.
Fixed a bunch of bugs, core optimizations, added some testing functionality/easter eggs, added functions, simplified functions, improved RSA setup/class (now only needs P and Q and the rest is calculated).
By
February 18th I fixed everything related to map clicking. I added a unique optimization that I've never seen before in any OT. I won't spoil what it is, but once I launch a testserver someone with a very keen eye might notice it, the performance improvement can range from anything between 10% to a 500% performance improvement when using this specific function depending on the circumstances (I engineered it so it will always be more performant than the original function, if it's less performant then the conventional standard is used instead), so it's a major improvement if relied on heavily for certain custom OTs.
I started rewriting one of the largest classes in pure C++ which is compiled into so/dll's and imported at runtime with the long-term goal of having most if not the entire server written in C++, this way I can reuse all the components either in other C++ projects as code or as libraries that I can simply import and use directly.
I also started trying to learn about and implement A*, something I've been dreading since last year (last year I was trying to just think about it conceptually and my mind was kinda blown), but finally "felt ready" to try it out. I first wrote my own sketch with basically no prior knowledge, then had to read a little bit about the basic concept, 1-2 days later I made a basic (buggy) version and later implemented the entire thing.
By
March 4th I fully finished implementing A* including checking for items and creatures, calculating tile speeds, prioritizing non-diagonal movement at all cost (I found a funny "bug" where actually it's the fastest to randomly make a diagonal step where new tile speed > 3x old tile speed, but this isn't how Tibia works, so had to add a caveat for that, etc). I also spent the longest time (almost a week) just figuring out how to properly use a priority queue in C++ for A* as I had no previous experience with this, only after implementing my own priority queue I realized what the issue was (a seemingly "minor" thing with huge effect). And also some other major design optimizations.
By
March 13th I fixed more bugs, 1 minor bug in A*, 1 trivial segfault (poor coding, I sometimes write in a hurry and don't read what I'm even typing), added "turnTo" functionality for monsters (and players) i.e. turning in the direction of another creature (not implemented in monsters behavior yet, just as a command for players), improved/simplified the design of a couple of functions, added /n and alito tera, and "many more" (definitely a few more) according to my git commit.
By
April 4th I added automatic map refresh every x seconds (currently 5 minutes) with 60sec pre warning which can be turned off by a God in-game, rewrote my command system (much cleaner, simpler, and also faster, where each command is added with a single function call that sets the command keyword(s), function, command syntax, command description, and permission required to call the command).
Rewrote more classes in pure C++. Improved Windows compilation (no need to double click a batch shortcut anymore, the new Linux compilation shell script can be called directly in WSL (or in batch, but I prefer running it in WSL) which also sends the files over to my Windows desktop computer where I can run the server and goof around).
A few more minor things: more talkactions (alevo, alani and others), new files, etc. Alani and alevo has all the original cip mechanics.
I think one of the fun things about exploring this server is that everyone are GMs, there's a bunch of commands (about 25 enabled ones) and unique features you've probably never experienced on any other OT, not saying they're all amazing, but they're definitely pretty unique. It's also a good "debug server" if you run your own server, e.g. to test missile effect ids, color values, light values, test different player speed values, or as a player want to practice aiming with objective performance stats, etc, functionality you won't find builtin into any other OTs afaik.
I'm also planning on maybe implementing more easter egg functionality, or like doing certain quests that grants you "passwords" like in oldschool games that gives you access to more commands and features.
But before that I have to clean up/finish some stuff, and atm I'm prioritizing rewriting classes in pure C++ and others.
Here's a silly video of a bug I encountered and recorded at the 25th of Jan when I was fixing all basic multiplayer functionality like walking and pushing etc:
I've also pretty much finished my OTClient project that I've also been working on for years now. I haven't added anti-cheating/anti-re yet, and there's still a few more bugs, but all the most important (to me) bugs and oldschool cip mechanics has been implemented seemingly flawlessly, like the exact same cip tooltip functionality, minimap, compass, hotkeys (there's like 10 different minor fixes just for hotkeys) and all other windows down to the tee. I.e. when you push a stack of item the "type a number" functionality works flawlessly, not only up to but beyond a count of 100, and pretty much all the UI has been designed down to the finest detail, like how large the "stack bar" should be (cip client bar is at like 99% with 2 items, 97% at 3 items, etc, I couldn't determine an actual algorithm to calculate the number of total items to pixel size, so I hardcoded every single pixel size from 2 to 100 items in C++ for the horizontal scrollbar), just as an example of my dedication. I've compared the "skills" window (like every other window) between cip client and my OTClient with a magnifying glass at 4000% zoom to determine the exact spacing between each line, the exact color, exactly where the "tooltips" should show up, etc, same with things like lighting, translucent light (light coming from "cracks" in the roof in the underground floor), popup window behavior, VIP sorting algorithms, right click options orders, options ending up "outside of client", min and max sizes, being able to reduce the "chat window" to the same extent as cip client, "Edit Mark" option, and many many more bug fixes and mechanics, I have like a list of 100+ points and I probably don't mention about 100-200 others that I don't want to share because they're too valuable compared to the amount of work needed to fix them to be shared publicly. The only thing I haven't accomplished yet is the original Tibia fonts (hired multiple high end developers to try to work it out, but none of them could figure it out, they all added some font, but none of them were the right font, I haven't been bothered to try myself yet), the inventory UI isn't flawless yet (probably last thing I'm gonna add before releasing/launching), and there's some minor bugs that hasn't been fixed yet, like long lines in books are hidden behind the "scrollbar", this is one of many hundreds generic unsolved OTClient bugs.
In addition I've also got a decent basic audio system working with a couple of test sounds (no sound interruption), very heavy OTClient (WBC) encryption and builtin cam system (recorder/playback) working for most Tibia versions.
I'm also considering adding things like 4K support, I use 4K personally, though I doubt most players will actually run Tibia in 4K.
But yeah, hopefully I might launch a server this year, and not just a test/GM server which is almost certainly gonna happen this year.