Happy New Year! Hello 2014!

Cervator

Project Lead and Community Wizard
Contributor
Design
Logistics
SpecOps
#1
New stable build and much merriment to be had!



Sure has been a while since the last stable build and official announcement, but I think we've collectively enjoyed the holidays and gotten a good start on the new year. Last time was multiplayer this time the rest of The Great Convergence tagged along with the codebase structure changes.

This means modules now live in their own GitHub repos, all under the Terasology organization (not to be confused with the Terasology repo under the MovingBlocks org .. yeah maybe we'll rename something sometime). They can even have their own issue trackers, wikis, READMEs, etc, along with their own line of jobs in Jenkins.

There is a pile of utility included with this change and developing is actually easier than ever despite the repo split. You can read more about that on the wiki page or in the forum thread, but in short you simply do:

Code:
gradlew fetchModuleSample
gradlew idea
To grab the code for the "Sample" module and then regenerate IntelliJ to show it as a proper IntelliJ module (more double-meaning of words yay!). You can push code back to GitHub to multiple repos at the same time too, at least using IntelliJ's Git management.

Downloading already-built modules is much the same, simply grab them out of Jenkins and put them into the "modules" directory. The default module lineup has changed and is summarized in the updated README - you can later update even those modules out of Jenkins or use the unstable build which will grab the latest version of each module on the list every time.

As usual for these days this release breaks backwards compatibility with old worlds and any old developer workspaces need a pretty big overhaul, easier to clone fresh and start again.

More structural changes are coming but focusing more on version and release handling for modules and similar logistics, moreso than the structure of the engine project itself. We might also be closing in on a world generation overhaul. Finally NUI is the hottest thing since toast and nearly done :)

Build changes heavily summarized (see the full change list in Jenkins - all 185 commits):
  • The restructure itself with lots and lots of Gradle magic
  • A series of improvement to unit testing, code analysis, and similar nice-to-haves
  • Piles of GUI improvements, most still left inactive as NUI
  • Tweaks to random number generation (to get closer to the arch-evil RNG of Doom!) and related uses in world generation
  • Eclipse usage is now much better supported, especially since the restructure involved some new tricks
  • Old "mods" were all extracted and removed from the engine, several new ones developed against the new structure already existed on GitHub. A milestone full of module overhaul requests exists for those looking for interesting and fairly easy work!
  • Some remaining "core" content and needed classes not outright belonging in the engine were moved to the "Core" module (that still lives with the engine)
But perhaps more interesting are changes away from the engine project since all the content lives in modules now. As we get more modules that'll get harder to summarize too, will just have to keep an eye out :)
  • Maybe most visible is the new Cities module by msteiger that places entire cities in an organized fashion in the world! This includes roads connecting cities and individual building lots. He's even moving on to placing lakes and talking about more advanced features
  • Also recent is the Pathfinding and Behavior Trees by synopia that are less visible up front but hold huge potential for driving our AI system. We also can haz mazes!
  • A nice potential way to bind them together is the module by nh_99 formerly known as Questing - now "Tasks" with a "Quest" module holding some samples of its namesake. Likely more generic tasks could be generated in Cities and handled by NPCs using BTs - like sending a trade caravan to the next city over :)
PopulatedVillage.jpg


Finally to round out 2013 I want to particularly thank and highlight the amount of effort Immortius has put in - which to put into perspective as per GitHub statistics is roughly as much as everybody else put together :geek:

We have a kick-ass entity system with incredible extensibility, modules that can hook into the engine and other modules in amazing ways, multiplayer with lag prediction and various security measures to avoid naughtiness, and soon a great new UI system to complement everything else. We're putting quite the beastly engine behind the beautiful face begla has put on the world!

Lets see what 2014 brings. I'm excited! :omg: