• 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!

jOTS - Distributed Open Tibia Server written in Java

why is Java a bad language to program on? I quite like it :p

It's unbelievably verbose. Checked exceptions. The standard library is lacking some of the most basic things you'd expect to be there.

The list goes on. Take a look at C# to see "Java done right".
 
The con of C# is simply the fact it's not usable normally on Linux systems. I really love C#, but if you're writing a server you really want it to work on Linux as well.

C++ is used if performance is really important - in case of such servers. Java comes close, but, obviously, C++ is closer.
Still, the most important part is the fact that it's coded well, and full OO support would surely help!
 
I'm not saying Java is the best language out there, I'm just saying its not as crappy as you make it sound like
and its normal for C# to be "better" then Java, talking loosely without much technicalities, they took the best things in Java and the best things in C++ and made it all into 1 language

and I agree with TGYoshi, C++ is still the best language out there for performance since it doesn't require any sort of environment to run, while Java needs JRE and C# needs .NET
 
both.png
 
The con of C# is simply the fact it's not usable normally on Linux systems.

Except it is.

C++ is used if performance is really important - in case of such servers. Java comes close, but, obviously, C++ is closer.

Java is used in countless high performance applications and servers across the world. You are using the wrong mindset if you think that raw performance in artificial benchmarks matters.

For a tiny performance tradeoff, Java's advantages are huge.

I'm not saying Java is the best language out there, I'm just saying its not as crappy as you make it sound like

Everyone has their own preference. Personally, after working with it on a daily basis I really feel like tearing my eyes out so often.

C++ is still the best language out there for performance since it doesn't require any sort of environment to run, while Java needs JRE and C# needs .NET

This sentence makes no sense at all. How does the lack of a required runtime environment somehow make C++ a "better language"?

By the way, all that magic in C & C++ doesn't come from thin air either.
 
Cool that you are using my otclient project :)

4 years ago I started developing a world of warcraft server in java with a friend. The project didn't go more than character list login, but a lot of code was done. . Back 6 years ago I developed a fully 3d engine for a FPS game rendering quake BSP maps using OpenGL (JOGL) in java too, I ended up migrating all the engine to C++ because of performance reasons. What I learned from both projects is that java is not worthy to develop complex and huge games. If you do not want to run these problems I recommend to use a high performance language like C or C++ from the start for doing this, unless you want to learn the hard way or lose weeks just optimizing instead of doing the project.

C++11 is out and with more features that come closer to java, specially shared pointers (which can smoothly do the job of java garbage collection) and lambdas (a feature that java had and I missed in C++ for years). As much I liked java, I ended up abandoning it. So instead of doing just one more server in jave, I would vote for another server in C++11 made from scratch fixing and improving a lot of bad sides that the current TFS have and doing this cool server infrastructure design that you have in mind.
 
4 years ago I started developing a world of warcraft server in java with a friend. The project didn't go more than character list login, but a lot of code was done. . Back 6 years ago I developed a fully 3d engine for a FPS game rendering quake BSP maps using OpenGL (JOGL) in java too, I ended up migrating all the engine to C++ because of performance reasons. What I learned from both projects is that java is not worthy to develop complex and huge games. If you do not want to run these problems I recommend to use a high performance language like C or C++ from the start for doing this, unless you want to learn the hard way or lose weeks just optimizing instead of doing the project.

A high-performance 3D game engine is a completely different project and one of the few cases where the absolute performance of C/C++ is almost a requirement and simply a more logical choice: it's very easy to make mistakes that require constant garbage collection (not using object pooling to avoid allocations, etc.). An OT server does not have these issues.

and lambdas (a feature that java had and I missed in C++ for years).

Java doesn't have real lambdas yet.

In any case, +1 for a new server written in C++.
 

Try it. I have written clientless bot in C# for Tibia 8.6 (simple, just trainer). You know how long it takes to encrypt packet with RSA? Or how long takes the Array copy?

Of course it's pretty fast on windows, on linux it sucks so fcking much.


Cool that you are using my otclient project :)

4 years ago I started developing a world of warcraft server in java with a friend. The project didn't go more than character list login, but a lot of code was done. . Back 6 years ago I developed a fully 3d engine for a FPS game rendering quake BSP maps using OpenGL (JOGL) in java too, I ended up migrating all the engine to C++ because of performance reasons. What I learned from both projects is that java is not worthy to develop complex and huge games. If you do not want to run these problems I recommend to use a high performance language like C or C++ from the start for doing this, unless you want to learn the hard way or lose weeks just optimizing instead of doing the project.

C++11 is out and with more features that come closer to java, specially shared pointers (which can smoothly do the job of java garbage collection) and lambdas (a feature that java had and I missed in C++ for years). As much I liked java, I ended up abandoning it. So instead of doing just one more server in jave, I would vote for another server in C++11 made from scratch fixing and improving a lot of bad sides that the current TFS have and doing this cool server infrastructure design that you have in mind.

AFAIR Java OpenGL (JOGL) bindings are really slow.

I was thinking about Erlang which is even faster than C++ when it comes to network applications.

To sum up: Thousands of people can't be wrong. Java is powerfull and worth of use.
(More about LoL: RIOT GAMES) On server side only the chat is written in Erlang :)
 
Last edited by a moderator:
Try it. I have written clientless bot in C# for Tibia 8.6 (simple, just trainer). You know how long it takes to encrypt packet with RSA? Or how long takes the Array copy?

Of course it's pretty fast on windows, on linux it sucks so fcking much.

Really? Mono seems to fare fairly well in benchmarks against .NET. I'm sure if you were to ask around in their mailing lists, they could give you some pointers.

I didn't include the word normal for fun. C# isn't made for Linux, it barely works.

[citation needed]
 
Keep us updated on the progress.
I guess you made your decision to make a Java project, so stick with it if you are familar with Java.
 
It would be cool if the project become oficial and don't die like others :/
Good lucky man
Hey, it is for what tibia version ?
 
Aint that OTclient by Tala and the rest?!

Tala doesn't make OTClient.

@Topic, well done can't wait for this release :p keep us updated! (Just saw your post :) )

As for the peeps saying that xx is better than Java. Java has its place in many area's and there is a reason it is one of the top rated enterprise languages out there at the moment. It fits its area of application and web application development really nicely... especially for web applications. I've been doing development in Java GWT utilizing hibernate ORM/spring ORM and it has been a very powerful web application framework as of so far. I say stick at it, and if you need any assistance, let me know and I might be able to help develop at some point when I have more free time.
 
Last edited:
Man, sorry for resurrect this post
(well, not really)

But, is there any team or people intrested on enter this project?, the case come than, in fact i probably must learn both languajes next year, but i already start learning Java (and i'm managing a little of the code already)

I really love if i can work it applying it, i mean, that way i can learn faster, is there any teams out there working with?, after all... a lot of clients out there use C/#/++ or wherever with a "C" on them already, so, why don't try Java?

I just wanna know if the proyect continue or suggest be reopened to follow your steps, read your comments of development and little by little check & experiment with the code, if you are working with it, i can see when you fix something or when something is bugged and try to read the "why", that is usefull experience than i can't dissmiss.

I love to contribute activly on this, but i don't know if i can be a mayor buffer in this really, i think not, but if you'll do it, be damn sure i'm gonna be following, learning and when the time comes, giving support, active support to the proyect.

But for that must be active.

I guess is a good idea Try Java, after all, why not?, exist a bunch of clients out there with C or related based codes, Lineage2 servers use Java, it's one of the versions/emulators than actualy works pretty fine.

And besides... the TFS just like it is right now have some several bugs, specialy with the NPC's stuff and a lacking, entire lack of work with item-related ficcional commands, i mean, there is almost none fictional command for lua than work with items.

Jfuk that way can be improved

PM

i'll be following this post. ;)
 
Some months ago I tried to do something similar but I failed beacuse I didn't know anything about sockets. Now I'm developing a private project that uses sockets, multithread, etc.
 
Back
Top