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:
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.
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.