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

2D Tibia can be rendered in 3D?!

Source

Veteran OT User
Joined
May 31, 2020
Messages
226
Reaction score
311
Location
OpenTibia .dev
GitHub
source61
I had this dream last week where I saw Tibia players rendered in 3D, it kind of looked like Minecraft except it was really dark, I stood on a mountain and looked out on the world of players running around, there basically wasn't a world, just a grey background with a dark cloudy weather, players had luminosity, I woke up and asked myself if this is actually possible...
The answer seem to be yes*.

* With a lot of effort and CPU consumption/hog, it's also only a viewer for admins, I don't think a full 3D game client backwards compatible with 2D Tibia can ever happen, so this is probably ever only going to be an idea, though it might be possible to technically make it.

Here's all the main technical challenges/solutions I could think of after waking up:
  • World loading on start: all the map data has to be sent to the viewer.
  • Players: all relevant playerdata, most importantly positions, has to be sent and continuously updated to the viewer.
  • Environment: has to be continuously updated as well on every item decay, add item, item change, etc on map.
  • Same with player and monster logins/spawning and logouts/death obviously (though no rendering of monsters would probably look better + less CPU drain)

Potential viewer features:
  • Height (Z) (num pixels per Z level) for rendering could be arbitrarily decided and adjusted in viewer.
  • Viewer adjusted world transparency (to be able to see players through buildings).
  • 3D world background.

That's about it. I wish I had a sketch for you but I can't draw for shizzle, so you'll have to use your imagination.

Was considering posting this in Chit-Chat, but realized there could be potential legitimate criticism or feedback so posted it in discussions.

Happy holidays everyone.
 
It would be perfectly possible to do that. With minecraft-style game/graphics even easier.
You could essentially just rip minecraft and change a few minor things about movement and you'd have a perfect "3D tibia client".

World loading on start: all the map data has to be sent to the viewer.

True, but you don't have to send ALL map data. In fact you shouldn't. That's why minecraft uses a chunk system.
You can use a chunk system here to limit the amount of data sent. And also you're not sending the actual assets, they're stored client-side, so all you're sending is a easily compressible "blueprint" of where the client should place assets to make it look like the game world.

Players: all relevant playerdata, most importantly positions, has to be sent and continuously updated to the viewer.

That's not a challenge. You could do that even back in the early 90's over a dial up connection.
Updating "the world" is really easy and not much data is sent doing it.

Environment: has to be continuously updated as well on every item decay, add item, item change, etc on map.

Again, not much data has to be sent doing this.
Even world of warcraft has done this since early vanilla with doodads such as campfires and signposts.

Same with player and monster logins/spawning and logouts/death obviously (though no rendering of monsters would probably look better + less CPU drain)

Fun fact: A lot of MMOs keep "default" grayed out player models so they can quickly spawn in a "person" as you run through a town or an encampment. Then as the seconds pass it slowly "builds" out the character. Add race and gender model. Hair style and customization. Then armors. Then weapons.

Server side this is easy, just send all the data at once and have the client decide how to load it in a way that doesn't lag you.
Or you can have the server just send a "player discovery", and then the client can request from the server "give me race and appearance of playerID, now give me worn armor, now give me equipped weapons".

Height (Z) (num pixels per Z level) for rendering could be arbitrarily decided and adjusted in viewer.

The challenge I could see with this however is that if you go with minecraft graphics for this, each Z level would have to be as tall as a player, whereas in minecraft a player is exactly 2 blocks tall. Which means each "tile" would also be a whole player height in X/Y.

Lets say a player is 2 meters tall. Then each "floor" would be 2 meters apart. But each tile would be 2m x 2m. Which might look a bit weird.
Especially if you deal with items... a 2x2m coil of rope on the floor would look a bit funky, so you'd have to deal with that somehow.

Viewer adjusted world transparency (to be able to see players through buildings).

Don't think you need transparency in a 3D world since you can just use windows. And personally having a wall "fade out" as you come close or whatever seems a bit... weird. Same goes for roofs and stuff (you don't need to have transparent roofs since you can just have the camera "bounce around on the underside of the roof")

3D world background.

Not sure what you mean with this.

---

But yeah, your dream is perfectly create-able in real life. You just need a lot of time and effort.
 
@Rexxar
Appreciate your feedback, and some of your points were interesting, like the fact that it should be technically possible to load part of map at the time, however it would be much more complicated to implement, and you would have to constantly unload and load new map data all the time which would be very resource/CPU costly for the server.
But quite importantly I think you might have misunderstood, my list of challenges wasn't a list of things to overcome that I couldn't think of a solution to myself, rather it was just the list of the most important things that would have to be implemented to be backwards compatible with 2D Tibia, and the list was that recognition - indeed it wouldn't be hard to implement, if it would be I'd make sure to note it down.
As you can see in the thread I concluded very early that it was implementable, just minutes after waking up.
Appreciate your engagement though.

@kor
Yeah, I know Tibia Minecraft already exists, however it's not backwards compatible with 2D Tibia.
So it's quite a different thing, you're (or these guys are) remaking the game in 3D, while this thread is about rendering 2D Tibia in 3D, so you could use a slightly modified version of TFS and render the game in 3D.
However, like I said, it would just be an admin tool that you could show off or have fun with, it wouldn't allow you to play the game in 3D, just watch other players play the game using their 2D client.
The dream was potentially inspired by some work I had done earlier this year with implementing a cast system for my server that supports casting monsters (in 2D) as you can see here:
In a similar vain in this dream I had I was just watching other players run around in 3D.
 
Last edited:
I think that a brand-new game based on A* algorythm would be needed to achieve that. Too many technical stuff that concerns 3d can't just fit on Tibia engine. The best approach i've found is Slavi's Unity project but it still uses 2d sprites.


Looks like a great effort but that's far from being a good outcome. Since it's 2022, I couldn't image something with less quality than Diablo III or similar to be a good outcome. Regards!
 
Back
Top