In our 5th year participating in the Google Summer of Code (GSOC), we welcomed six students to our community that joined efforts with mentors and other contributors to make Terasology even more awesome! Two more students are doing GSoC projects for Coduino under Terasology as the "umbrella organization":

Quick Reminder: GSOC is a 3-month program sponsored by Google that motivates students from all over the world to join open-source organizations and thrive on real-world software development challenges. Organizations and students find and interact with each other directly and on a social and community-driven basis.

Now that our students are mid-way through their GSOC projects, a lot of progress is already visible. Let's take a look at what each of our students has already achieved during the first half of the project 🔍

Metal Renegades: Refining Gameplay

- by AndyTechGuy

👉 Progress Report (forum.terasology.org)

To refine the "Metal Renegades" gameplay, Andy revisited it and all its issues. The first bunch to defect from the defective side were performance issues, swayed by reducing buffer outflow and city growth rate. Next, filling your thirst was made more realitic by receiving a water cup from the marketplace to use it on a well instead of getting it from the well itself. Futhermore, wells are now no longer a infinite resource, but can dry out.

Empty and Full Well

To improve the chances of the player surviving this rough place called the old west, the cities now include small patches of farming ground with fruit and vegetables growing on them. These fruit and vegetables can fill (depending on the sort) either hunger, or thirst, or both.

Farms

After dealing with the player's needs, the non-player characters got a tad more personality with their randomized names and different sizes. And to enable even more players to fall in love with these gooey creatures, Andy is currently working on fixing a bunch of multiplayer issues 🛠

Biome-specific Content Enhancements for Terasology

- by ktksan

👉 Progress Report (forum.terasology.org)

Biome-specific content enhancements are impacts of a biome's characteristics on the player, which ktksan started out introducing by adding various effects that extreme climate like snow and desert can have on the player. By following Terasology's "Event-Component-System" (ECS) approach, they introduced new Hypothermia and Hyperthermia components the play will get in extreme climate conditions. These components negatively affect the player, for instance by slowing, hurting or weakening them. A very nice visible effect that was added as well, was a "visible breathing" particle effect in cold areas:

Visible Breath Effect

On they went with adding a "Body Temperature System" that reacts on climate information such as ambient temperature and in case of it growing very high or low can result in the player becoming hypo- or hyperthermic. As this is a rather complex topic, that required a lot of discussion, brainstorming and review cycles, it is not fully complete yet (!). In the meantime of all that communicative effort, ktksan continued to make progess on their project by adding materials that are dropped and can be used for crafting also newly added equipment that helps the player in extreme climatic situations. To only name a few examples for such items: Sand slippers to avoid heat burn and slowdown when moving through hot, loose sand or a woolen vest that warms the player in cold areas.

Along the way, ktksan also found, fixed or implemented several related, but theoretically out-of-scope issues and showed their motivation to contribute to Terasology beyond their project's scope. One good example for these efforts is adding a filling bar to fluid containers to improve the user experience when working with different fluid levels:

Filling Bar for Fluid Containers

Genome Expansion

- by Vedant Shroff

👉 Progress Report (forum.terasology.org)

The "Genome Expansion" project is a top-secret research project about module merging, plant breeding and nutrition research. Vedant's initial experiments showed that breeding algorithms can now be registered in "Genomes" with traits 👨‍🔬. Base algorithms for continuous and discrete traits were added and are ready to be used.

The next series of experiments proved the theory behind scientifically changing the color of items - also known as tinting. No players, animals or fruit were harmed in the process.

Genomes - Item Tinting

Based on these preliminary studies and by integrating with the state of the art work of jellysnake et al. such as "EdibleFlora" and "SimpleFarming", for instance by adding events, the next stage of the project could commence. In their laboratory, Vedant secretly developed a process to breed seeds, so that the Terasology world would be allowed to enjoy such marvelous wonders as blue raspberries 🍓

Naturally, these genetic alterations don't come for free: The conducted research showed, that the genetics of edibles (food and drink) now affect their impact. This and the other experiments called for a lot of unit testing in the process 🕵️‍♂️

Terasology Game Hud, Graphics Improvement & Gameplay Guide

- by Stefania Mak

👉 Progress Report (forum.terasology.org)

Stefania's project is all about improving the user interface (UI) and user experience (UX) and bringing Terasology and its gameplays closer to a distinct identity and style. For this, they started out with collecting references from various games with respect to HUD (Head-Up Display) structure and design. To get more accustomed to how Terasology HUD elements work and can be altered, Stefania took the task selection screen of Terasology's "Master of Oreon" (MOO) and gave it a whole new look:

MOO Task Selection Before MOO Task Selection After

Although there's currently only the default blueprint image shown in the task selection screen, Stefania created a bunch more, to be integrated by any interested party.

MOO Task Selection Blueprints

After this first familiarization task, the focus went to Terasology's Capture-the-Flag gameplay "Light And Shadow" (LAS). Here again, Stefania showed a lot of creativity with mock-ups for the different gameplay-specific screens. Two of the ideas were already implemented: Enlarging the health bar and changing the quickslot bar from the classic Minecraft-like horizontal orientation and central position to a less building-focused vertical orientation at the right side of the screen:

LAS Quickslot Bar

Changes to the dialogue screen with the fool are currently in the works, while alterations of questing HUD elements, game over, stats overview and gameplay-independent screens are still outstanding.

Interactive Journey in Terasology Contributions

- by Pratham Sahasrabhojane

👉 Progress Report (forum.terasology.org)

The goal of Pratham's project is to develop an exploration website that introduces users to contributing to Terasology. Users are led down a path of questions and answers where the final goal is to narrow down the interest and goals of the user. This should narrow down what the user reads and covers from the game documentation, what modules to look at, and what features of the engine to start with. This should make the game more approachable to individuals that want to contribute to the project.

Pratham initially started mocking up the layout of the site and working out the features that would be appropriate to the site. The final stack was built in React and a JSON config file is used at the moment to setup the navigation of questions displayed on the site. There has been some cross talk between Stefania and Pratham on UI/UX and small improvements here and there such as adding additional padding. Pratham at the moment has been working on improving the functionality of the site. There is some basic debate in regards to adding a tutorial to that would explain each section of the site.

Converting "Destination: Sol" systems to use ECS

- by Isaac lichter

👉 Destination: Sol Blog

👉 Progress Report (forum.terasology.org)

Isaac's journey of porting "Destination: Sol" to the Entity-Component-System "Gestalt" that is the base for Terasology as well started out with handling health and damage via the ECS. The next stage was introducing events for physical contact and force which resulted in events like ContactEvent, ImpulseEvent, and ForceEvent. Naturally, things need to be cleaned up from time to time, so Isaac introduced new events for the removal of entities to be used within "Destination: Sol".

The next stage took our student to render-land to work out how to draw the graphics based on the concept of entities introduced by the ECS. Like every exciting journey, this one as well didn't go without running into issues. However, Isaac managed to defeat the foe of serialization troubling them with respect to a class for physics handling and continue making progress.

Destination: Sol