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

Discussion: Would a web-based OT be welcome?

Thanks Night Wolf.

It originally started off as just a learning project, it's so much fun!

I agree with you, everything built to fit each other from shared assets is beneficial. However, due to the nature of the environment, its easier to do this in a web project, much harder for a c++ server/client/map editor to share resources. 90% of my code is javascript.

That is the end goal, if I do replace it with my own graphic set(which is in progress btw), then it is 100% bespoke.

Thanks, the UI was a pain to design/code!!!!
 
One is tip is to group similar information. I believe for example the experience bar could be merged with the level bar (in the form of tooltip perhaps?) you can even include exp rate in the tooltip
 
Yes I agree, 100%!

UI/UX design doesn't come very natural to me, so I spend way too much time trying to think of good ways to present information, so thanks for the tip, I will definitely change it to your suggestion!

Also, should I add a bit more personal information there too such as player name, vocation etc. What do you think?
 
Looking great, since most OT still use a website to create account and a lot of other things, playing a game with no need to download anything sounds lovely to me
 
Yes I agree, 100%!

UI/UX design doesn't come very natural to me, so I spend way too much time trying to think of good ways to present information, so thanks for the tip, I will definitely change it to your suggestion!

Also, should I add a bit more personal information there too such as player name, vocation etc. What do you think?
I think you can replace the "look" to be on Hover after 3 sec?, it would be way more interesting. You can put personal info upon hovering over yourself.
 
Very nice!! Good luck with your own game! I liked a lot the interface / ux, and it seems you already coded a lot of stuff (monsters AI, spells, smooth walking etc).


I've ever thought how would it be to develop the server side in nodejs... But I'm not so good with it, I only know how to create simple restful APIs / CRUDs using express and so on haha anyway, congratulations
 
Looking great, since most OT still use a website to create account and a lot of other things, playing a game with no need to download anything sounds lovely to me
Thanks :) Yeah, that's the beauty of web games. Technically you are still downloading the client on page call (if not stored in cache) but you are still absolutely right. I've always wondered the percentage of people that turn away from downloading game clients (in fear of a virus or general paranoia xD)

I think you can replace the "look" to be on Hover after 3 sec?, it would be way more interesting. You can put personal info upon hovering over yourself.
Yeah that's another awesome suggestion, thank you. I might actually work on that later on today.

Very nice!! Good luck with your own game! I liked a lot the interface / ux, and it seems you already coded a lot of stuff (monsters AI, spells, smooth walking etc).


I've ever thought how would it be to develop the server side in nodejs... But I'm not so good with it, I only know how to create simple restful APIs / CRUDs using express and so on haha anyway, congratulations
Thank you :) Yeah a lot of the core is done, both client and server. At the moment, the client can run around 300fps so it really does look smooth. I'm sure I can get it more efficient by rewriting the rendering with more thought. I wrote the path-finding based on A*, and Djikstra for nearest target. Maybe there is a better alternative that I'm unaware of.

This is my second project with Node.js. I built an online multi-user code editor for my first project, and I fell in love with it xD Look into socket.io, it can help you understand websockets and long-polling.
 
Incredible work! Did you build the server part from scratch?

Node.js has come a long way, the latest version (16.x) had a noticeable performance increase. I wonder how capable an engine built around it would be for a Tibia-esque game.
 
Looks promising! I would love to see the source of the server, been learning node.js for some time now it's fun.
Also wouldn't it be better if you created the client in react.js?
 
Yes, (for a web based client), under a few conditions.

1. No nodejs
  • Sockets can be loaded independently
  • Graphical rendering can be done with something like this: PixiJS (https://www.pixijs.com/)
  • Alternatively look into Unity web deployment
2. Work with the tibia protocol, compatible with existing OT distributions.
* Make it an actual OT client, not a pretentious clone that just looks like tibia and can only be used on special servers.

RSA/xtea encryption/decryption is very painful in javascript, and as far as I know javascript clients don't support direct tcpstream connections. But a solution might be to use a websockets <-> tibia protocol proxy. For this I have POTCP - headless OT client library in PHP. It opens up the possibility to connect natively to any OT server through the tibia protocol, and convert the signals into websockets/json for a javascript frontend client.
There are many projects like this, but nobody have time to finish them :(
I converted OTClient to TypeScript with PixiJS for rendering. I even connected once to kasteria.pl server and had real time game screen view - with NodeJS websocket proxy, but using tibia binary protocol. Problem was rendering around 0.5 FPS on gaming PC. If anyone is interested in this crap:
of course it does not load LUA modules, so there are no menus and other client features. Adding them would take weeks.
 
There are many projects like this, but nobody have time to finish them :(
I converted OTClient to TypeScript with PixiJS for rendering. I even connected once to kasteria.pl server and had real time game screen view - with NodeJS websocket proxy, but using tibia binary protocol. Problem was rendering around 0.5 FPS on gaming PC. If anyone is interested in this crap:
of course it does not load LUA modules, so there are no menus and other client features. Adding them would take weeks.
There is another option, like this dude did here D3Wasm: a port of id Tech 4 / Doom 3 engine to WebAssembly (http://www.continuation-labs.com/projects/d3wasm/) "D3wasm is an experiment to port the id Tech 4 engine (aka. “Doom 3 Engine”) to Emscripten / WebAssembly and WebGL, allowing to run games such as Doom 3 inside modern Web Browsers."
 
Incredible work! Did you build the server part from scratch?

Node.js has come a long way, the latest version (16.x) had a noticeable performance increase. I wonder how capable an engine built around it would be for a Tibia-esque game.
Thanks :) Mostly, yes. I do use socket.io for protocol/communicating. Very capable, assuming it is not connected to the Tibia protocol. The proof is in my pudding (not sure if I said that right xD)

Looks promising! I would love to see the source of the server, been learning node.js for some time now it's fun.
Also wouldn't it be better if you created the client in react.js?
Thanks :) I stream at Twitch (taoprox), so you can see me code live. Yeah I love Node.js, it really is a lot of fun.

I've had a lot of people say "why didn't you use pixi.js and/or react.js". The reason is I wanted to build the engine from scratch for learning purposes. There are also benefits for doing this, such as increased performance. Using libraries can bloat projects as a lot of it is not necessary. For example, I see many websites use Bootstrap for the most basic reasons when they just needed a few lines of code...

There are many projects like this, but nobody have time to finish them :(
I converted OTClient to TypeScript with PixiJS for rendering. I even connected once to kasteria.pl server and had real time game screen view - with NodeJS websocket proxy, but using tibia binary protocol. Problem was rendering around 0.5 FPS on gaming PC. If anyone is interested in this crap:
of course it does not load LUA modules, so there are no menus and other client features. Adding them would take weeks.
I contemplated making an actual web client to connect to the tibia protocol, but I did my research and I saw a lot of attempts such as your own. I just don't think web technology is efficient, yet. However, with future improvements to technologies such as webGL, this could be a great solution. I just think your current OTClient is already a good alternative to the tibia client.

Currently, my client engine is capable of 250-1000 fps, even with a full screen of creatures, moving and attacking. I have tested my server with 100 concurrent connections and the results were extremely promising. There is still a lot of features I want to add so this may change.
 
Implemented quite a few features in the last week or so.

Server:
Loot is now generated in creature corpses. Handle drag and drop, from containers to map and vice versa. Moving map items to from one floor to another. Speed changes for paralyze/haste.

Client:
Opening containers. Full drag and drop functionality on map, or container to map and vice versa. Map animations such as fire, shorelines etc. Context menus.

I do have a question. I have been struggling with the UI for context menus as I didn't want to use the typical style of context menus.

df.png

What do you think? Can anyone think of a better design/ UI for the context menu? I'm struggling xD
 
Implemented quite a few features in the last week or so.

Server:
Loot is now generated in creature corpses. Handle drag and drop, from containers to map and vice versa. Moving map items to from one floor to another. Speed changes for paralyze/haste.

Client:
Opening containers. Full drag and drop functionality on map, or container to map and vice versa. Map animations such as fire, shorelines etc. Context menus.

I do have a question. I have been struggling with the UI for context menus as I didn't want to use the typical style of context menus.

View attachment 61234

What do you think? Can anyone think of a better design/ UI for the context menu? I'm struggling xD

Looks clean to me. As long as the player is able to move the menus around and resize the screen I like this design.

Btw, saw you coding live for a bit last week, nice job in general. Any particular reason on why you use Notepad++ instead of say, VS Code? Also saw quite a bit of older ES syntax in your code, although I remember reading in some article that doing certain things the "old way" (ie. classic for loop vs. the newer higher-order functions) is more performant.
 
Looks clean to me. As long as the player is able to move the menus around and resize the screen I like this design.

Btw, saw you coding live for a bit last week, nice job in general. Any particular reason on why you use Notepad++ instead of say, VS Code? Also saw quite a bit of older ES syntax in your code, although I remember reading in some article that doing certain things the "old way" (ie. classic for loop vs. the newer higher-order functions) is more performant.
Thanks dude. Yeah the UI windows are all resizable and moveable. The game screen is also resizable.

I was referring to the context menu in the game window. So if you right click a tile, I have designed them as circles rather than the standard right click context menu. Do you think the design is cool or should I just use a tradition right click menu?

Oh cool! Did you watch live or watch the vod? If you ever watch me live, come say hi xD

I use Notepad++ as I am very old fashioned, which is why I don't always use the newest ECMA standards. I have been told several times to use VS, and I will eventually transition :) To be honest, I have no idea in the performance differences between old and new standards, I have never personally tested them or seen any benchmarks.
 
@Boy67 You're doing an amazing job. Definitely will be great to have a web-based ot, would be much easier to play Tibia anywhere without having to download anything (in free time at job, university, etc)
Boy67 said:
What do you think? Can anyone think of a better design/ UI for the context menu? I'm struggling xD
+1 to Astrax, looks great how it looks, keep it up ;)

Regards!
 
@Boy67 You're doing an amazing job. Definitely will be great to have a web-based ot, would be much easier to play Tibia anywhere without having to download anything (in free time at job, university, etc)

+1 to Astrax, looks great how it looks, keep it up ;)

Regards!
Thanks dude :) Yeah that's the reason I love web games. Some people are put off by downloading clients from sources they don't trust.
 
Back
Top