Notifications
Clear all

Performance improvements and other feature suggestions

 

Darth Falcon
(@darthfalcon)
Member Moderator
Joined: 6 months ago
Posts: 3
Topic starter  

This is a big list of suggestions I have come up with in the time I have used both GLC and GPC. I tried to give reasoning for each one so its more than a list of wants.

Game Launch Creator

Performance

  • Checksum's while downloading
    • If the launcher is downloading a large file why should the disk and cpu sit idle. They could be checking the SHA5 of the rest of the files so that when the file is finished downloading the launcher already knows the next file to download.
  • Multi-threaded checksum calculations
    • Given almost every computer has at least 4 cores if not more, why not take advantage of those. Using something like OMP you could assign multiple cores to each check their own file. I'm not sure of the most efficient way to split up or keep track of which files have and haven't been done, but on something like a 4 core machine, that could make the file integrity go 3-3.5x faster.

User Interface

  • Save which elements are locked so they will be locked next time
    • Make working with launchers that have overlapping elements much easier.
  • Ability to Dock GLC UI
    • After you showed me the GLC V1 I really liked the docked windows. It would make moving the window to another monitor, or to only take up part of my ultrawide much easier.

Objects

  • Object which can read from a text file
    • Since the servers that you provide have PHP disabled, having an element which can read something like the remote version file and display it to the user would be convenient. Then you could have something showing the users version vs the remove version, if patching isn't forced for example.

Features

  • Undo/Redo
    • I know Undo can get very complicated, but even if you could only undo a single action, it would make working with complex launchers much nicer. Nothing worse than moving an element slightly because you forgot to lock it or changed a scale and want to go back but don't remember the old numbers. Then you have to start over from the last save.

 


Game Patch Creator

Performance

  • Same as GLC. Could even be a GPC only feature.
    • Side note, I noticed that AOPS seems to do the file integrity check faster than GPC. I don't have any numbers to back it up, but it's enough to be noticeable. At least in my limited testing.

Features

  • Auto update checking
    • Seems a little backwards that AOPS can check for updates and force an update, but GPC can't. Especially with the upcoming 1.54 release and the integration of GPC into GLC, I don't see why it shouldn't be able to do a similar check for updates and/or force update. I suppose I could have the play button run the patcher, but I feel the current AOPS system is more elegant.
  • Save server from previous choice/ability to choose via command line
    • I am using the multiple servers for having different version of the game (compressed/uncompressed for example) It would be nice to have a file save whatever server the user selects so they aren't asked every time the patcher is ran. Probably more complicated but a possible DLC feature of having a button on the GLC launcher to change the setting in a file so the patcher can read from that directly and the user dosent have to modify it themselves.

Quote
GLCStaff
(@glcstaff)
Member Admin
Joined: 4 years ago
Posts: 60
 

Great suggestions mate!

Let me take some time to answer some of them for you.

Posted by: @darthfalcon

 

  • Checksum's while downloading
    • If the launcher is downloading a large file why should the disk and cpu sit idle. They could be checking the SHA5 of the rest of the files so that when the file is finished downloading the launcher already knows the next file to download.
  • Multi-threaded checksum calculations
    • Given almost every computer has at least 4 cores if not more, why not take advantage of those. Using something like OMP you could assign multiple cores to each check their own file. I'm not sure of the most efficient way to split up or keep track of which files have and haven't been done, but on something like a 4 core machine, that could make the file integrity go 3-3.5x faster.

 

I agree, however this is something to be integrated into GPC and I will definitely add this to the roadmap. AOPS is now a legacy feature inside GLC. It works as it is, but no more updates are to be provided for AOPS. It does what it says on the tin, but we concentrate our patching efforts on GPC completely now.

Posted by: @darthfalcon

Save which elements are locked so they will be locked next time

  • Make working with launchers that have overlapping elements much easier.

I actually coded this feature in, I will resume this feature but it's not as straight forward as you may imagine, with it being a live editor. However, I do fully intend to implement this.

Posted by: @darthfalcon

After you showed me the GLC V1 I really liked the docked windows. It would make moving the window to another monitor, or to only take up part of my ultrawide much easier.

Window docking is another feature to come to the GLCV2 editor. I feel a lot of users will benefit from the ability to dock the window. It's on the roadmap.

Posted by: @darthfalcon

Since the servers that you provide have PHP disabled, having an element which can read something like the remote version file and display it to the user would be convenient. Then you could have something showing the users version vs the remove version, if patching isn't forced for example.

You can already do this, even with PHP query strings. The query string object can work by reading text files directly on the server, including GPC servers. The local one is coming. I want to eventually implement internal variables that users can use throughout their launcher developments.

Posted by: @darthfalcon

Side note, I noticed that AOPS seems to do the file integrity check faster than GPC. I don't have any numbers to back it up, but it's enough to be noticeable. At least in my limited testing.

This will probably fluctuate between machines but the primary reason for this is, AOPS is processed through the GPU, whereas GPC patchers are processed with the CPU. I will look into a GPC option to export the patch using the GPU runtime.

Posted by: @darthfalcon

Seems a little backwards that AOPS can check for updates and force an update, but GPC can't. Especially with the upcoming 1.54 release and the integration of GPC into GLC, I don't see why it shouldn't be able to do a similar check for updates and/or force update. I suppose I could have the play button run the patcher, but I feel the current AOPS system is more elegant.

GPC can work like this. You just have to instruct it to via command line.

With regards to the GLC/GPC integration, I have yet to code in a version check bridge to automatically launch the GPC patch when forced/auto-update is enabled.

At the moment, I would recommend users let their users run the patcher first (with command line params sent) and then get the patcher to run the game launcher after it's completed (using post-executables), if you want a file integrity/update check done before the launcher runs.

Posted by: @darthfalcon

I am using the multiple servers for having different version of the game (compressed/uncompressed for example) It would be nice to have a file save whatever server the user selects so they aren't asked every time the patcher is ran. Probably more complicated but a possible DLC feature of having a button on the GLC launcher to change the setting in a file so the patcher can read from that directly and the user dosent have to modify it themselves.

I think this will be on the list too tbh, it's still early days for the GLC/GPC integration. 1.54 will shed some light on what we've coded in thus far, but it's still early days for the bridge development. These kind of options will definitely be put in for sure.

Thanks for taking the time to put these ideas forward. Much appreciated!

^Danny


ReplyQuote
Share: