The End is Near - for the Great Convergence!

Cervator

Project Lead and Community Wizard
Contributor
Design
Logistics
SpecOps
#1
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!
 

Esereja

Active Member
Contributor
#3
Um, I don't know where else to ask this, but do I need permission to make a GitHub fork of Terasology?
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.
 

Cervator

Project Lead and Community Wizard
Contributor
Design
Logistics
SpecOps
#4
Um, I don't know where else to ask this, but do I need permission to make a GitHub fork of Terasology?
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
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! :)
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?

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)$
 

Mike Kienenberger

Active Member
Contributor
Architecture
GUI
#6
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.