Posts by Obique

    Hello! Got an update for the launcher here. I'm still working on it, but from what I hear it lets you get in the game on Windows and will auto update properly.


    Few changes:

    • No more planet icons at the bottom - this is intentional. We'll be moving away from that design in the next few iterations (this also means no limits to # of games)
    • This is the only JAR required - the program will automatically check for updates and notify you when it's ready to download
      • It downloads the update to ProjectSWG-update.jar, which will be swapped when you hit the "Restart" button
    • The SCAN button does not work at the moment. We'll be improving the background mechanism for that as well in the next few iterations
    • You need JRE 9 in order to run it

    As we're going through and revamping the functionality of the launcher, we're also looking into how we can redesign aspects of it to streamline both the interface and the programming and we want your help! What feedback do you have from the original launcher design as well as other designs that are proposed? What would be cool to see? What annoys you? Do you just want to play SWG and don't care what it looks like? Let us know!



    Hello all! Regrettably I left the launcher in a rather broken state during my backend Holocore escapade. This is now at the top of my to-fix list.


    The biggest issue that I am aware of is that the launcher will not update on Windows due to file access restrictions. I have a fix for this completed, but to implement it I need some UI changes to notify when a download is available and to allow updating.


    In addition, launching/terminating the game isn't working very well. This requires a critical look at the process that manages communication with the SWG Client process to ensure it always acts in a safe way, and properly reports any errors that occur.


    My aim is to be done with these updates by 26 March. In the meantime, an updated JAR file is available here, which I have been using to do development locally. I hope it works for you until a proper fix is sent out.

    I finally listened to the podcast, and am now re-listening to the first podcast. Then I might listen to the second podcast again. I would love to know more about what happened to Core2. I remember when it was decided to ditch Core2. From the player's perspective, it seemed good, and there was some frustration from the community. But it was explained that Core3 (Holocore) would be more organized and stable, and there were people that said "ok, cool."


    I really enjoyed both podcasts. I enjoyed Oblique's comments on the found/leaked/stolen SOE code. Although we do not speak of servers that shall not be named, I appreciated Oblique's perspective as a programmer and the comments by everyone concerning those servers. It was more pragmatic than negative.


    Thank you, the reason why was more along the lines of sustainability. We were hitting the point where the server needed to get bigger and bigger and the code got more and more spaghetti like.


    The code wasn't doing anything terribly complicated, but it was still taking a lot longer than it should have across the board. I went around for awhile trying to clean things up but it just wasn't going to happen long term. Things were fundamentally designed poorly and it needed to be rewritten while taking into account all of the things that went wrong.


    First of all, the spaghetti code. What I mean by that was, every service was accessible publicly and other services would call other services' functions with confusing arguments, and that led to all sorts of concurrency issues and massive stack traces (since a service needed to make every function that could be called thread-safe). So that was the number one priority to fix, which eventually I came up with "Intents." When you broadcast one, services are able to listen for your intent and do what they deem best given what you wanted to do (e.g. move object from cell 1 to cell 2: awareness service will take care of that for you).


    Additionally, every intent is independent of the others. They are executed on their own threads and if you broadcast 110,000 of them they'll just queue up and complete as soon as they're able. If one fails, then that's fine. It's isolated. Allowing the server to do as many operations as it can, as quickly as it can, without holding up any particular service.


    Once that concept was created, it became the most important reason to start over. It allowed the server to make smart decisions on it's own, new services can be created that utilized other intelligent services already in place, and without locking up the server.


    I understand that meant starting over and not having any of the cool features from before, but I know for a fact that with this codebase we can build the fastest, most stable, and most secure SWG server out there.

    Look to make sure you don't have a firewall blocking you on TCP port 44453, and that you have an internet connection

    I think the launcher showing OFFLINE can be fixed by adding BIND-PORT/UDP to your firewall (i.e. 44463 UDP). I don't remember entirely what the launcher uses to ping status but I think that's it.

    Rather complicated issue.. root cause has been figured out, which unfortunately requires a relatively large solution. I'd like to say it's close to being fixed (as well as a bunch of other things, bank, jump, etc) but it'll take a bit of luck to finish the last piece.


    As Ziggy said, it's related to the script refactor relatively recently.

    Also, it might be important to note that every time this message pops up I lose connection to the server. Not sure if that was known or not.

    Yea, I'm thinking about making that standard - would prevent connections from lingering on the login server for extended periods of time and simplify the code a bit.

    I didn't realize it was that serious. I just figured it was something on my end with internet connection or something. Shows what I know lol.

    It isn't a big deal at all, if I hid the message you wouldn't notice a change. However it is challenging to properly fix, because it's different from computer to computer. I never have it, Undercova has it rarely, and other may have it more frequently. I'll keep this thread updated.

    High-level overview: Socket Closed is where the launcher internally loses connection to the remote server. It's generally caused by poor timing in the programming. Nothing you can do personally to fix it. It'll also take some time on my end to figure it out, because I haven't seen that in a long time.


    Low-level overview: The Forwarder (built into the Launcher) is multithreaded, with some threads used to talk to Holocore, and other threads used to talk to the client itself. Because of this, they need some way to communicate with each other. So it uses the same intent system I built for Holocore. Sometimes the events (intents) take longer than on other computers, causing it to close the connection to Holocore, thinking it's not responding. "Socket Closed" is just a message specifying that the connection was closed when a read/write was attempted on it. Here's a stack overflow example with explanation.