Background
Around 2024, I needed a high-resolution radar map, so I contacted one of the developers in the community who was creating them.
The estimated development time was about four months with a price tag of nearly $10k. That seemed way too expensive for my needs, so I decided to build it myself. I soon came across l2mapper (credits to justgos, who appears to be the original author). It was functional but as the author himself mentioned the project was quite messy. It had bugs, performance was poor and loading the entire world wasn't possible.
Later, I found l2mapconv which seemed to be implemented much better. However, it only supported certain texture types for static meshes. Other material types, terrain surfaces and various other elements were rendered without textures.
Since I was much more comfortable with Java, while my experience with C++ was mostly out of necessity, I decided to use the second project as a foundation, rewrite it in Java and incorporate some of the rendering approaches from the first project to support more material types. Because the architectures of the two projects were quite different, the port wasn't very straighforward. The whole process took around two to three months. By the end, I had the radar map I originally needed, along with the ability to load and explore the entire Lineage 2 world. The major missing features were FX effects and billboard animations. There were also some issues with ambient lighting but none of that was particularly important for generating radar maps.
Revisiting the Project
A few months ago, I decided to experiment with one of OpenAI's newer models to see if it could help me finish implementing the rendering of all material types and replace OpenGL with bgfx. My main motivation was that macOS, my primary operating system, only supports OpenGL up to version 4.1 while some of the performance improvements I wanted required newer OpenGL features. bgfx helps with supporting multiple rendering backends, including native Metal on macOS, Vulkan and DirectX.
Current State
The project has now reached a point where I feel comfortable sharing it with others.
You can use it to generate radar maps for any Lineage 2 client version* at virtually any resolution. Each map tile is also exported as a separate file.
Personally, I've had quite a bit of fun just being able to see the entire game world at once and explore any location within it.
Available Modes
There are three modes:
Explore: Freely navigate the world using WASD to move the camera. You can adjust the movement speed using keys 1-5 and speed up or slow down using Shift and Alt. Press F1 to see all controls.
Inspect: Select and isolate individual objects. I added this mode mainly to make it easier to identify and debug problematic materials.
Diagnostics
Platform Support and Performance
The application supports Windows, macOS, and Linux.
It works best on macOS, simply because that's where I've done most of the testing. On my M5 Max, I consistently get 60+ FPS.
I've also tested it on Windows using the DirectX 11, DirectX 12 and Vulkan backends. On Linux it runs but I didn't test world loading so there might be issues.
Troubleshooting
If you encounter any issues, feel free to report them in this thread. Please include your OS version and the Lineage 2 client version you're using.
If your PC struggles with performance, you can try adjusting settings in the main menu as well as the Scene Settings after loading the world or simply load only a portion of the world.
Link: https://www.mediafire.com/folder/7aiqb3k04jbbt/0.1.0-preview
Screenshots:
*Only the following client versions have been tested: C4, C6, GF, HF, and Salvation: The Gathering / Orfen (EN152).