Hey,
Been working on this quietly for some time and decided to finally make a thread about it.
The idea is pretty straightforward: rewrite the old PT client engine (smLib3d) from scratch using modern C++ and DirectX 11, while keeping full compatibility with the original assets .smd, .smb, .inx, textures, animations, stages, all of it. I’m not trying to make a “PT 2.0” or reinvent the game. The whole point is to keep the original behavior while replacing the old codebase with something cleaner and easier to maintain/debug.
One thing I learned early is that PT has a lot of weird internal behavior that only makes sense once you look at the original source. So before changing or recreating anything, I usually cross-check the old clients (PTClassic / EU-main / ex-machina) and replicate the original logic as closely as possible. Things like the Y/Z axis handling, bone anti-rotation, animation blocks, material blend flags, etc. are very easy to break if you try to “improve” them blindly.
Current progress so far:
- Core math library finished (Vec / Mat4 / Quat)
- DX11 renderer working
- SMD / SMB / INX loaders reading original binaries correctly
- Characters, monsters and items rendering with skeletal animation
- Stage system loading/rendering
- Collision grid + raycast working
- Click-to-move implemented
- Day/night cycle
- Per-map sky, fog and lighting
- Wind animation on foliage
- Water rendering + underwater transition effect on characters
- Maps 0~44 loading correctly (Ricarten, Navisko, Pilai, fore-1, de-1, etc.)
- Ground item drops + pickup
- First audio system pass
- Minimap + player arrow
- Inventory UI
- In-game console
- Classic camera modes
- Basic camera transitions/clamping
- LOD system running
Still a lot left to do obviously, but the project is finally at a point where it feels stable enough to start sharing progress publicly.
I’ll post updates whenever I have something interesting to show.
Been working on this quietly for some time and decided to finally make a thread about it.
The idea is pretty straightforward: rewrite the old PT client engine (smLib3d) from scratch using modern C++ and DirectX 11, while keeping full compatibility with the original assets .smd, .smb, .inx, textures, animations, stages, all of it. I’m not trying to make a “PT 2.0” or reinvent the game. The whole point is to keep the original behavior while replacing the old codebase with something cleaner and easier to maintain/debug.
One thing I learned early is that PT has a lot of weird internal behavior that only makes sense once you look at the original source. So before changing or recreating anything, I usually cross-check the old clients (PTClassic / EU-main / ex-machina) and replicate the original logic as closely as possible. Things like the Y/Z axis handling, bone anti-rotation, animation blocks, material blend flags, etc. are very easy to break if you try to “improve” them blindly.
Current progress so far:
- Core math library finished (Vec / Mat4 / Quat)
- DX11 renderer working
- SMD / SMB / INX loaders reading original binaries correctly
- Characters, monsters and items rendering with skeletal animation
- Stage system loading/rendering
- Collision grid + raycast working
- Click-to-move implemented
- Day/night cycle
- Per-map sky, fog and lighting
- Wind animation on foliage
- Water rendering + underwater transition effect on characters
- Maps 0~44 loading correctly (Ricarten, Navisko, Pilai, fore-1, de-1, etc.)
- Ground item drops + pickup
- First audio system pass
- Minimap + player arrow
- Inventory UI
- In-game console
- Classic camera modes
- Basic camera transitions/clamping
- LOD system running
Still a lot left to do obviously, but the project is finally at a point where it feels stable enough to start sharing progress publicly.
I’ll post updates whenever I have something interesting to show.
Last edited:

