Maintenance TerasologyLauncher - official Terasology Launcher

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Works beautifully! And I love the launcher layout and everything, especially the little icons in the lower left :)

Many thanks to both of you for putting this together! I've forked it to MovingBlocks/TerasologyLauncher (where you are both now admins) and put a Jenkins job on it for now. I made one tiny tweak to the code for Java 1.6 compatibility, I don't think that's a big deal, it simply switches:

Code:
url.openConnection().getContentLengthLong()
Which is 1.7 only to:

Code:
url.openConnection().getContentLength()
MrBarsack - thank you (and Philaxx) in particular for kicking this off. I've stuck Logistics badges on you :)

I'd throw one at Skaldarnar too, but it is almost like we need some sort of "all of the above" single badge for him by now :trollestia:
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
For clarification, we're currently sticking with Java 6 until LWJGL has been updated to work on OSX under Java 7. Once that is done we will most likely make the switch.
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Strange, I am sure to have selected Java 6 as the project language level in Idea, shouldn't that be marked as an error or warning then?
Anyways, there are some nifty things in Java 7 I am looking forward to use :)
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
The language level setting only controls the use of language constructs (like generics, and multiple exception handling). It doesn't protect against using new API methods/classes/etc, if you are otherwise developing against Java 7.
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Ahh, thanks Immortius, good to know :)

At the moment I am looking on how to easily auto-update the launcher, do you have any ideas/suggestions on how to do that best? Nevertheless, another file like »updater.movingblocks.net/launcher.ver« would be nice to have to be consistent with checking up-to-date versions.

Additionally, I used the moderator magic to update the first post, added a proper incubator header and updated the feature list. I specified some more things planned, maybe the issue tracker is the best place for bug reports/problems …
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I added the shell command that writes out a .ver file for the Launcher, but forgot the URL to get to those files (we've got them for stable/unstable/integrate too)

Alternatively could you just use the build number page served by Jenkins? I think they'll end up providing the same thing

Also just to get it posted here in the forum the FTB launcher is on GitHub and might provide some inspiration on how to do auto-updating and stuff like that
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
The jenkins served build numbers are the better choice I think, I will use them for the launcher as well, to determine the latest TS versions. Then the updater.movingblocks.net/*.ver files are obsolete.

I'll have a look at FTB, and I am not sure if the Spoutcraft launcher has auto-updating as well...that are at least some points to start with... ;)
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Here's a short summary of the Launcher-Dev-Meeting we had in the German forums on 02-24-2013, discussing the current plans we have for the launcher. Any follow-up discussion and feedback here is welcome, if there should be need for another meeting in the English chat as well let me know, I'll try to organize it ;)

=======================
### Plans/TODOs ##########
=======================
* automatic launcher updates - Skaldarnar
* integrate change log - MrBarsack
* logging - mkalb

- pure Java logging or usage of other libraries (like slf4j, depends on usage and utility)
* choose installation path for TS/ allow multiple installations of different versions
* implement directory settings panel with manual backup button
* saved game management (backups, copying between different versions, ...)

- warnings when copying saved games that game versions may not be compatible
* i18n - Josh
* splash screen


=======================
### First Release ##########
=======================
The first stable release should contain the following features:
* auto updates
* integrated changelog
* choose installation path
* EXE file for Windows users

=======================
### Long Term Plans #######
=======================
* Mod Management
* Multiplayer support
* integration of announcements, news feeds, social media, ....
* Change (Graphic/Video/Audio)-options and settings for all installed versions of the game
- manipulating the settings files

=======================
### EXE/JAR-files ##########
=======================
==> launch4j EXE file for the launcher
* good alternatives for launch4j?
* lzPack installation?
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Happy to hear it - keep it up, the plans look good :)

I don't have any real exposure to any of the wrapper type utilities, use whatever seems to work the best :geek:
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
I'm curious what "Mod management" and "Multiplayer support" are intended to encompass?
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Ah, good question Immortius :)

Depends on what could/should be done within the game, and what should/could be handled before starting. Everything that should be handled/configured for different game versions could be done by the launcher (proxy settings, preferred user name, ...).
Mod management is a similar question. Managing different mod versions for different game versions may be a task for launcher, or at least information and announcements from mod repositories and stuff...

In any case, the "long term" plans are more a rough guideline/general ideas what might come later. We even spoke about overall need of a launcher versus integrating it into the game (we obviously chose the launcher because of its advantages regarding version management and switching). I think most of the general structure for both, launcher and game has to be discussed when entering alpha.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I figured mod management relates to the idea of integrating with external sites (like terasologymods.net from Philaxx) - which could probably work in-game, although maybe there are scenarios where stuff would need to be retrieved before the main game is launched? Maybe you could trigger something like the native PlaTec from Laurimann to generate heightmaps without having to load the game proper, since that might take a few tries before you get something you like

And multiplayer likewise - probably server browser supporting the idea of fetching content from a server (or adjusting the local game version to match) before launching the game. Again some if not all of which could probably be done from in-game.

The FTB launcher as an example has a lot of stuff in it, although admittedly that is bound to be in part for how you have to kinda-sorta hack MC to really mod it. With much easier integration in Terasology we may not need as "meaty" a launcher.
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Browsing mod repositories and downloading mods, as well as updating mods all makes a lot of sense to me in the launcher, since it handles other updating activity. I would note some care needs to be taken around security whenever mods are downloaded.

Launching a dedicated server from the launcher is another possibility.

I guess I considered server browsers, the download of the necessary modules for a given server, player name and such an ingame action (although to have a server browser we would need to create a master server for hosted games to be registered against). It should be noted that modules are all dynamically loaded (and reloaded) at runtime, so we have less limitations around obtaining new modules and loading them while the game is running.
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
I am still alive and tinkering with the auto update stuff. My weekend plans did not turn out the way I wanted, and tomorrow I am leaving for a short holiday trip (~1 week). Maybe I'll upload my pending work on github tonight, so you can have a look at it. If everything works perfect from now on I may be able to do a PR, but I don't want to promise anything.
The downloading works well already, I've got just some problems replacing the old launcher files, although I am not sure if that could only be a problem of my local testing :D
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Enjoy your vacation, Skaldarnar ! :)

Just tossed a question at the PAG thread for your attention real quick before leaving :D

Do toss what you have on GitHub if able, can always leave it in a branch for review in the meantime. But more than anything, have fun! We'll keep the lights on in the meantime :barefoot:
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Darn, I lost all the changes I've done while rebasing :cry: Didn't know that is even possible when committing before, but I cannot find it anywhere in the history :( Auto-update will come in week then, as it was already implemented :mad:
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
Thanks :D By the way, I won't use the "Main" class, so you can remove it ;)
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Ouch, sorry to hear :(

Yeah rebase is a dangerous beast. I tend to make a copy of my entire local project dir for complicated Git stuff so I have a backup :)
 
Top