Skip to content

Instantly share code, notes, and snippets.

@Cervator
Last active November 19, 2017 18:20
Show Gist options
  • Save Cervator/1182e2630c09ff76e5b1b9eb9a84104c to your computer and use it in GitHub Desktop.
Save Cervator/1182e2630c09ff76e5b1b9eb9a84104c to your computer and use it in GitHub Desktop.
BTM Nov 2017 Panel - Terasology & Modding concepts

Who we are

Why

Started during the gold rush era caused by Minecraft's early success when new games inspired by MC were popping up like mushrooms.

Begla made Blockmania to simply see if he could write a similar renderer from scratch (he was in commercial game dev, 3dfx and rendering wizardry)

Cervator suggested the approach to keep up would be to go broad with a focus on game extensibility. Project has been foundation-heavy since - broad but not very tall.

Strict adherence to SemVer is meant to make modding far more stable, with the engine under API contract to only break backwards compatibility with major releases (one every year or two). v2 of engine is coming soon after nearly 2 years. A variety of tools and build system support are all available to help this process.

Rather than necessarily arrive at more gameplay options (so far) something interesting happened: academic interest and activity grew

Academic

Participated twice in Google Summer of Code (university students get paid to work on an open source project over the summer) and Google Code-In (high school students aged 13-17 compete to win swag and a trip to Google headquarters)

Interactions with various universities and other educational institutions, especially at the GSOC Mentor Summit. Working on a TerasologyEDU approach with syllabi and other resources for coursework.

Similarly:

  • Handed out a variety of academic recommendations
  • Signed a "white hat hacker permission slip" so somebody could ethically hack the game as part of a master's project
  • Signed up for the PhD student project also featured in a booth inside the BTM server
  • Will have a booth at the Ludicious game dev conference where the main focus is commercial game shops interacting with budding developers. Our focus: use complex open source project participation as a foot in the door!

What's new

GSOC in particular has brought many new features since my last talk.

  • DynamicCities (2016) - incrementally growing cities, base growth on market simulations and so on
  • DAG pipelines (2016) - rendering wizardry! On-going ever since, goal being using nodes for individual rendering steps, easy addition in modules
  • NUI editor (2016) - in-game UI editor with dynamic updates as you edit
  • Anatomy/Genome - anatomical definitions and breeding systems affecting stats of creatures. Affects abilities, combat, etc
  • Behavior trees - AI system. Editable in-game via tree editor with the changes applied immediately.
  • Blender addon - exporter for Blender to write out all needed assets for a model to become an in-game creature
  • Combat system - finally! Physics-based arrows, wands that shoot fireballs, and so on
  • Destination Sol - a whole other game (2d space shooter) we're applying our libraries and concepts to (some utility modules can actually be used in both games without changes)
  • Exploration world - a simple and fully functional gameplay setting with a set of puzzles to figure out and a story to read through
  • Scenarios - in-game scenario defining and editor tool (define zones, apply conditions and triggers)
  • Server API - a server facade supporting an API for the game, based on Swagger/OpenAPI
  • Telemetry - allowing the game to send telemetry data to a server, including log files, error details ,achievements, etc
  • World sectors - a new architectural layer aiming to support independent entity pools for distinct geographical areas. In other words a precursor to multi-world and possibly multi-noded servers

More new stuff beyond GSOC

Interactive topics

  • Intro experience - how to best welcome new people to a project and learn all the things
  • Modding API and stability - how deep to expose API? Are alternative JVM languages interesting?
  • World generation and phases - what do you wish you could do in MC world gen, but can't?
  • UX around main player actions - left click, right click, other, radial menus, holding buttons, toggling, etc
  • Modelling - what is more useful, outright models a la Blender or creatures-via-code? Would modders reuse assets in other games if it was easy?

Open Q&A

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment