My LEGO Network

Hey everyone!

As I’ve mentioned on twitter, I’ve been working on a side project for a little bit, which like my main project is a server for an abandoned LEGO game. I’m now ready to announce what I’ve been working on: A server for My LEGO Network.

My LEGO Network was a mix between a social network and a game, made in Flash and accessed via web browser. It was around from 2008 to 2015, when it was shut down, like many other LEGO games before it. Some of you may remember playing it back when it was online.

I played a bit of MLN back when it was online, and although the game seemed quite grind-y, I liked the general concept of interacting with both players and networkers and expressing yourself on your public page. The networkers were interesting and varied, and they were connected to other networkers themselves, which made the concept of a LEGO social network more immersive as a game element.

 

A few months ago, Knightoffaith, a fellow LU server developer, mentioned he was looking into recreating a server for MLN. Having played the game years back, I was kind of curious how it worked behind the scenes, so I started investigating. Knightoffaith had already gathered (almost) all client and resource files, which made it possible to assemble the client side without too many problems. (Thanks to Knightoffaith for this, along with organizing and leading the project. Without him the restoration effort probably wouldn’t exist, or at least wouldn’t be very far along.) Using these files as a starting point I was able to research the network communication and put together a server.

I’ve managed to implement most of the core features of MLN by now. Here’s a list of what’s working so far:

Features

Private view of lighthouse64, one of the MLN restoration project’s members.

The Private View, including setting your avatar, setting your profile statements (“about me” bio) and managing your friends.

Mailbox tab

Reading and sending mail, including support for attachments and the “easy reply” feature (suggested replies).

Inventory tab

The inventory and blueprints are also working.

Collections tab

There’s also support for MLN’s integration with galleries, Factory (LEGO model upload), and LU’s creation lab (works similar to a gallery).

Page Builder tab

Modules can be placed on your page in the page builder. There are several different ways of module customization or configuration, of which all are supported.

The public page of lighthouse64, one of the restoration project’s members.

Public pages display your badges and modules. You can also send friend requests to page owners.

You can vote on modules, set up modules with items, and harvest items that the modules have grown.

Delivery Arcade Module

Arcade modules are playable as well.

 

Unfortunately, while a lot of resources and clientside database contents had been archived, there is one key piece that is missing: Data about networkers. Since networkers were a server-side feature, they don’t appear in the client database that was archived, and since MLN used flash, their pages weren’t archived in automated web crawlers. This means that we don’t have data about networkers’ names, their pages, their networker friends, the requirements to be their friend, and their mail responses.

Of course, the ideal solution would be that through some sort of miracle someone stumbles upon the networker database somewhere. However, even if this doesn’t happen, it should still be possible to recreate the database – but it will require some manual work. The MLN wiki has a lot of info regarding networkers archived, including page and mail trades. Mail responses can also be guessed from the mail contents (which, due to the way MLN’s message system works, are archived in the client database), as networkers usually mention what they’re sending and why they’re sending it. However, this leaves the page layout and the networker description & quote on their page missing. The only way to recover them would be if someone happened to record the pages or take a screenshot, back when they were online. Hopefully we’ll be able to piece these things together at some point.

 

By now you’ve probably got some questions about this project and my involvement with it. I’ll try to answer some of them below.

Why are you working on another game server? Shouldn’t you stick with LU and focus on development there?

It’s true that working on one server takes time that could be used for the other. I knew this when I starting getting involved with MLN, and I considered both continuing looking into a server for MLN and sticking with the LU server. In the end, I found there were a few reasons that made exploring an MLN server worthwhile:

  • Exploring different database options:

    The LU server has had some bugs caused by the database system it uses, which unfortunately are very hard to track down and fix. I’ve been curious for a while now how other database systems resolve these kinds of issues, and whether it would make sense to switch the current system. With the MLN server I was able to use the Django framework and its database ORM, which have been widely used and tested. They also work a bit differently than the LU server’s database system, which prevents some kinds of bugs I had previously encountered.

  • Exploring web interfaces & Django:

    I’ve got a bunch of ideas for administration and overview interfaces for the LU server that would ideally be implemented as a web interface. However, I didn’t have a lot of experience with modern data-driven web development, and working on a server for MLN seemed like a great way to get some in-depth experience that would help with the LU server later on.

  • Exploring open-sourcing a working game server:

    I’ve always wanted to make my LU server open source at some point, to make more servers available to players and to decentralize the server landscape. However I haven’t been able to do so so far, for multiple reasons, including the LU projects situation and to avoid LEGO taking legal means against server projects while the server still requires a lot of development.
    The MLN server project offered an opportunity for an open, central, community project working to recreate a game, instead of the current LU situation with multiple closed projects. The MLN server makes it possible to gauge the impact of an open source project on the community, which will hopefully come in useful when the time comes to decide whether to make the LU server open source as well.

  • Exploring working in a larger, community-based effort:

    For similar reasons as with not being able to open source the LU server, I haven’t been able to include more people in my LU server project, the situation is quite complicated. With MLN, it’s possible to “start things off the right way”, with a single, open project that makes it easy to collaborate to bring the game back.
    MLN’s restoration is also inherently more community-based than LU’s: Writing a server for LU mostly requires research and development of LU’s game mechanics, which are tasks that can be done by a relatively small team of developers. In MLN’s case, research and development takes a much smaller part of the restoration effort, and the remaining part of piecing together networker info is much more suited to a crowdsourced approach. I’m looking forward to seeing the restoration effort working with MLN fans to recover networker info.

Why haven’t you talked about this earlier?

Investigating the possibility of an MLN server and developing a prototype were some ventures that were quite experimental, and I first wanted to make sure that a working server for MLN was actually feasible before announcing my involvement in this project. I’m also not a big fan of releasing unfinished things, and wanted to make sure almost all core features were supported before a release.

Will you change your focus from developing the LU server to the MLN server from now on?

Actually, no. Part of why I chose to write a server for MLN is that MLN is far less complex than LU. By now most features are implemented, and there’s a strong foundation for other developers to pick up on my work and implement additional features. From now on, my work on MLN will consist mostly of occasional feature updates and bug fixes. Most of my time will be spent on the LU server, like before.

Can I actually play MLN again?

Sort of. The core system is implemented, however, without networkers, there is no story progression and no rising in the ranks, and you’re limited to the social part of MLN, customizing your page and interacting with your friends.

Can I try it out?

There’s no public hosted MLN server, and I don’t plan on hosting one myself, as I’d like to focus on development and less on server operation. However, the server is open source, so if you’re interested, you can host your own instance to play on. The source is available here, and contains instructions on how to install and set up the server. However, to avoid any copyright problems, I can’t link content files.

What’s next for the MLN project?

There are a few details I haven’t gotten around to implementing yet, like statistics and modules sending out items to random friends. These should be implemented in the future. Other than that, the main challenge is to assemble comprehensive networker data and build the necessary server infrastructure to support networkers.

In the long term, the goal is to completely rewrite the client side to move from the deprecated Flash to a proper HTML-javascript-based system. It’s likely to take quite a while before the project gets to this state though, as the priority is to complete work on networkers first.

What’s next for you?

I will be returning to focus on developing the LU server, making use of what I’ve learned from the MLN server where possible. However, unspectacular work like bug fixing and test writing will still be a sizeable part of my work. These things are however necessary for effective development of a large project like this, and will improve the server quality and prevent regressions in the future.

I can’t yet say when I’ll be able to return to implementing features, but I’ll let you know when the time comes. Once I’ve done enough work on features I’ll also go back to recording videos for the youtube channel. Unfortunately bugfixes don’t make for very interesting videos, which is why I haven’t uploaded videos recently. Once I’m back to developing features videos will be possible again.

I also can’t yet say when the next alpha will happen. I know you can’t wait to play LU again, and I want to start the next alpha soon myself. However it’s very important to me to make sure the server is ready to handle more players before inviting more players to the server, and to fix as many bugs as possible so you can have a fun experience and play like in the original LU.

This is why I’ve put so much focus on bugfixing and testing in the last months. I don’t want to rush the next alpha and invite people while the server still has a few bugs around. Operating the server is only going to get more complicated with more players, which is why I want to fix bugs as early in development as possible. I’m sorry development is taking so long, but I hope you can understand why.

Can I help with restoring MLN?

Yes, this is fortunately much easier than helping restoring LU. The server is open source, so if you have experience with Python and Django, you can help with software development. MLN doesn’t really have special formats you’d need to learn, so getting started is relatively simple. However, keep in mind that this requires programming experience, so this way of contributing might not be for everyone.

However, you can still contribute, even if you can’t program. As mentioned, we don’t have a lot of data about networkers right now, and if you played MLN in the original days and remember some details that aren’t on the MLN wiki, or even better, have screenshots or videos of networkers’ pages, it’d help a lot if you could send us info or update the MLN wiki.

However the restoration has only just started, and there isn’t much organization yet regarding the collection of networker info, so please keep that in mind if you are interested in helping out.

 

In conclusion, I’d like to say that working on the MLN server has been a lot of fun, and I’ve learned a lot working on it. The server gives the MLN restoration project a solid base to work with, and I’m confident they will be able to restore MLN to its original state in time. The work on the server has both given me new ideas for the LU server as well as means to achieve old ones, and for example something like a web interface for the server for both admins and players doesn’t seem too far-fetched any more.

See you all in-game!
– lcdr

Progress report: October 2017 – January 2018

So, by now it’s been three months since the alpha started. Time for some updates on what’s happened in the last three months.

You’ve probably noticed that there haven’t been too many updates on progress lately. That’s partially because I’ve been pretty busy and haven’t had as much time in the last months, but also simply because alpha progress isn’t as easy to demonstrate as feature implementation progress. There’s been a bunch of improvements since the alpha started, but most of them have been minor or internal, and not the typical stuff we can show in our videos. However, by now there are enough that I can talk about them in more detail.

So here we go, a comprehensive list of bugs that were resolved and features that were implemented since the start of the alpha:

(Issue titles usually appear as the tester submitted them)

October

  • Pyraknet: Issue: Duplicate detection not working properly.

    Pyraknet is the network library implementing the RakNet 3.25 protocol that provides the low-level network layer that LU uses for network communication.
    It needs to resend packets when the client doesn’t receive them for some reason, and it needs to be able to detect and throw away resends it doesn’t need when it did receive the packet.
    In a rare case (only 1 message used by LU was using this packet type) the duplicate detection didn’t work. This patch fixed this problem.

  • Issue: Block Yard doesn’t work.

    Most objects on Block Yard didn’t appear for some reason. It turned out this was due to a change in the server’s spawning logic, which, ironically, actually was implementing a new feature, but invalidated an assumption made by Block Yard’s world script. The issue was quickly fixed with some changes to the script.

  • Implemented: Achievements for collecting powerups.

    A rare achievement type, used only by 3 achievements in the whole game, was implemented after a tester noticed the achievements not working properly.

  • Issue: Rocket Take-off uses another rocket than the one placed.

    Selecting a rocket using the mouse rather than pressing shift wasn’t working correctly, and got fixed.

  • Issue: Imaginite isn’t taken by mission.

    The mission in Nimbus station where you can trade imaginite for backpack space wasn’t removing the imaginite properly. Fixed.

    November

  • Issue: Turret quickbuilds don’t despawn.

    Avant Gardens’ robots drop turret quickbuilds, which only despawned when built by a player. Most of the time the players didn’t build the turrets and only smashed the robots, leading to quickbuilds piling up on the AG battlefields. Fixed by introducing a self-destruct timer.

  • Issue: Imaginite isn’t taken by interactables.

    Similarly, survival and wishing wells also didn’t remove imaginite on interaction. This also got fixed.

  • Issue: Survival enemies don’t spawn.

    Similar to the Block Yard issue, spawning logic was also affecting AG Survival. Similarly fixed with alterations to the script.

  • Issue: Unimplemented achievement rewards.

    A few achievements didn’t give out rewards when completed. It turned out this was due to some entries in the game’s original database not being set correctly.

  • Implemented: Achievements for survival times.

    Most achievements regarding survival times were already implemented, but it turned out the game actually uses two separate mechanics for these achievements, and only one of them was implemented before.

  • Issue: Monument finish line won’t end quickbuilds.

    A quickbuild wasn’t completing correctly. It turned out this was because the object overrode the game’s database on quickbuild complete times. Fixed by implementing the override.

  • Issue: Imagination fountain doesn’t drop imagination.

    Some items that were supposed to drop powerups, didn’t. Fixed by implementing the associated script.

  • Pyraknet: Issue: Absolute time used when relative time needed.

    In some packets pyraknet has to send timing information in packets. It turned out the time it was sending was absolute on Linux (but not on Windows), when it should have been sending time relative to program start. This change enforced using relative time everywhere.

  • Implemented: Random missions.

    The game features some daily missions that are drawn from a random pool and not offered sequentially. Support for this was implemented.

  • Issue: “Stagecraft” achievement not working.

    Another bug caused by a script not working correctly. While some more work on the script remains to be done, it now correctly updates the achievement.

  • Issue: Mission to play a guitar not working.

    Similarly caused by a script, and similarly had some complications appearing that caused full implementation to be postponed. The mission is correctly updated now, however.

  • Issue: Paradox’s Plasma Ball 1 does not kill enemies.

    Caused by a bug in skill parsing. Skill structures remain relatively unknown, mostly due to complex conditions that are hard to reverse engineer. A few similar bugs for other items still exist, and in some cases investigations are pretty much stuck because the condition can’t be analyzed even when the matching code is found. In this case however it was possible to resolve the bug.

  • Issue: Plasma Ball 1 jump attack does nothing but consume imagination.

    In some instances, skills can cancel their execution, as happened with the item here, which doesn’t cast its effect if the player is jumping. The server was however still removing the skill’s imagination cost, even if the skill cast had failed. This was fixed to only take the cost if the skill actually succeeded.

  • Issue: Spider Cutscene being played for everyone

    Some network packets are supposed to be sent to all players, while some should be sent to just one player. In this case, it seems a message that would normally be sent to all had its behavior overridden to only be sent to one player. The server didn’t know about the override, and sent it to everyone, causing the cutscene to appear for everyone in the world. Fixed via override.

  • Issue: Rocco Sirocco doesn’t spin

    A script wasn’t working properly, and wasn’t displaying a cinematic when the mission completed. Fixed through script modifications.

December

  • Issue: Daily Mission “Six Shooter” doesn’t give Plunger Gun.

    A script wasn’t implemented, and didn’t give out a mission item.

December featured several large refactors, which reorganized the server internals and cleaned up the code. They didn’t change the external behavior of the server by much, but nonetheless represent significant improvements, as they affected about half of the server and made it easier to implement new features in the future.

  • Refactor: Server command system.

    The server command system was rewritten to be completely separate from the core server. As a result of this change it’s now possible to delete the entire folder related to commands, and the server will continue to function as normal (just without commands, which aren’t part of normal gameplay).

  • Implemented: Mail attachments.

    Mailing attachments had been supported for a while, and the server was already using it to distribute achievement rewards when inventory space was full. However the interface allowing players to send items per mail was disabled, until this patch changed this.

  • Implemented: Mail cost.

    Sending mail costs coins, and mailing achievements increases this cost by the cost of the items mailed. With this change, the server now subtracts the correct cost from the player when sending mail.

  • Pyraknet & LU server: Refactor: Separate BitStream into read-only and write-only versions.

    Pyraknet also provides a way of reading and writing binary data sequentially, and which allows reading/writing single bits. It turned this was almost never used for reading and writing from/to the same stream, and therefore could be separated to make the intent of the stream more clear.

  • Pyraknet & LU server: Refactor: Change to use composition instead of inheritance.

    Pyraknet had previously been using an inheritance model, where the LU server overrode certain things to implement its own functionality. This worked well and allowed for a lot of freedom for overrides, but didn’t separate the low-level pyraknet stuff from the high-level LU server stuff well. This was changed to use composition instead, where the LU server interacts with the low-level layer mainly via callbacks and delegations, which provided proper separation.

  • Pyraknet & LU server: Refactor: Add type annotations.

    Python is dynamically typed, and as such doesn’t enforce a variable to remain the same data type. However information about the intended data type is useful for documentation and static validation, and so Python has added support for this information in recent versions. With type annotation support improving, it was time to add type information to the pyraknet & LU server projects where it hadn’t already been present.

January

  • Pyraknet & LU server: Refactor: Various refactors.

    A bunch of minor things were changed and improved, some variables were made more restricted, and some internal systems were reorganized. The changes are relatively specific to the internal implementation, so I’ll keep this paragraph short. However, that doesn’t mean these changes were insignificant – grouped together, they were one of the larger refactors.

  • Issue: Buttons at the AG Monument trigger even when not built.

    Buttons could be pushed even though they hadn’t been built yet, also known as “invisible buttons”. This was caused by an unimplemented check in the component, and was fixed by implementing the check.

  • Pyraknet & LU server: Refactor: Restrict bitstream interface further.

    Previously it was possible to access packet data both by array index notation and via the sequential interface. In practice the random access was rarely used, so this patch removed this functionality and restricted the interface in some other points as well, which makes passing the bitstream to other handlers safer.

Next up

I hope this list could give you some insight to the kind of bugs that pop up in alpha testing, and to what I’ve been working on in the past months.

There have been a bunch of bugs fixed since the start of the alpha, but there’s plenty left to fix. 50 bugs remain open, and while most of them should be possible to fix, it will take some time. I want to make sure the server doesn’t just have a lot of worlds, but also runs smoothly, and for that to work, it’s necessary to fix the open bugs before opening the next alpha stage. Based on the time it took to fix the above bugs, it’s likely it will take some months until the server is ready for the next alpha. But by then, the server should be pretty robust. 🙂 I’ll publish something when the server’s ready, and I’ll continue the progress updates in the meantime.

See you all in-game!
-lcdr

 

Alpha selections

Hello everyone!

It’s been a week since the application phase ended, and now it’s finally time to announce the results.

First of all, thanks to everyone who submitted an application. In total, we received 303 applications, more than I’d ever have expected. I’m really impressed with how many people are still around who want to play LU, even though the game closed 5 years ago, and how many would apply even though this is just a first alpha. I went ahead and read every one of those 303 applications you sent us, which took a couple of hours, but I felt it was the least I could do to honor your dedication to this game. Your applications were much more than I imagined, with many of you detailing fun moments in original LU, your enthusiasm for the game, and your excitement for being able to play again. It was a great and inspiring read, thanks to you all for taking the time to write all this.

The application system also seems to have worked well to prevent spam; out of 303 applications only 1 was spam (and don’t worry, we didn’t accidentally classify your application as spam, the application in question was a clear impersonation we manually confirmed before disqualifying it).

Now, before continuing with the selections, a note on how the system works: You submitted your application in the application phase. From these 302 applications we selected 20 to be included in the first alpha stage starting on October 26th. The selections were made randomly, using a computer (to be precise, a small python script). However, these 20 people are just the first stage. To evaluate the server performance under load, we’re starting with a small amount, and will add more people in later stages. This also means that if you submitted an application and didn’t get selected, you still have a chance, because your application also counts for the later stages. If you haven’t had a chance to submit your application, you will also still have a chance in later stages, where we will be accepting new applications as well.

Now, on to the selections!

We’re selecting 20 players out of 302 applications, which means if you entered you have a 6.62% chance of being selected.

The selected players for Stage 1, starting on October 26th, are:

 

  • Komplexus
  • Dazoo1
  • ethanlindley
  • Tinka
  • Baffish
  • lordpickleking
  • Homie0Jr
  • emanresU
  • Liam3997
  • Astrophel
  • mater06
  • Mickeystick
  • Halofan4566
  • Matthew
  • LS2112
  • Raydiation
  • DocGrognard
  • creeperkid75
  • stefanoss
  • ShiWham

Congratulations to all of the above. I’m glad the random algorithm provides for so much diversity. We’ve got all kinds of LU fans in there, from original beta testers to live players, to FTP players, to people who never got the chance to play, people from the developer side and people who are engaged in the community, young ones and AFOLs who played LU with their kids. I’m really looking forward to all of them coming together in-game to play LU again.

If you’re one of the selected, check your mail, we will provide you with info on how to connect later today.
If you’re not selected you may still have a chance in later selections, as mentioned above.

And no matter whether you’re selected or not, we will continue to share info about our progress and the alpha with you. You’ll be able to look forward to alpha gameplay videos not only from our youtube, but from the players as well, as we allow streaming and recording of the alpha.

Remember, this all starts on October 26th! I’ve been looking forward to this next step towards everyone being able to play again for years now, and I’m excited that it’s only 5 more days until then.

See you all in-game!
– lcdr

 

 

Alpha release date & timeline

Hello everyone!

We’ve done a lot of server testing over the last month. I’m glad to say that we’ve been able to fix the bugs that came up, and implement the necessary server administration features. We believe we’re ready for a first alpha, where we will invite people from the community to test our server.

The first alpha stage will begin on October 26th, 2017.

We’ve mentioned before that we’d like the alpha selection process to work in a fair way, and we’ve come up with a process that we think will help with this.

We’ve decided not to base alpha access on giving out keys, but instead via applications. Everyone who wants to join the alpha can submit an application describing why they want to join, and after filtering out spam we randomly select from the submissions. This will help with duplicates, and complications with people asking for keys.

We’ve decided to start low with 20 slots available for the first alpha stage. This is so we can analyze how well the server responds to multiple players playing simultaneously, and possibly optimize the server to work more efficiently under these conditions. After we complete our analysis, and implement bug fixes and optimizations, we will expand the alpha in later stages to include more players and features.

To explain the process, here’s a timeline:

September 30 (Today) Alpha application phase starts. From now on, people are able to submit their application for alpha.
October 14 Alpha application phase ends. People will still be able to submit applications, but they will count towards a later stage, not the one beginning on October 26.
October 21 After filtering out spam and randomly selecting applications, we announce the selections on October 21. Selected applicants will be notified via mail about the next steps.
October 26 Alpha Stage 1 starts, with 20 selected people.
Later Once testing with the initial group of 20 people is successful, we will open up the alpha to more people in later stages.

We’ve written up some more detailed explanations in our Alpha FAQ. Check it out if you’ve got a question, or post in the forums.

You’ll be able to submit your applications to the first stage starting now, until October 14. Click below to start your application for a chance to be selected.

Apply for Alpha

We’ve been wanting to do an alpha for a while now, and we’re glad we’re now able to start the process. Check back on October 21 when we announce the selections.

See you all in game!
– lcdr

Progress Report: August 2017

This is just going to be a pretty technical short summary about what we’ve been doing this month. Don’t expect any big announcements here, think of it more as a “behind the scenes” look at what we’ve been working on. Server development is just one of multiple things we do, so there’s more than that listed here.

Note: Before I start, I’d like to mention something:
In the last post I mentioned that for server costs, we’re going to have to set up some sort of donation system at some point. I also mentioned that we’d like to thank donators in some way, and suggested an in-game cosmetic shirt for this. Some of you have responded that you see this as too similar to “freemium” or “pay-to-win”. We only planned this as a small thank-you, with nothing more in mind, similar to something like donator mentions on twitch. However, we understand your concern, and I want to assure you that we will never be “freemium”, everything is and will be 100% free, no catches. Therefore, to leave no questions open, we have decided not to give out in-game items at all. Rather, items will only be available through gameplay. We still want to thank everyone who considers donating to us to help us with the server, but we want to make clear that the playing experience is the most important thing to us.

Now, on to the actual progress report!

Research

  • Investigations on older lvl formats. Lvl files are used by the game to store world information like NPCs and Enemies, and are vital for a server to work.
  • Investigations on the game’s audio formats.

Research tooling

  • As a side effect of the above investigations, it turned out the current structure definition language used to document formats is not completely capable of describing all formats. Currently missing are
    • Support for pointers in formats
    • Support for recursion
    • Support for definition of larger structures from smaller ones
    • Complex looping

This needs to be added at some point to be able to describe more complex formats. The struct definition language is used by the captureviewer and structparser tools to parse binary files and packets. Luckily so far it has sufficed for them, which is why these issues have only surfaced now.

  • Work on a struct-visualizing hex-editor to help with internal research on formats. Screenshot:
    Parsed and highlighted stucts in the viewer, with unparsed part visible below.

    It’s still experimental and too early to release, but it’s helpful for investigations on file formats.

  • Work on the client’s fdb database format.

Documentation

  • Work on cataloging available clients. For research purposes we are always interested in clients from older versions, especially from beta and alpha.
  • The docs are now also available in a faster-loading read-only mode.
  • I’d like to do some more documentation maintenance at some point, but it’s difficult to find time.
  • Work on improving contribution-friendliness to the docs, in cooperation with researchers from other projects. We always welcome contributions, especially if they are well-researched and -sourced.

Development:

Pyraknet

Pyraknet is a minimal port of the network library used by LU, RakNet 3.25, to python. It’s open source and used by multiple projects.

  • Work on making the library more robust, featuring refactors, tests and type annotations.
  • Implemented support for split packet receiving. This was not possible before due to having no proper way of getting the client to send large amounts of data.
  • Investigations on maximum packet size. It seems LU has a packet size of 1200 bytes hardcoded for some reason, even though it’s not really necessary in the network. But just to be sure pyraknet will also use this lower size from now on.

Server

  • Features seen in our video for this month. Side note: LU is bananas.
  • Ongoing work to test the server against edgecases, high loads, network issues and others. This will take a lot of our time, so it’s pretty likely we won’t be able to release a video next month.

Website

  • The website has been online for a month now, and everything’s working well. Thank you for your threads in the forums, I’m glad the atmosphere is so nice there.
  • And of course thanks to everyone commenting on twitter and youtube as well. I read all of your comments, and I really appreciate them 😊

Notes on Alpha

It will still take a few months to prepare everything for an alpha release. Please be patient until then. We’ll post updates about release and admission phase dates once we have something to report, so you don’t have to worry about missing them.

 

See you all in-game!
– lcdr

Site Launch!

We’ve finally gotten around to launching a website. So far we’ve focused on server development, but now we’re ready for a public-facing display. There’s project info, FAQ, media and ingame screenshots, and what I’m looking towards most, forums, which brings our project one step closer to being a complete community. And of course there’s also this dev blog, where we’ll be posting longer updates & announcements, as well as some write-ups about the internals of LU. (For shorter updates check our twitter as well).

Got suggestions? Something not working? Leave a comment or post a topic in the forum.

Plans for the future

The launch of this website clears another checkmark off our list towards a first alpha release. We believe the server is mature enough at this point, and have made sure that the features are working well. We’re working hard to deliver to you the server you deserve, and the first step in that direction is an alpha test where we will host a small server instance to a limited set of people. We want to make sure that every one of you has the same chance of entering, so we’ll be starting an admission phase soon, where you’ll be able to apply for the alpha. To make sure you can only enter once and people can’t game the system, we’ll likely not make it a random raffle, and we also don’t want to force you to follow our social media to participate, a practice that is sadly too common these days. We’ll notify you when the admission phase starts, so stay tuned!

Server costs

Of course, hosting a server costs money. We want everyone of you to be able to play completely for free, with no subscription and no hidden costs, and we want the server to be entirely noncommercial. To cover our hosting costs, we’ll be opening a patreon, where you can optionally donate to support our project. We’ve been asked about a donation option before, but we didn’t want to accept donations until we could actually provide you with a running server. With the upcoming alpha we can fulfill that promise. I want to explicitly state this though: the server will always be free-to-play, and donations will always be optional. Donators will not have better items that would give them an unfair advantage in the server. However donators will get a cosmetic in-game shirt as a thank-you, similar to beta testers back in the original game.

Update: Some of you have voiced concerns regarding donation items opening up a slippery slope towards something similar to freemium and microtransaction models. We never intended for this to be that way and are strictly against such systems. However we understand your concern. To make our stance on this absolutely clear and leave no questions open, we have decided not to give out any ingame items at all for donators. Rather, items will only be available through gameplay. We still want to thank everyone who considers donating to us to help us with the server, but we want to make clear that the playing experience is the most important thing to us.

It’s been almost four years since this all began, and we’re finally getting to the point I’ve been looking forward to all this time. I’m very excited for these next steps. They’re the last parts in this quest to make this vision reality.
See you all in-game!
– lcdr