Jump to content

lcdr & humanoid's Server Project - Update


lcdr
 Share

Recommended Posts

 

Now that the custom LU server community is picking up motion again lately, it might be time to remind the world we're still around.

 

We're lcdr and humanoid. Three years ago, when no one knew anything at all about how LU's network worked, humanoid managed to decrypt the network traffic captured by pwjones before the game closed and wrote the first server prototype. I then added functionality to load worlds, even though at the time all the server did was send packets from the captured traffics and no dynamic functionality was implemented. In the weeks afterwards, conflict arose between timtech and raffa on hosting and modification rights of this code. Not interested in the drama and knowing that only focused development could eventually lead to a working server, humanoid and I continued our work in private. However we still wanted the knowledge we gained from analysing the client and the packets to be accessible to other projects, so we published documentation from our findings. The timtech/raffa conflict eventually caused the forum to fracture, and most remaining public projects failed to develop any meaningful improvements over the initial version. However we continued our work in private, moving steadily closer to a fully functioning server.

 

In the last three years, we have spent countless hours analysing the client, the packets and the required network interaction. Moreso, I have implemented our findings in a server which should be the most complete implementation around.

 

Currently implemented:
Missions
Achievements
Inventory
Quickbuilds
A Scripting system
NPCs
Enemies & Smashables (AI being worked on)
Multiplayer
and many more

 

As you can see in the video, all the functionality for a fully playable Venture Explorer is there, and other Worlds are almost completely working. Notable exceptions are minigames like Survival and Racing, which I am currently working on.

 

We are not releasing any public release at this point because we want to deliver a playable server that is able to provide sustained gameplay to players. We've been considering releasing since about a year ago but decided against it because much still needs to be implemented for the game to be fully playable.

Nonetheless, we think that competition and sharing of information is a good thing, and we wish DLU the best of luck with their server project. Perhaps with time more server projects even will appear too.
We hope that other projects also take part in the spirit of shared information and publish their findings or amend our documentation when something new is discovered. The more we know about the network the sooner a fully working server can be realized.

 

Anyways, I'll be around to answer any questions, and as mentioned in the docs, we're on IRC sometimes too.
 

Link to comment
Share on other sites

How exciting; haven't seen much from you guys in awhile! Looking forward to seeing more of what you guys have accomplished and hope you'll check out the videos of our Alpha :)

  • Like 1
Link to comment
Share on other sites

Good to see you're still around. A bit odd that Sky Lane somehow has her epaulets and helmet items but not her hair item, given that's all the same system, but I'm sure you know she shouldn't be bald hahaha. Keep us posted.

Link to comment
Share on other sites

18 hours ago, Terrev said:

Good to see you're still around. A bit odd that Sky Lane somehow has her epaulets and helmet items but not her hair item, given that's all the same system, but I'm sure you know she shouldn't be bald hahaha. Keep us posted.

Thanks for mentioning, for some reason I always overlooked that. I looked into this, seems like for some reason Sky Lane's items have the wrong item type declared in the database. And worse, they have the same item type, which caused the server to unequip one of the items since usually only one item of a type can be equipped. For now I hardcoded the correct item type in and now it seems to work.

I wish the original database wasn't so inconsistent...

Link to comment
Share on other sites

17 hours ago, Mahoroa said:

This is amazing! :D Will the entirety of the original game be reimplemented, complete with all achievements, sidequests, etc?

That's the plan. However there are some parts which according to our current understanding would be very hard to emulate, such as brick building, which seems to have required the server to convert the brick meshes, which would require a full mesh database on the server. Therefore we don't require to have them implemented to release the server.

Regarding achievements and sidequests: We're actually quite far ahead there.

Link to comment
Share on other sites

Moving toward a working LU server requires a lot of expertise in network analysis, programming, and reverse engineering. From the LUNI drama three years ago we've learned that although people wanting to help is commendable, for a server to be implemented as smoothly and correctly as possible it is simpler to focus on development in a small team. However by now there are other server projects that may be looking for help if you've got the relevant skills.

Link to comment
Share on other sites

On 2/1/2017 at 10:06 AM, lcdr said:

Thanks for mentioning, for some reason I always overlooked that. I looked into this, seems like for some reason Sky Lane's items have the wrong item type declared in the database. And worse, they have the same item type, which caused the server to unequip one of the items since usually only one item of a type can be equipped. For now I hardcoded the correct item type in and now it seems to work.

I wish the original database wasn't so inconsistent...

There's a somewhat similar case with Nuckal's head (and other Ninjago skeleton heads too, they're all items - but I'll just focus on Nuckal). Two versions of Nuckal's head were given out to players by Mythran towards the end of the game, 12305 and 16051 (the former is the actual item equipped by Nuckal, the latter isn't even in the objects table and lacks particle effects to make the eye glow). Players were able to equip them at the same time as any other items - headgear, neck items, weapons, anything. Here's a player wearing 16051, a jetpack, and a hat at the same time:

 

ttyU2hG.png

 

(Sorry for the poor quality, it's a screencap from one of my old videos.)

 

Here's the item component for 12305:

<row id="6047" equipLocation="head" baseValue="0" isKitPiece="0" rarity="5" itemType="4" itemInfo="0" inLootTable="0" inVendor="0" isUnique="0" isBOP="0" isBOE="0" reqFlagID="0" reqSpecialtyID="0" reqSpecRank="0" reqAchievementID="0" stackSize="1" color1="81" readyForQA="0" itemRating="0" isTwoHanded="0" minNumRequired="0" noEquipAnimation="0" />

 

And 16051:

<row id="7431" equipLocation="head" baseValue="0" isKitPiece="0" rarity="5" itemType="4" itemInfo="0" inLootTable="0" inVendor="0" isUnique="0" isBOP="0" isBOE="0" stackSize="1" color1="81" reqPrecondition="" readyForQA="0" isTwoHanded="0" minNumRequired="0" subItems="                                                  " audioEventUse="" noEquipAnimation="0" audioEquipMetaEventSet="" currencyCosts="" ingredientInfo="" locStatus="0" />

 

They both have an equip location of "head" (and that's indeed the bone on the minifig they attach to), but an item type of 4 (neck). And when equipped, they didn't conflict with items already existing in either of those places - Nuckal himself has armor with an item type of 4 (12303, "NPC Skeleton Armor 1") but it didn't conflict with his head. Go figure.

Link to comment
Share on other sites

There's also a NexusHQ Object DB.  It's listing 16051 as follows: 

Name: NPC Skeleton Head Maelstrom helm on Big Kruncha    

Description: Big Head with mealstrom helm for NJ Skeleton

Not sure if above information is also available in the normal object DB.

 

 


 

Link to comment
Share on other sites

Interesting, the Nexus HQ had the names/descriptions of (at least some of) the objects omitted from the objects table? As far as I know there's 634 objects that were omitted from the objects table,* but still work as they're in the game's ComponentsRegistry - mostly test/GM only objects, lots of Ninjago stuff.

 

Here's a few notable unlisted objects, if you could see if they're listed in the Nexus HQ object database with their real names/descriptions that'd be awesome:

 

Unreleased Crux Prime items:

12099 (tesla backpack)

12100 (ice backpack)

 

And some Ninjago earth armor:

14140 (helmet)

14135 (armor)

14170 (shirt)

14171 (legs)

14090 (scythe, held in two hands)

14548 (scythe, same as above except only held in one hand)

 

*I had @le717 looking into those unlisted objects a while back, he made a little script to go through the ComponentsRegistry and look for objects present there but not in the objects table. He came up with this list of 634 of them... I don't suppose *all* of these would happen to have their names/descriptions in the Nexus HQ database, would they?

 

As for how/why they're unlisted in the first place - all an object needs to work is to have components tied to its ID in the ComponentsRegistry, hence why the devs were able to omit specific things from the objects table of the live client and still have them work. Going by the sorta stuff they hid, it seems they may have done it to make things less obvious to nosy players... People loved poking through the database for hints at upcoming content, and posting about it on the LEGO Message Boards, even though the database wasn't that easy to dig through due to the file format. They also stripped the database of most zone names/descriptions after people started posting about old scrapped worlds/test worlds/etc...

Link to comment
Share on other sites

12099: Tesla Pack - Gives +1AP

12100: Portable Skating Machine - Gives +2AP

14140: Master Hood of Quakes (also mentions skills, but I'm not going to copy/paste stuff)

14135: Master Mantle of Quakes 

14170: Master Gi of Quakes 

14171: Master Pants of Quakes 

14090: Master Scythe of Quakes 

14548: Master Swords of Fire

 

All of them have names, but for example 16177's name is NJ -Dungeon Generic Transition K. Some items have 'dev' names, but most of them have a proper name as I guess stuff was ready to bring out? 

Still it's too long ago for me being involved in LU to remember how all things worked back then. Did he make that list of the NexusHQ db as well? 

Link to comment
Share on other sites

Awesome, thanks!

 

7 hours ago, Sim said:

All of them have names, but for example 16177's name is NJ -Dungeon Generic Transition K. Some items have 'dev' names, but most of them have a proper name as I guess stuff was ready to bring out? 

Yeah, "NJ -Dungeon Generic Transition K" is a typical environment object name. I just checked its rendercomponent out of curiosity, and the model that object uses is mesh\firetemple\env_nj_dungeon_transition_k.nif - which, unsurprisingly, doesn't even exist in the normal client's assets (they usually didn't include assets for worlds until the updates for them were released).

 

7 hours ago, Sim said:

Still it's too long ago for me being involved in LU to remember how all things worked back then. Did he make that list of the NexusHQ db as well? 

Not sure who you're referring to by "he", but I dunno who preserved the Nexus HQ database. I'd forgotten it even existed until you mentioned it. But I'd love to take a look through it myself if possible.

Link to comment
Share on other sites

  • lol username featured this topic
  • 3 weeks later...

Is it able for the monsters to attack the players because in the video the monsters were not able to do it.And good work  ?And will you add new worlds(create your own worlds)?

:)

Link to comment
Share on other sites

Combat AI is partially implemented, but not fully. If you watch the video closely you'll notice the enemies actually do attack (in fact at some point in the video I get killed because of it), however we're still working on the details, like attack timing and targeting, and more attack types.

All the original worlds are accessible, and working to some degree. We don't plan on creating new worlds, restoring the original functionality is a complex enough task as it is. With the information gained from restoring the old game it's theoretically possible to change/add worlds, however it would have to be done on both client and server, and it would be a very large task, it's not really feasible for now.

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.