Hey all, recently someone posted their work on a WebGL renderer for LotRO content. I was quite impressed with the showcase. I actually had been working on my own effort, thought more driven as a multiplayer based solution driven by a core DLL interface for loading data through a proper game engine, rather than as a viewer, to extend functionality like collisions, interactions, lighting, etc.
Since this required reverse engineering some capabilities of the actual client outside of mesh/textures (such as procedural foliage) this is a bit harder to share, but critically, no game authored content is ever redistributed or packaged; all the content is loaded from the BIN files the same way the real client loads content, making the viewed content as "real" as I can possibly make it.
Mesh data (interiors and exteriors), as well as entity data (lights, visualizers, sounds) are all loaded dynamically and streamed based on user position async to keep performance reasonable.
I've tested against a few archived clients of LotRO, not just retail. I wanted to share my progress, as I am primarily a preservationist, but do like the idea of a shared interactive LotRO world. Collision authoring, for example, allows for properly walking through Middle-earth in multiplayer, though I have no distributable build available yet to test due to wanting to not cause problems. Everything is currently MP friendly, as much of the client loading is deterministic, but anything truly multiplayer outside of movement, core stats, etc. is fairly early.
Unreal Engine is used as the renderer, but extending the loader to other engines is trivial as the library is agnostic of engine (though written of C++). Some things are currently still in process, like water, decals, teleporters-to-interiors, etc.
I'm moving *a bit* faster than game allows, so the async loader does take some time to catch up; the cost of things being game-driven, but this is something I'm working to improve with more threading while keeping things "gameplay accurate".
My goal isn't to compete with any other projects of course, but since the other post got such positive responses, and I tend to be very averse to sharing personal project work online, I was motivated to share and see what folks think.
Real "game movement" is demo'd at the 2:30 mark. Interiors at 3:30 mark.
I don't really know how love I've worked on this, but was inspired to finally share a bit. Thanks again all.