Skip to content

Commit ac34fa8

Browse files
blog: summarize achievements of revival milestone 2 and plans for milestone 3 (#228)
* blog: summarize achievements of revival milestone 2 and plans for milestone 3 * fix: handle null author info (deleted users) --------- Co-authored-by: Tobias Nett <[email protected]>
1 parent 88cd702 commit ac34fa8

File tree

3 files changed

+106
-2
lines changed

3 files changed

+106
-2
lines changed
442 KB
Loading
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
posttype: blog
3+
title: "Revival Milestone 2 Complete - Elevating Quality, Boosting Performance, Advancing to Java 17!"
4+
cover: "./cover.jpg"
5+
description: "Completing Terasology Revival Milestone 2 - where quality meets performance, and Java 17 takes the spotlight. We’re celebrating our achievements and planning our path ahead. Ready to join the journey? New contributors welcome!"
6+
author: "Niruandaleth"
7+
date: "2024-01-14"
8+
tags: ["Announcement"]
9+
---
10+
11+
_Completing Terasology Revival Milestone 2 - where quality meets performance, and Java 17 takes the spotlight.
12+
We’re celebrating our achievements and planning our path ahead.
13+
Ready to join the journey? New contributors welcome!_
14+
15+
Hey there, fellow gooeys! Welcome to Terasology, where blocks meet potential ✨
16+
Our project was born in 2011 with the desire to provide a modular canvas for diverse gameplay ideas in a dynamic voxel world with creative possibilities as endless as the blocks themselves.
17+
While we wear our history with pride, our codebase outgrew our maintainer capacity over the years, collecting rust and dust in the face of dwindling contributor and contribution numbers.
18+
19+
Though small, our gooey community is welcoming and inclusive, with room for all voices. Each line of code, every idea, and every contribution counts.
20+
Recently, our shared love for Terasology propelled us into an exciting phase of revival, where we not only seek to breathe new life into the project but also to invigorate our community.
21+
This is not just about coding — it's about all of us coming together to unlock Terasology's true potential and build a voxel game that we enjoy.
22+
23+
The focus right now? Modernizing and giving our codebase a facelift. We believe that the foundation of our project should be as robust and adaptable as our creative aspirations 💡
24+
The first milestone brought us new contributors, upgraded dependencies, and first progress towards a slimmer, sleeker codebase.
25+
Now it's with pride that we announce the completion of our second revival milestone 🎉
26+
And that's not the end - the third revival milestone already unfurls its sails, and we invite you to join us on our voyage into the future of Terasology ⛵
27+
28+
Let's explore how our second revival milestone added to breathing new life into the codebase, setting the stage for Terasology's grand comeback!
29+
30+
## 📜 Definition of Done: A Checklist of Progress
31+
32+
🎉 In total, we merged [27 engine PRs](https://github.com/MovingBlocks/Terasology/pulls?page=1&q=is%3Apr+sort%3Aupdated-desc+is%3Amerged+merged%3A2023-09-11..2023-11-19) and [20 PRs on libraries and side projects](https://github.com/search?q=-repo%3Amovingblocks%2Fterasology+org%3Amovingblocks+is%3Apr+merged%3A2023-09-11..2023-11-19+&type=pullrequests&p=2) such as gestalt, the launcher, or the module site.
33+
34+
One of our major achievements is the seamless transition to Java 17 driven by _@BSA_, laying the groundwork for a more robust and modern Terasology engine 🛠️
35+
The upgrade not only marks a technical advancement but also signifies our commitment to moving Terasology towards the cutting edge of technology.
36+
If you're already contributor, please refer to https://github.com/MovingBlocks/Terasology/issues/5177 for guidance on what this means for your Terasology workspace.
37+
For new contributors, our updated [Contributor Quickstart Guide](https://terasology.org/Terasology/#/Contributor-Quick-Start) points to the now required Java 17 JDK 💡
38+
39+
Targeting a more user-friendly interface for customizing Terasology worlds in the advanced game setup, _@Niruandaleth_ merged the universe setup screen and world pregeneration screen into a more streamlined flow. Recently joined _@soloturn_ provided major support in pursuing various quality improvements. Checkstyle rule configuration has been optimized to reduce noise and various warnings flagged by different QA tools like checkstyle, spotbugs, and pmd have been diligently addressed, adding to a cleaner, more efficient codebase.
40+
Quality improvements will continue in our next revival milestone - feel free to come aboard! ⛵
41+
42+
The quest for optimal performance is a journey, not a destination 🚀
43+
Milestone 2 marks the beginning of our performance investigations, paving the way for future optimizations that will elevate the gaming experience for our users.
44+
A first success was _@skaldarnar_ identifying leftovers of the VR integration removed in revival milestone 1.
45+
Removing them not only further decluttered our codebase but contributed to a more resource-efficient gameplay experience by halving the required rendering passes.
46+
47+
Together, our community discussed the benefit of having documentation closer to our code.
48+
As a result, we integrated our Terasology engine wiki into our codebase, making it our new ["Knowledge Base"](https://terasology.org/Terasology/#/) provided using Docsify on GitHub Pages, allowing for maintaining code and documentation changes in sync.
49+
All links to our [old wiki](https://github.com/MovingBlocks/Terasology/wiki/) should now point to our ["Knowledge Base"](https://terasology.org/Terasology/#/). If you find any links to our old wiki that we might have missed, please report them on Discord or using a GitHub issue 💡
50+
51+
Next to these bigger efforts, a lot of smaller discussions and activities happened across our GitHub repositories and Discord channels.
52+
_@BSA_, _@Niruandaleth_, and _@skaldarnar_ met once per week virtually to discuss milestone progress, agree on strategic questions, and collaborate on blockers and reviews.
53+
Over the course of our second revival milestone, _@Cervator_ provided guidance for new community members and revivers alike, sharing his knowledge of the project history and in particular its infrastructure.
54+
Long-time contributor _@rzats_ visited the project, bringing Ukrainian locale up to date.
55+
_@qwc_ hosted the Valheim server again for our second revival milestone completion celebrations, adding a touch of community spirit as the year slowly came to its end.
56+
57+
To all our contributors, thank you for your dedication, passion, and relentless pursuit of improving Terasology!
58+
Milestone 2 is more than just a checkpoint; it's a testament to what we can achieve together.
59+
Here's to our community, our contributors, and our potential! 🌈
60+
61+
## 🚀 Terasology Revival Milestone 3: New Contributors Welcome
62+
63+
Embarking on the journey of our third revival milestone, our repositories are wide open for new contributions by friendly people joining our gooey community! 🌟
64+
Whether you're a seasoned developer or just getting started, there's a place for you in our dynamic community. Let's build, innovate, and play together! 🚀💬
65+
66+
Let's delve into the tasks that lie ahead. If you'd like to contribute to a specific task, feel free to ping the respective revivers on our [Discord](https://discord.gg/terasology).
67+
68+
### 🩹 Re-enabling our Contributors
69+
70+
The recent upgrade to Java 17 introduced additional restrictions on accessibility of fields when using reflection.
71+
For us, this affects primarily the serialization of component attributes defined in our engine and various modules.
72+
The resulting issues materialize when testing code changes in-game, potentially blocking development.
73+
_@BSA_, _@Niruandaleth_, and _@skaldarnar_ join forces to adjust and document serialization behavior and component implementation.
74+
75+
Due to the focus of the revival on our engine, module pipelines had not yet been set up again after our recent infrastructure overhaul.
76+
This blocks contributions in module land like fixes or (quality) improvements.
77+
_@BSA_ and _@Niruandaleth_ plan on re-introducing the module pipelines and addressing potential issues.
78+
79+
In the third revival milestone our mission to investigate and improve performance continues.
80+
Bad performance not only impacts our players, but also our contributors, especially when testing code changes in-game.
81+
_@BSA_ sets out to unravel mysteries behind chunk generation/load-related stuttering based on CoreGameplay. Every stutter addressed is a smoother gameplay experience for our users.
82+
83+
### 🛠️ Quality Assurance
84+
85+
Our codebase is the foundation upon which we're crafting the future of Terasology.
86+
Before we can dive into feature development again, we need to stabilize it and make it as solid as bedrock.
87+
Sharing a passion for reducing errors and warnings reported by quality tooling, _@Niruandaleth_ and _@soloturn_ will continue to improve quality across engine and module land.
88+
Preferring reliable test results over heavy re-trigger fingers, _@Niruandaleth_ and _@skaldarnar_ set out to unravel the cause of flaky integration tests 🔍
89+
In addition, _@Niruandaleth_ plans further refactorings including but not limited to removing obsolete graphic settings, refactoring systems to use auto-config, and leveraging new Java 17 features where applicable.
90+
91+
### 🌟 Improvements for Players
92+
93+
Although we plan to complete a few more milestones before starting to publish Terasology releases again, we already want to improve the lives of our players.
94+
_@Niruandaleth_ will finish the advanced game setup overhaul, enabling an easier customization flow for Terasology worlds.
95+
In addition, _@skaldarnar_ plans to pave the way for multi-version support for the bundled JRE brought by the Terasology Launcher, allowing players to start Terasology without having to install Java themselves. While this is already feasible for Java 11 now, the upgrade to Java 17 requires support for bundling different JRE versions and serve the correct one depending on the Terasology version to be launched.
96+
97+
In conclusion, our second revival milestone served as proof that we are able to modernize our codebase and stay committed to our revival.
98+
It taught us the value of constructive discussions, the power of persistence, and the importance of supporting each other.
99+
As we look ahead to the next chapters of our journey, we do so with optimism and a feeling of progress.
100+
Together, we'll continue to shape the future of Terasology, one milestone at a time. 🌠
101+
102+
---
103+
104+
_This article was partially written with the help of ChatGPT._

src/pages/contribute.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ function GettingStarted({ data }) {
3737
const engineIssues = engine.issues.nodes
3838
.map((issue) => {
3939
const { title, author, labels, updatedAt, url } = issue;
40-
const { login } = author;
40+
const login = author?.login || "(deleted user)";
4141
const { nodes } = labels;
4242
const tags = nodes.flatMap((node) => node.name);
4343
return { title, author: login, tags, date: updatedAt, url };
@@ -51,7 +51,7 @@ function GettingStarted({ data }) {
5151
const { name, url: moduleUrl, issues } = module;
5252
return issues.nodes.map((issue) => {
5353
const { title, author, labels, updatedAt, url } = issue;
54-
const { login } = author;
54+
const login = author?.login || "(deleted user)";
5555
const { nodes } = labels;
5656
const tags = nodes.flatMap((node) => node.name);
5757
return {

0 commit comments

Comments
 (0)