• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

A new concept of a Tibia-like MMORPG based on web transport

grzywka

Member
Joined
Oct 29, 2017
Messages
6
Reaction score
8
Some time ago, I learned about a new UDP-based protocol, WebTransport, which supports data encryption by default.
I started writing a Tibia-style server in RUST and a client in pure JavaScript using PIXI.js.
I don't know what TFS performance is like with pure TCP and xtea, but WebTransport looks promising. It currently supports most new browsers and seems likely to eventually replace WebSocket, offering improved performance.

From what I've seen, TFS handles the game loop on one CPU, while the remaining cores handle networking and DB.
For this project, I chose an architecture that allows us to theoretically handle a higher CPU load by running multiple game loops simultaneously and a more async architecture based on communication via channels.

Currently added features:
  • Loading a tiled map and sending it to players while moving
  • Running around the map + AOI
  • Loading data from SQL
  • Simple combat system
  • Monsters with AI

Sample video of 700 players moving at 200ms per tile. Currently collision-free.
It uses about 50% of each of my two CPU cores on a 5 euro per month VPS.

I'm publishing this because maybe someone will be interested in porting the game client to WebTransport, it opens up new possibilities of playing games via browsers and in addition maybe in my free time I will develop the project and create a new game similar to Tibia :)

I'd like my project to have a more old-school gameplay style, similar to 7.4.
Maybe writing this post will motivate me to continue working on the project.
 
Playing games on a browser is very old school honestly. Weird platform choice to aim for.
I disagree. Even smaller games such as snakes.io still have weekly user count of 1 million.

There are obviously pros/cons, but the same can be said about building a game for any specific OS/platform.
 
You do realize that 98% of these users come from mobile phones? On android it has over 100mln downloads.
Fair, poor example. Soulbound is probably a better example (1 million player milestone reached, although I can't find any data for "active" players).

Some time ago, I learned about a new UDP-based protocol, WebTransport, which supports data encryption by default.
I started writing a Tibia-style server in RUST and a client in pure JavaScript using PIXI.js.
I don't know what TFS performance is like with pure TCP and xtea, but WebTransport looks promising. It currently supports most new browsers and seems likely to eventually replace WebSocket, offering improved performance.

From what I've seen, TFS handles the game loop on one CPU, while the remaining cores handle networking and DB.
For this project, I chose an architecture that allows us to theoretically handle a higher CPU load by running multiple game loops simultaneously and a more async architecture based on communication via channels.

Currently added features:
  • Loading a tiled map and sending it to players while moving
  • Running around the map + AOI
  • Loading data from SQL
  • Simple combat system
  • Monsters with AI

Sample video of 700 players moving at 200ms per tile. Currently collision-free.
It uses about 50% of each of my two CPU cores on a 5 euro per month VPS.

I'm publishing this because maybe someone will be interested in porting the game client to WebTransport, it opens up new possibilities of playing games via browsers and in addition maybe in my free time I will develop the project and create a new game similar to Tibia :)

I'd like my project to have a more old-school gameplay style, similar to 7.4.
Maybe writing this post will motivate me to continue working on the project.
Looks good, I've not heard of WebTransport but I see it still doesn't have full browser support (Safari hasn't implemented yet).
 
Unfortunately, I don't have a Mac and I can't check it, but I read somewhere that WebTransport is already in the Safari and you can turn it on in the developer option

Google uses this protocol in their services and I think Apple will finally implement it on Safari for all users in a maximum of 2 years.
In terms of performance, it's much faster than websockets because it runs on UDP, and you can open multiple reliable/unreliable channels for a single client. There's no head-of-line blocking, and everything uses TLS 1.3.

What worries me is how easy it is to reverse engineer the client's network protocol written in JavaScript, as well as the rest of the code. The only thing you can do is probably frequent protocol updates and validate literally everything on the server. That won't make the bot any harder to write anyway.
 
Playing games on a browser is very old school honestly. Weird platform choice to aim for.
Au contraire while defintely there's an major hardcore-playerbase out there who'd prefer to play large games with open worlds and such I'd reckon there's also an extremely dopamine addicted generation below which Id feel brower-gaming would be more fitting as its less effort.
 
Back
Top