The End is Near - for the Great Convergence!

Discussion in 'Announcements' started by Cervator, Nov 2, 2013.

  1. Cervator

    Cervator Project Lead and Community Wizard Staff Member

    Today I can happily report that the multiplayer and restructure code is now back home happily in our develop branch and primary build. A legacy branch / build is available for those with pre-multiplayer worlds who want to keep going, like PaprikaPeng with his Lets Play world that recently reached 100 episodes on Youtube!

    The Launcher v 1.1 has been released with an updated lineup (thanks mkalb !) and now contains:
    • Stable build (normal) = Pre-restructure multiplayer version, as some parts of the restructure (like the applet) are still pending
    • Stable build (legacy, pre-multiplayer) = the final version of the game before multiplayer, should be usable with old-format worlds
    • Development build (normal) = the very latest version with both multiplayer and the new structure
    • Development build (outdated multiplayer, deprecated) = this was the special multiplayer pre-release version and its entry will be removed sometime later

    Note that all builds other than legacy will not work with old game data dirs - you'll likely need to delete your local game data directory before the newer builds will work. Said data directory will usually be in your user home directory - not where you saved the game to. Paths like:

    C:\Users\[user]\Saved Games\Terasology (Windows 7 and probably Vista)
    My Documents\Terasology (on Windows XP)
    ~/.terasology (Linux flavors)
    Library/something something (Macs - don't have an example handy, please post if you do!)

    Changes over this long a period with this substantial rework are hard to summarize. The final legacy-based stable build changes are here, then replaced with the first stable multiplayer build here. Which is then further added to in the massive change list from overwriting the develop branch with the restructure

    Content modules from the legacy codebase are being updated one by one although some might get renamed / merged / discontinued in favor of newer replacements. There's a milestone for that.

    While this effectively marks completion of The Great Convergence there are still some restructure items left (mostly related to versioning & releasing of modules) before the latest code can be considered fully stable - when that's the case another stable build will come out. Those are lower priority anyway, along with a few other TGC-related issues. Really the heart of this was the convergence itself of all the non-multiplayer code (written by all kinds of people!) into the newly created multiplayer setup, which was an amazing and greatly appreciated effort by Immortius - many many thanks! Next up he's working on a GUI overhaul

    We've been seeing new contributors arriving lately along with several older contributors picking back up now that the new structure is in place. New solid content is coming at last, such as the overhauled pathfinding module synopia is working on complete with a "job board" system to organize creature tasks around. DizzyDragon decided to get some basic seasons and weather started, in addition to his work on liquids. The Light & Shadow effort is also gearing up again now that we've solved the model import issue! Thanks to Maternal for finding the issue and glasz for keeping at it - glasz is also working on procedural flowers based on some initial sprites by eleazzaar

    Onwards and upwards toward Alpha! It is also time to discuss how to best work toward game balance and longevity, so if you haven't participated there yet go post :)

    For our developers & modders the restructure details can be read in more details in the great convergence thread - it can get pretty technical! There is also a new Codebase Structure page in the GitHub wiki (best option for a brief review) along with a Project Overview to summarize all this. The important part is that content modules now can live in independent repositories on GitHub either under our official organization "Terasology" (better name?) or elsewhere, complete with individual build jobs in Jenkins. If you clone the main repo right now you can then immediately add source for a specific module to your local workspace with something like:

    Code:
    gradlew fetchModuleFences
    You can also use a "create" version of that for making new modules but then we need to make the repo (or fork yours) plus make jobs in Jenkins. Gooey will be volunteered into providing those services via IRC soon.

    The new structure also allows for "facades" meant to launch the game in different ways, like the standard app, through an applet, or one day from Android :giggle:

    It is my hope the structure changes will serve as a great foundation for the future, but I certainly still am looking for any problems or suggestions to go with it! I'm still hardly an expert (closer now though!) and it took me forever to finish vs. somebody who specializes in that sort of stuff. I'm happy with how it is coming out and will keep at it. Now we can focus on content instead though, and I am expecting us to put great things into this beautiful world begla has gotten us all to share in!
    • Like Like x 3
  2. JumboDS64

    JumboDS64 New Member

    Um, I don't know where else to ask this, but do I need permission to make a GitHub fork of Terasology?
  3. Esereja

    Esereja Active Member

    no you dont only git account(which is free), and you don't need account to copy source yor computer. for working in github: 1. login 2 press button at right uper coner at terasology repo which says fork.
  4. Cervator

    Cervator Project Lead and Community Wizard Staff Member

    Esereja is correct: You do not need permission to fork the project, it is open source under the Apache 2.0 license terms which mean you can do pretty much anything you want to the code as long as you keep attribution in place (leave author notes and stuff like that)

    Fork away, and let us know if you're interested in helping out! :)
  5. JumboDS64

    JumboDS64 New Member

    Thanks, I'm new to this sorta thing, and just making a complete copy of someone else's work (even with credit) feels... against my intution. Anyway, for some reason, when I try to $ /Users/(my name)/Terasology/gradlew eclipse it says that I'm using Java 6, while Java's website says that I'm using Java 7. What's with that? [​IMG]
    Here, this might help. As I said, this is new to me...
    Last login: Mon Jan 13 07:48:32 on console
    (1st name)s-Mac-Pro:Terasology (1st + last name)$ cd /Users/(1st + last name)/Terasology
    (1st name)s-Mac-Pro:Terasology (1st + last name)$ /Users/(1st + last name)/Terasology/gradlew eclipse
    Processing facade facades:pC, including it as a sub-project
    Module modules:Core has a build file so counting it complete and including it

    FAILURE: Build failed with an exception.

    * Where:
    Build file '/Users/(1st + last name)/Terasology/build.gradle' line: 38

    * What went wrong:
    A problem occurred evaluating root project 'Terasology'.
    > assert org.gradle.api.JavaVersion.current().isJava7Compatible()
    | |
    1.6 false

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 4.023 secs
    (1st name)s-Mac-Pro:Terasology (1st + last name)$ /Users/(1st + last name)/Terasology/gradlew --stacktrace
    Processing facade facades:pC, including it as a sub-project
    Module modules:Core has a build file so counting it complete and including it

    FAILURE: Build failed with an exception.

    * Where:
    Build file '/Users/(1st + last name)/Terasology/build.gradle' line: 38

    * What went wrong:
    A problem occurred evaluating root project 'Terasology'.
    > assert org.gradle.api.JavaVersion.current().isJava7Compatible()
    | |
    1.6 false

    * Try:
    Run with --info or --debug option to get more log output.

    * Exception is:
    org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'Terasology'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:132)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:468)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:76)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:31)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:58)
    Caused by: Assertion failed:

    assert org.gradle.api.JavaVersion.current().isJava7Compatible()
    | |
    1.6 false

    at build_7oepfrjc3bn77kamh2kmh54p64.run(/Users/(1st + last name)/Terasology/build.gradle:38)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52)
    ... 33 more


    BUILD FAILED

    Total time: 2.798 secs
    (1st name)s-Mac-Pro:Terasology (1st + last name)$
  6. Mike Kienenberger

    Mike Kienenberger Active Member

    Open a new thread in the developer portal forum, and we can help you get going.
    I'm guessing you're using MacOS X and eclipse from your output.
    Chances are that you have multiple versions of java installed, and the wrong one is being used.
  7. JumboDS64

    JumboDS64 New Member

    I've made a thread riiiight here. Check it out or something!

Share This Page