In progress…
[OpenJX Devlog #10] Day night system with clock dial
In progress…
[OpenJX Devlog #9] Weather and Climate system
In progress…
[OpenJX Devlog #8] Adding NPC
The client does not keep the NPCs in one nice table. Their names, their kinds and the sprites they use are spread over several lists, so the importer has to read all of them and put an NPC back together before I can place it anywhere.
They come and go with the map. When a region loads around me the NPCs inside it are spawned, and when I walk far enough away they leave with that region, same as the tiles and the scenery. In this shot 24 of the 36 NPCs on this map are alive.
[OpenJX Devlog #7] Teleport gates
This one actually took much of my time than any other tasks. The data of the teleport gates in the client data is very confused, so it’s hard to get and draw the gates correctly in the map.
In the original game, I sometimes get confused when moving on the map and suddenly move to another, it’s like a hidden gate. So I decide to draw the gates on the map, I think it’s more convinent and controllable for players. And I also want to keep this approach of the engine for our sample data later. The issue we have to keep the draw gated still matching with the game style.
[OpenJX Devlog #6] Choosing font family for the game
This looks like a simple task, but for me it’s very important.
I see a lot of private game servers (not official), they built their own JXOnline game by modding or building from leaked source, but they chose a modern font family for the game. That’s terrible for me. I feel like who wants to play this game, they always want to find their nostalgic, that modern font just killed it.
[OpenJX Devlog #5] Adding obstacles and implement pathfinding system with minimap
Actually this one took me pretty much time to optimize. As in the past, the original game can’t solve this, they have a lot of lagged corners. The problem it’s not just pathfinding algorithm itself, it’s also about how the design obstacles.
This one I really want to make it much better than original version. Reach to this point, I think it will not just make a replicated version, I’m a bit ambitous to make a really better version than original game. Players can still feel the atmosphere of original game but without the annoyances caused by the flaws of the old game.
[OpenJX Devlog #4] The engine needs art of its own
Everything so far has been drawn from the original game’s data files. That is fine for proving the formats decode, but it means the engine cannot run at all without a copy of a commercial game sitting next to it. So there is now a sample package that ships with the repo — clone it, build it, and it runs, without a single byte from anywhere else.
[OpenJX Devlog #3] Wind, by bending the sprites I already have
I once came across a simple way to make trees sway in the wind without changing the original art on YouTube. I never expected that I’d actually be able to apply it someday. Because we can’t directly modify the artwork due to intellectual property (IP) concerns, this approach is really useful.
The trade-off is that we’ll have to sacrifice a little FPS here. For now, I’m not going to worry too much about that. It has really made the game world feel much more alive compared to the original.
[OpenJX Devlog #2] The solution for rendering with high FPS supported 4K monitor
In progress…
Where it stands
A whole village at 3840x2064, holding 161 FPS — 1980 ground tiles, 299 cover objects and 499 scenery pieces on screen, 45 of 121 regions resident, worst frame 8.4 ms and no dropped frames.
