A little Project Entropia nostalgia project… does this look familiar?

For anyone curious about the technical side, I am mainly using Ghidra for reverse engineering, Python and PowerShell for extraction and conversion tools, OpenCode for assisted code analysis, and GitHub for version control and eventual open-source distribution.

The reconstructed Three.js runtime and all conversion tools are being built from scratch around data extracted locally from the player’s own original installation.

For the future multiplayer layer, I am currently considering Colyseus, with community-hosted servers running independently, potentially through Docker. A small PostgreSQL backend or Nakama could later handle accounts, persistent characters, equipment and progression.

Servers would exchange only gameplay data such as character information, item IDs, skills and PED values. Original Project Entropia assets would never be included in the repository or transferred between players or servers.

So, if you do not have the old game files, an old backup or an original installation EXE, CD or ISO… sorry, you will not be joining the cool kids club. :wink:

A quick update

I know there have not been many new screenshots lately, but the project has definitely not stopped. Quite the opposite I have spent the last few days digging much deeper into the original 2003/2008 client.

The biggest progress is that I am finally starting to connect the terrain files I decoded earlier with the actual systems that used them in the game.

I found the path the client used to locate a TDF file, load it from a BNT archive, decompress it and pass the data further into the terrain system.

I have also mapped a large part of the old scene structure. The client kept separate branches for the sky, camera effects, terrain, static objects and animated objects. This is especially interesting because it may eventually lead me from the terrain system directly to buildings, trees, vegetation, creatures and other objects placed around the world.

The general material and rendering system is also now mostly understood. What I am still looking for is the last terrain-specific connection: how the height, materials and blending data stored in each TDF block became the final ground rendered by the original client.

I also took a closer look at the character files. There are hundreds of skinned models and a surprisingly large number of animation files, including many named animation sequences. I have put that part aside temporarily, because I want to finish the terrain before I start rebuilding the first proper character.

As for the missing screenshots: I did prepare a new terrain comparison, but the test revealed a couple of problems in my current runtime. Some texture variants were accidentally identical, and in a few cases the game was still loading the original baseline texture instead of the selected test version.

So the screenshots looked different in places, but I could not honestly prove whether the difference came from the texture, streaming, mipmaps or simply timing.

I would rather wait and show a real comparison than post something misleading.

Once the texture selection is fixed and I can confirm exactly what the runtime is loading, I will repeat the test from the same position, with the same camera, lighting and environment. Then I should finally have some new screenshots worth posting.

1 Like

Darn. Started to play PE at early -04. Too bad that I have changed computer about dozen times since and all the old HDDs which could have possibly contained ancient PE launcer are formated and reuses many times over.

Great project and much kudos to you sir, hats off. Shame that I wont be joining the kewl crew, but definetly following your progress :slight_smile: