Giter Club home page Giter Club logo

terasologylauncher's Introduction

Terasology Launcher is the official launcher for the open source game Terasology. It provides easy access to the different game versions and build types. Terasology and related projects are developed by a group of software enthusiast volunteers under the organization name MovingBlocks.

Community

If you want to get in contact with the Terasology community and the whole MovingBlocks team, you can easily connect with us, share your ideas, report and solve problems. We are present in nearly the complete round-up of social networks. Follow/friend us wherever you want, chat with us and tell the world.

 

                                  

Installation

  1. Download the corresponding archive for your platform from the latest release
  2. Extract the archive to the path where the launcher should be installed
  3. Start Terasology Launcher
Operating System Executable
Windows TerasologyLauncher.exe or bin/TerasologyLauncher.bat
Unix, Linux, Mac OS X bin/TerasologyLauncher

Features

The launcher installation directory is the folder you extracted the launcher archive into. This directory will also hold different versions of Terasology that are installed via the launcher.

On first start-up, the Terasology Launcher will prompt you with the selection of the Terasology data directory. The data directory is the place for configuration data and user-specific files such as key bindings and save games. The suggested default is a new directory in the user's home directory.

Terasology Launcher UI

The Terasology Launcher UI provides functionality to download, start, and delete different game versions. The game versions are grouped by the type of build they belong to:

Build Type Explanation
Terasology Released version of Terasology core game bundled with modules
Terasology Lite Released version of Terasology core game only

In addition to this main functionality, the UI displays information about new changes of the selected game version ("Changelog"), launcher information concerning changes, licensing and contribution guidelines ("About"), and logging data for the current launcher execution. Further, you have access to the social media representation of Terasology.

Terasology Launcher Settings UI

The settings view enables you to open the launcher installation, game installation and data directories for quick access. You can configure the memory settings for the game and even specify additional Java or game arguments as well as the logging level for the game. Please note, that the "Initial Game Memory" and "Maximum Game Memory" settings only apply to the game itself. The actual resource consumption may be higher due to additional resources required by the Java Virtual Machine (JVM).

The remaining settings can be used to configure the launcher. You can set the launcher language and decide whether the launcher should search for updates, close when a game is started and save downloaded game package files.

Troubleshooting

Find below common issues you may run into and how to resolve or work around them. If you cannot find help for an issue you might be facing, please open a GitHub Issue including the information available in the "Logging" tab.

⬇️ Download Issues

An indication of a download issue is the download starting but at some point suddenly stopping / failing. First information about the failure can be found in the "Logging" tab. The most common indicator you'll see there is a log message similar to "request timed out".

Downloading Terasology via the launcher can fail for multiple reasons including:

  1. GitHub being unavailable
  2. the Terasology artifact being unavailable
  3. your internet connection being slow
  4. something on your computer or in your network slowing down the download

To check whether GitHub is available, please refer to https://www.githubstatus.com/.

To check whether the Terasology artifact is available, please go to our Terasology release page and look for the version you were trying to download. You should find it at https://github.com/MovingBlocks/Terasology/releases/tag/v<version>, for example, https://github.com/MovingBlocks/Terasology/releases/tag/v5.3.0. At the bottom of the release information below the changelogs, there should be an "Asset" section. If this section includes a TerasologyOmega.zip file, the Terasology artifact is available. If not, please open up a GitHub Issue or inform us about this on Discord.

If the Terasology artifact and GitHub are available, but your download timed out, this is likely due to a slow internet connection or something on your computer or in your network slowing down the download. In this case, you can either try to hunt down the issue yourself or try to work around the issue manually

Manual Download Timeout Workaround

You can work around the launcher's timeout logic by downloading the Terasology artifact manually.

Workaround steps:

  1. Download the desired Terasology artifact from GitHub: https://github.com/MovingBlocks/Terasology/releases/download/v<version>/TerasologyOmega.zip
  2. Extract the artifact (zip archive)
  3. Rename the archive
    For stable releases to terasology-omega-<version>-stable.zip, for example, terasology-omega-5.3.0-stable.zip
    For nightly and pre-releases to terasology-omega-<version>-nightly.zip, for example, terasology-omega-5.3.0-rc.2-nightly.zip
  4. Copy the renamed archive into the cache directory located in the launcher managed directory
    On Windows: C:\Users\AppData\Roaming\TerasologyLauncher\cache
    On Linux/Unix: /home/<user>/.terasologylauncher
  5. Start the launcher and select the version you downloaded the artifact for, click on the download icon (:arrow_down:) and wait for the download to complete. This should happen quickly as the launcher should use the already downloaded Terasology artifact from the cache.
    On completion the download icon (:arrow_down:) should turn into a play icon (:arrow_forward:)
  6. Click on the play icon (:arrow_forward:) to start Terasology

Development

To be able to run TerasologyLauncher from source follow these steps. This guide is designed for IntelliJ IDEA (you can use the free community edition), but alternative setups are possible.

:octocat: Get Ready

To contribute to this repo, please open a pull request from your fork of this repository.

For more information on building and developing the Terasology Launcher, make sure to read the rest of this README and CONTRIBUTING.md.

Requirements

You'll need the following tools:

  • Java SE Development Kit (JDK) 11. It should be possible to use a later version of the JDK for local development, please see the definition of push validation for the exact CI setup.
  • Git to clone the repo and commit changes.

Development is possible on all common platforms (Windows, Linux, MacOS).

🤓 Start developing

Familiarise yourself with Git's concept of repositories, branches, and commits. To get the latest changes from remote repositories you need to fetch all remote data via git fetch --all. This does not change your workspace, it just loads up your local Git database.

Apart from Git, basically everything can be done using the Gradle wrapper. The following list is an excerpt of some commonly used tasks.

Command Description
gradlew build Compile the source code, run tests and build a JAR.
gradlew install Create a local runnable installation (placed in ./build/install/TerasologyLauncher).
gradlew run Build and run the launcher.
gradlew createRelease Create a local development release (located in ./build/distributions).
gradlew tasks Display other available build script tasks.

Assume you have pushed some changes to your fork into a branch myFeature. In order to let us know about your work and give us the possibility to incorporate your changes you should send us a pull request. You can do this by selecting the myFeature branch on your GitHub repo and click the button which says "Open pull request".

More information on how to contribute can be found in CONTRIBUTING.md. Remember, that all submissions must be licensed under Apache License, Version 2.0.

🎏 Translation

If you want to contribute by translating the Terasology Launcher to a new language or by improving an existing translation check out the Translation Guide.

📚 Related Resources

Tutorials and further information on Git:

Developer setup tutorials for our main project, Terasology:

Acknowledgements

Terasology Launcher is driven by its contributors!

This project uses

License

Terasology Launcher is licensed under the Apache License, Version 2.0.

terasologylauncher's People

Contributors

anshukrs avatar avalancs avatar bpas247 avatar calinou avatar cervator avatar chekpuk avatar coegho avatar emanuele3d avatar frankpunx avatar gooeyhub avatar indianboy42 avatar jacklin213 avatar jdrueckert avatar keturn avatar malanius avatar mkalb avatar mrbarsack avatar msteiger avatar mtjvankuik avatar praj-foss avatar rzats avatar seotte avatar shartte avatar skaldarnar avatar small-jeeper avatar soloturn avatar theobisproject avatar trekmarvel avatar xromyla avatar zeeshanasghar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terasologylauncher's Issues

Create the first stable release

Release time: Short after a stable Terasology release

  • A stable game release @Cervator
  • Set stable display version (build.gradle): 1.0.0
  • Update README.md (Download-Link)
  • Update CHANGELOG.md (date)
  • Build TerasologyLauncherNightly and do a short test
  • Create a git tag "1.0.0"
  • Merge develop into master
  • Activate Jenkins job TerasologyLauncherStable
  • Run Jenkins job TerasologyLauncherStable
  • Download and test created TerasologyLauncher
  • Update english and german forum
  • Announcements: forum, twitter, facebook, ... @Cervator

Add Audio tab at SettingsMenu

A new audio tab at the SettingsMenu which contains Audio settings for the Launcher.

Enable Sound
Enable Music
Sound volume
Music volume

Support more languages

Based on the forums/youtube languages to add next would be

  • French
  • Russian
  • Spanish
  • Portuguese
  • Polish

Any other language possible.

Launcher settings tab

A a new tab with launcher settings to the settings menu.

Possible values:
Offline mode: yes/no
Search for launcher updates: yes/no
launcher build type: STABLE / NIGHTLY
launcher installation directory
Close launcher after game start: yes/no
launcher logger level

What do you think?

Mod management

The user should be able to

  • browse and search for mods
  • install new modules
  • search for updates and update currently installed modules

Places where to find mods could be http://www.terasologymods.net or github repositories.

JUnit tests

Implement useful tests and integrate them into Jenkins.

Or:

Delete JUnit dependencies from build.gradle.

Custom Installation Path

Implement a dialog where the user can choose the installation directory for TS and tmp launcher files.

Show display version

Show the human readable display version.

Splash screen and/or LauncherFrame

Launcher update dialog: running version and new version

Add "Download all official music in background" checkbox somewhere checked by default

Sort of a future request here so don't worry about it just yet, other than maybe where to put it (can always leave it disabled for now)

Thanks to Chris we have a ton of awesome music but we only have a compressed version the first soundtrack set with more coming not to mention the ambiance tracks - these files add up fast :-)

Unlike other modules you might enable if you want them I think we should automatically pull extended "core" music so we can have the game start with minimal music bundled in the base version the launcher fetches (like just the menu theme in high quality)

Of course we should leave the decision in the hands of users, thus why IMHO leaving a special checkbox defaulted to on would encourage the music to get out there more frequently than a module that has to be enabled

This wouldn't actually work yet since we don't have the music (or module) handling complete yet, but I don't want to forget it

Sound reasonable? Apologies if I've missed any questions / test requests here lately, been focused on the splash site - just shoot me a forum PM or something if I'm needed :-)

https://github.com/MovingBlocks/movingblocks.github.com

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1804458-add-download-all-official-music-in-background-checkbox-somewhere-checked-by-default?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github).

Game data directory

The game data directory contains saved games, screenshots, ...

  • Determine game data directory (see Terasology code)
  • Save game data directory at the launcher settings
  • Show game data directory at the settings menu
  • Open game data directory
  • Edit game data directory
  • Use the saved game data directory at the game start as a parameter
  • Check that the game directory and the game data directory are different

Fix GameDownloader

  • Directory names and hierarchie
  • Check, if downloadZipFile and gameDirectory already exists
  • Show dialog after exceptions (download failed)
  • Check, if old GameDownloader is running

Reddit button

I keep forgetting about our poor http://www.reddit.com/r/Terasology/ community (which at the moment may just be me and the guy who started it, hehe) but I figure we should start highlighting it more, and I'm trying to post items on there occasionally as well.

A nice little Reddit button to go with the other social buttons in the lower left would be great :-)

Add a CHANGES file

Only for stable (master) version.

Contains version ("1.0"), release date and a change log

Create a display version ("1.0" ...)

Create a human readable display version.

Use gradle+git+jenkins.
Write version into versionInfo.properties
Read with TerasologyLauncherVersion.java

Develop/nightly and local (IDE or gradlew) need a special version.

Selective Updates

Once the main project is restructured it may be possible to update just changed files. This should be done on library level (updating the single JAR-files).

Could contain a seperate download option for additional music/assets?

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Fix TODOs of LauncherFrame

  • scroll infoTextPane to top
  • "windowClosed" is called twice
  • Refactor "changelog" into own method
  • updateInfoTextPane: add more information, i18n and tooltip
  • updateInfoTextPane: escape HTML entities/special characters
  • updateLocale: Update URLs and tooltips

Java 7

Switch from Java 6 to Java 7.

  • Gradle
  • Jenkins
  • Java source code (try/catch, ...)

Backup saved worlds

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/5757212-backup-saved-worlds?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github).

Configure code formatter Uncrustify

Try to configure source code formatter "Uncrustify".
The result should match our checkstyle rules and the format of IntelliJ IDEA.

http://uncrustify.sourceforge.net/

https://github.com/MovingBlocks/TerasologyLauncher/blob/develop/config/checkstyle/checkstyle.xml

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/5757213-configure-code-formatter-uncrustify?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github).

Create a game version object

Contains:

  • Jenkins build number
  • BuildType (STABLE, NIGHTLY)
  • Changelog (at the moment from jenkins)
  • TerasologyGameVersionInfo (jenkins and/or installed JAR)
  • Installation path

Use object at SettingsMenu
Overload toString()

Multiple Installations

Allow multiple instances of TS to be installed. Should be handled by introducing sub folders for stable and nightly version at least.

Allowing multiple versions as well will face the problem of wasting space for old versions!

Language flags

Add tiny flags for fast language/locale change (or just more fancy looking drop-down menus).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.