- http://terasology.org
- https://github.com/MovingBlocks/Terasology
- Dozens of people from all walks of life enjoying working on a project together
- The perfect development environment - an application without users ;-)
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
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)
- GSOC 2016: https://summerofcode.withgoogle.com/archive/2016/organizations/5187993270747136 - 3 students
- GSOC 2017: https://summerofcode.withgoogle.com/archive/2017/organizations/4985951029821440 - 10 students
- GCI 2016: https://codein.withgoogle.com/archive/2016/organization/5742351410528256/task - 600+ tasks by 200+ students
- GCI 2017: https://codein.withgoogle.com/organizations/movingblocks - starting Nov 28th!
- Will be applying for GSOC 2018 - students can begin applying in March but the sooner you get in touch the better odds!
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!
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
- Additional pathfinding system has been added supporting flight and respecting the size of an actor
- New environment based testing framework - headless server + clients able to simulate events to validate logic
- 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?
- (example: Terasology prepared a bridge for OreSpawn code models - compare Terasology-side OreSpawn butterfly vs the classic flamingo