This post was originally posted by Jvyden on Jan 8, 2022
LBP Union and Project Lighthouse are not affiliated with Sony Computer Entertainment or their subsidiaries. Project Lighthouse is a clean room reverse engineering project of now defunct PlayStation 3 and Vita LittleBigPlanet online features. No proprietary code is distributed. Under no circumstances will we endorse or support piracy. You must have your own copy of the game in order to use the custom features once they become available. When using these features, you release Sony Computer Entertainment (Sony) as well as any employees or agents of Sony, from any and all liability, corporate, or personal loss caused to you or others by the use of Lighthouse custom servers for LittleBigPlanet.
Hello, everyone, and Happy New Year! I’m jvyden, LBP Union R&D lead developer working on Project Lighthouse. It’s been a while since our article announcing Project Lighthouse, and many things have happened since then, so I figured I would start writing monthly blog posts about updates, new features, plans for the future, and generally all things Lighthouse. This is the first of many.
There’s a lot of interesting things to go over, (especially considering this post covers two months of events), so stay tuned!
Dev Log Videos
Before I talk about the latest updates, I would like to let you know that I occasionally make Dev Log videos about Lighthouse on my YouTube channel. There have been some updates since this video was released, but I put out this video last month about some of the recent changes to Lighthouse. Be sure to check it out!
LBP1 and (Partially) LBP3 Support
There are a few important updates that Lighthouse has received over the past few months that have improved compatibility with LBP1 and LBP3. The first being support for the digest key and basic functionality of LBP3’s community tab.
After the last article was published, our Lead Developer Aklnthndr decided to look into supporting LBP3. He discovered that LBP3 will ignore responses without a proper digest. A digest is, in short, something we call a ‘hash’ that the server and client exchange to verify that data was sent correctly.
All games require a digest, but LBP2 for some odd reason does not care if the digest is not included. The digest must also contain a special string called a “digest key”. We’re pretty sure we can’t include this in the server, so instance admins must find it on their own and set it manually. If they don’t, LBP1 and LBP3 will not work. We are investigating other solutions.
The reason we cannot include the digest key with the Lighthouse source code is because it’s information that comes directly from the original servers. Lighthouse is a clean-room project that completely reverse engineers the online features of LittleBigPlanet with original code. We don’t want to distribute any kind of proprietary information or files in order to maintain compliance with the law.
LBP3 Community Tab
LBP3 has a vastly improved community tab. Unfortunately, at the time of writing we have not finished implementing the community tab, but we have started work on it.
A screenshot of a work-in-progress LBP3 community tab on a developer build of Project Lighthouse.
The interesting part is that the server maintainer has the ability to add or remove a column from the community tab. They can even make their own custom ones. Sumo Digital occasionally will add a custom column for holidays or other events on the official server, but it’s interesting that they didn’t do much other than this. It’s possible that in the future, Lighthouse server owners will be able to create their own custom columns in the community tab to make their servers more unique.
The ability to dive in on LBP2 has been implemented, and while it has a few flaws, it works! Unfortunately, at the time of writing this, Dive In will only work on real hardware since LBP P2P does not yet work on RPCS3. This will only work on LBP2, since LBP3 uses a different method of diving in.
The ability to upload and view photos has been implemented. Everything works just as you would expect:
A photo of me and Minister of Technology ShadowLeviathan playing on the Lighthouse dev server!
The biggest feature by far comes in the form of the website. Its intended purpose is to be a social site similar to the now defunct LBP.me, while also being a place for users to manage their levels, photos, and profiles, and for admins to maintain their instance. The look and feel are definitely subject to change in the future, but for right now this is what Lighthouse on the web looks like while we’re in the development stages.
Here’s how my profile on our test server looks.
You’ll notice that you can see your uploaded photos on the website, as well. Our Developer LumaLivy added a feature that lets you see the locations of people on a photo by hovering over their names:
And lastly, a level uploaded by one of our Scribes, TheGlitch_Boy:
As you can see, admins have access to team picking and deleting a level right from this dashboard.
LBP Vita support
It turns out LBP Vita was supported the whole time and we even didn’t know it! One of the leaders of our private beta testing program, Union Space Corps Starblazer Turecross321, helped us figure out how this was possible.
Apparently, LBP Vita is a direct port of LBP2 to the PS Vita. Thus, it uses the same protocol and API as LBP2. One interesting possibility this brings up is the ability to have a Lighthouse instance have both PS3 and PS Vita clients at the same time, since there’s no real difference in the server.
The biggest problem with creating a private server for any game that uses PSN is authentication. You can’t verify that a ticket (a blob of data the game sends to authenticate) is a valid, working ticket from PSN. Even if we were able to, this would break support for RPCS3 because it can’t get tickets from PSN. So that’s why I decided to make my own method of logging in.
The method is similar to your typical username/password account system with 2FA. First, you sign up on the aforementioned website with your username as your PSN/RPCN username. Then, you attempt to sign in on the game. The server will initially reject the login, waiting for you to approve the login on the website. It’s at this point you have the option to either approve once or approve the IP of the login permanently. Once you’ve approved the login, you can login on the game again, and it will let you in. Easy, and solves those pesky technical problems.
In the case your IP changes once in a while, we recommend approving for one-time every time. (That could be a tagline for some company… 🤔)
This won’t affect you directly, but it will affect general reliability. Automated testing works by repeatedly testing code by either running the code directly, pretending to be a web browser or LBP game, and doing things like submitting comments, or uploading files to see if they will either work or break in the way a test expects. For example, we have a test to see if uploading a script to the server will be rejected as expected.
A list of tests for Project Lighthouse. All tests pass!
Without automated testing, a core aspect of the server like level uploading could break and we wouldn’t even know it.
This is already getting pretty long, so I’ll wrap this up quickly. Project Lighthouse has come a very long way since its start in late October. LBP1/LBP2/LBP Vita are all basically fully functional at this point, and there’s only a little while away before a public beta. I don’t have an exact date for you, but I will say it’s coming soon.
We plan to continue providing regular updates like this one about the progress of Project Lighthouse. If you would like to stay up to date on development progress and are interested in participating in future public betas, make sure to follow us on social media and join our Discord server to be the first to know. Thank you so much for reading this month’s dev log. Be sure to share the news with friends that you’re looking forward to playing online with again!