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

NodeJS 7.4 Server / Client

Forby

Veteran OT User
Joined
Jul 24, 2011
Messages
132
Reaction score
278
Location
The Lost Lands
Over the last few years I've worked on an open source NodeJS OT Server and HTML5 client. Everything is written from scratch and relies a custom protocol based on websockets, so it is not compatible with any existing servers or clients. It remains a work in progress that will most likely never be completed. The source code is available here and instructions on how to run the server are included in the README: GitHub - Inconcessus/Tibia74-JS-Engine (https://github.com/Inconcessus/Tibia74-JS-Engine).

Currently the server loads the 7.4 map that is released here. Many features are already implemented and the server is quite stable, but it remains far from finished. My time is increasingly limited and I am posting it here in case anyone is interested in playing around with it. Writing a game server is very challenging but fun, so hopefully it can be a learning experience too.

Forby
 
looking good buddy , i logged in and checked it out ^^ good stuff you have done quite some work on it
 
Well done. Looks solid, the unique concern about developing NodeJS applications is about the limitations for the Game Server performance with this runtime. IDK if main thread blocks can be an issue on client-side, but probably not.

Usually I always used NodeJS as Login Server and Status Server, works fine :)
 
Over the last few years I've worked on an open source NodeJS OT Server and HTML5 client. Everything is written from scratch and relies a custom protocol based on websockets, so it is not compatible with any existing servers or clients. It remains a work in progress that will most likely never be completed. The source code is available here and instructions on how to run the server are included in the README: GitHub - Inconcessus/Tibia74-JS-Engine (https://github.com/Inconcessus/Tibia74-JS-Engine).

Currently the server loads the 7.4 map that is released here. Many features are already implemented and the server is quite stable, but it remains far from finished. My time is increasingly limited and I am posting it here in case anyone is interested in playing around with it. Writing a game server is very challenging but fun, so hopefully it can be a learning experience too.

Forby


Hey great contribution to the community, I've been a little interested in using a different language than C++ for my game and this is literally the best language in the world for me, been using it for almost a decade professionally, so please, let me know what's the list of items that could make this engine and game server/client "completed" in 7.4 vanilla state, nothing fancy that goes up to 7.9 or 7.81, let's keep it simple, I sign up for this quest, I'm already playing it, I'm all in
 
Wow, you must have put a lot of work into this, I think every web developer has thought about building something like this, but the beginning is so hard, and looking at this repo now, it seems like "so much stuff"
That's really cool, congratulations on getting this far;
Do you have a lot of stuff left to implement, what to focus on, what would be interesting?
 
Hey great contribution to the community, I've been a little interested in using a different language than C++ for my game and this is literally the best language in the world for me, been using it for almost a decade professionally, so please, let me know what's the list of items that could make this engine and game server/client "completed" in 7.4 vanilla state, nothing fancy that goes up to 7.9 or 7.81, let's keep it simple, I sign up for this quest, I'm already playing it, I'm all in
Most the technical infrastructure is there and ready to be used, but the server/client are mostly missing actual completed game features. At this point I don't have time to work on it myself but perhaps someone from the community wants to hack around and have some fun.
 
I've just had a look and it is truly impressive Forby! I'll try make a simple server out of this, honestly super cool dude, it is a shame you got limited time, it would be cool to see what you would be able to do with this
1736961003036.webp1736961021343.webp
 
Most the technical infrastructure is there and ready to be used, but the server/client are mostly missing actual completed game features. At this point I don't have time to work on it myself but perhaps someone from the community wants to hack around and have some fun.
Challange accepted, I will add my sauce to this, can't really find the words to thank you for releasing this, I'll make you proud of this initiative
 
@Forby heyo, what map editor you used to be able to open the 7.4 map?
RME, but it's version 7.6. In my first post I linked to where I got the map and it has further details. And I use a modified version of OTBM2JSON to load the OTBM to my server data model.
 
Some small updates I've done to the existing source, I've made the server ran with the new architecture, but not the client yet, my goal is to make it more readable and maintainable, next step is migrating to typescript, once that's all done, I'll add a create account/player interfaces and logic, once that's all done.

1737381853211.webp1737381878373.webp



Once above is finished, Im planning in re-using existing TFS source, compile them as a compatible module like described below, havent reached that part but community at OTA said that the performance would be a joke if there's no WASM on the client, and people started to joke around with the performance of the server when introducing monsters/spawns/combat, so let's just re-use and hook up the existing stuff, document it hardcore with AI and just match both ends

1737383312746.webp


It's been super fun to play around with this sources, I'm still keeping it closed source as, whenever I tackle in, I do pull requests 10k~20k lines size, so I prefer to group up once I reach a proof of concept of everything

Thanks again Forby!
 
how do u guys build project from scratch get packets and things that need to be done ir order to access or use a certain file? i've always asked it
 
how do u guys build project from scratch get packets and things that need to be done ir order to access or use a certain file? i've always asked it
I am not entirely sure I understand your question? Could you re-phrase that? If you speak portuguese you could also asked in portuguese and I can try to help
 
@Forby any idea why when saving the map as 7.4, the item count is bugged but when saving as 8.0 it works as intended? I am trying to debug the OTBM parser, but not quite sure why this is happening. I am assuming at some point it is reading more bytes than it is intended to?
 
Back
Top