• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

OTServ in other programming languages.

Java can do same btw. you can easily call java classes to be "compiled" during run. And have them be responsible for scripts, chat handling and such with ability to reload them during runtime.
reflection is powerful but can be unsafe if done improperly. This discussion is not gonna lead anywhere though since there is no "best programming language", just the right tool for the right purpose. With a simple google, you can probably find thousands of people sharing their opinions of which tool is the best.

I don't agree with some people in this thread claiming that "Java will bottleneck when you reach networking". This is just one of the indications of someone who hasn't used Java for anything in particular and lives after the spirit that c++ is the best language. When you actually want to use C or C++ for networking, it usually comes down to low-level things that a high-level language like Java can't do, for example drivers.

I'd also like to point out that I'm no Java-fanboy, i'm just giving it a fair chance as people do tend to hate on it without any factual evidence or without any particular experience. They just tend to follow the norm.
 
Last edited:
Loosik? Will you ever get back to Eloth :/ Please
Atleast host it for nostalgia, if you add paypal donations i can giev you to pay host

That is kinda a long-term plan. Will take a while to finish the server. Working on combat system at the moment. eloth.org has overall progress and on forums, which is just took up again, there is a bit more detail on it :)

reflection is powerful but can be unsafe if done improperly. This discussion is not gonna lead anywhere though since there is no "best programming language", just the right tool for the right purpose. With a simple google, you can probably find thousands of people sharing their opinions of which tool is the best.

I don't agree with some people in this thread claiming that "Java will bottleneck when you reach networking". This is just one of the indications of someone who hasn't used Java for anything in particular and lives after the spirit that c++ is the best language. When you actually want to use C or C++ for networking, it usually comes down to low-level things that a high-level language like Java can't do, for example drivers.

I'd also like to point out that I'm no Java-fanboy, i'm just giving it a fair chance as people do tend to hate on it without any factual evidence or without any particular experience. They just tend to follow the norm.

Indeed. That's why I'm using something that I know works well, and re-used the same "core" for bunch of other projects. In terms of threading, networking and reflections. Will be interesting to see whatever my approach with networking will work well tho. Because instead of auto-send packets on intervals I'm sending packets as they're needed. Which might lead to a bigger amount of small packets rather than few big ones. There are some optimizations I've made in terms of grouping packets ( ie. one tile effect packet for spell rather than few smaller ones ). Will have to do some networking tests later on.
 
I've been working on a private project in C#, mainly cause it's my main programming language for years, and I use this as an excersise to apply design patterns and practice asyncronous programming. Task Parallel Library is a blessing :)

Also I have all the Microsoft stack for free (including free hosting on Azure) as long as I remain in the company, so yeah C# and Azure is my roadmap.
 
PyOT would be much nicer if it was more pythonic and not just a translation of TFS (mostly). I want to see it progressing.
More 'pythonic'? :D What does it even means?
I'd love to see OT server running on PyOT :D wish I could help in this project : (
 
More 'pythonic'? :D What does it even means?
I'd love to see OT server running on PyOT :D wish I could help in this project : (

"Pythonic means code that doesn't just get the syntax right but that follows the conventions of the Python community and uses the language in the way it is intended to be used." - some dude on stackoverflow

It's actually a somewhat commonly used word amongst developers and alike
 
Javascript and webGL, in my opion would bring the coolest OTServ
Very high performance + in the web.
 
More 'pythonic'? :D What does it even means?
I'd love to see OT server running on PyOT :D wish I could help in this project : (
More pythonic means using Python idioms, such as lazy iterators/generators, duck typing, high order functions, and even asyncio with Python 3.5. Python syntax has it's own purpose and we don't gain anything by not using it.
 
I've been working recently on a new OT in Python that I've lazily named PyOT2.
PyOT2 (private project, open to trade code/release project for contributions 1:1)
Only code I've actually used from the original PyOT codebase is their XTEA encryption/decryption (slightly optimized) since most of the original PyOT's codebase is deprecated among many other problems, and even this is likely to be replaced in the future.
I was hoping LooSik was still around for a chat, but looks like he hasn't been around in over a year :(
If anyone are interested in a chat I'm available on discord and sometimes in PMs.

That aside, anyone else still actively working on an OTS project in a different language?
 
I've been working recently on a new OT in Python that I've lazily named PyOT2.
PyOT2 (private project, open to trade code/release project for contributions 1:1)
Only code I've actually used from the original PyOT codebase is their XTEA encryption/decryption (slightly optimized) since most of the original PyOT's codebase is deprecated among many other problems, and even this is likely to be replaced in the future.
I was hoping LooSik was still around for a chat, but looks like he hasn't been around in over a year :(
If anyone are interested in a chat I'm available on discord and sometimes in PMs.

That aside, anyone else still actively working on an OTS project in a different language?

Not exactly OTS, I was making a HTML5/Node.JS game based on Tibia that you can play in your browser, but I got no time to do it alone and there is so many optimization things I don't understand: demo -
and then I moved to this map project: [7.6] All premium account dungeons in Tibia mainland ,

I'm thinking of restarting the development of the game
 
Wb @LooSik. How are you doing?
Are you still working on Eloth or JavaOT or anything?
 
tl;dr Is someone involved in a new OpenTibia distro that is easier to maintain, focused on stability and performance. Contact me.

hello, old Tibia player here (7.4-8.4)
I'm watching this forum from time to time (once a year or something) and recently I got some thoughts that I wanted to share with you guys. But first, let's do some quick summary, at least from my perspective. Positive ones:
  • realots / leaked tibia / Denis server is accessible everywhere together with tutorials on how to host it. That's great at a bit funny at the same time,
  • I love that .lua scripts rework, I think I heard about revscriptsys back in 2010 or something? But nice to see that included in the distro, most of the custom shit that Elf (or his crew added) it's gone (I hope),
  • Enormous progress in Open Tibia Client, congrats to everyone!
Ok but things that never changed, or even got worse:
  • I checked the distros, OpenTibia Server is archived. From what I see only TFS and some Brasilian fork OTXServer is actively developed (correct me if I am wrong),
  • Code quality is poor, checked the repo, pull request, comments. People are aware the code is shit but "it will take to change the whole server". You don't believe me? There are still no documentation, no comments in the code, raw bytes and magic numbers floating around. If I see PRs with saving Houses in parallel of server save (perfect cloning method :) and all that memory leaks where the server cannot handle 700 players on screen etc. cmon it's 2021! On OTX server side it's even worse, people don't know gitflow, there is no real code review but they are building servers o_O,
  • everything looks so raw, DB communication, memory handling, protocol handling, etc. possible race conditions in so many open issues, the staff is probably aware of but cannot fix easily because of the distro design,
  • Regression in terms of tools, I don't see anything interesting except open-source client. Are Cipsoft .sec's map files supported by RME or distros?
Conclusion:
Sticking to c++ wasn't a good idea, the community is smaller than before. There are still a lot of memory leaks caused by human mistakes and poor design. It's MMO server - performance should be the highest priority here, otherwise how it could be called "massive"? I see the old faces are still around, good to know you are still passionate guys, keep the good work. I saw many initiatives during the years with Python, C#, Java etc. but all failed because the community is A) immature and cannot code new solution B) doesn't care, just here to leech C) using their own distro in secret.


sorry for bothering you guys but looks like you were interested and/or involved in something similar in the past @LooSik @e.e @Mkalo @Aoxomoxoa @Amiroslo @Yamaken
 
Sorry for this off topic, but I'm surprised about how rich this topic had become.

As a newbie dev, it was a pleasure reading a so polite and informative discussion, reading both sides

Thanks guys :)
 
Python, C#, Java etc. but all failed because the community is A) immature and cannot code new solution B) doesn't care, just here to leech C) using their own distro in secret
Neither of these options. They failed because no one wants to give up on TFS after so many years and do all the work from scratch. Also Python sucks when it comes to performance and maintaining big codebase, C# is actually a good solution that wouldn't even require Lua (load compiled C# code at runtime), Java is heavy on memory and lacks performance.
 
I dedicated a lot of thought to the problem. Too bad there is too many tradeoffs to be made: performance (how many players we want to have online at the same? We need to prevent software lag), language popularity, language easiness (specially for scripting and hacking around), language safety(Rust main point?), architecture (if we doing it again, let at least fix major fuckups in TFS) and scripting.

My last idea was a modern C++ (20, after C++ modules are working in gcc and maybe vs) core that do the heavy lifting + luajit scripting with a way better c++ -> lua interface than TFS. If we want even more performance, we can make the lua code jitable(problematic) and use FFI to call c++ functions from lua.
I got the feeling that with C#, go, python, javascript i will be stopped by bad performance, the virtual machine, garbage colector, language design, language popularity, etc. Obviously its always depends of how much players you want to have online. Maybe if we aim for a engine that only handle max 500 players per instance then its done with such languages.
If you going to use a slow language, i believe the networking, get spectators and creature map pathing should be done in a bare metal language(C++?), you also should worry about memory allocation.

And for everyone here know something important, TFS is made in C++ but there is so many code that aren't done properly when it comes to performance... TFS is not leveraging everything C++ for games has to give. And people don't know how to use Lua for performance too.
 
Any other thoughts guys? I think for community so big it's piece of cake, as we evoled from users to developers during the years. I will be happy to contribute to any new project.
 
Bump,
as I was Tibia player in the old days and already lost 2 accounts here :O I think I'm not the best person to start any project. But I will contribute to any framework you guys choose (C,C++, Java, Python, whatever), ofc with perfomance-first-approach. With such big and experienced community we can make it.

edit. Looks like one of my old accounts wasn't deleted - Maladnay (https://otland.net/members/maladnay.92664/) hope it isn't against the rules
 
Last edited:
Back
Top