Posts

Week 5 - Time Tracking Simplifications & Final Characters

Image
Time Tracking Changes Last week was a major development week for time-based behaviors. A new character was added, and character's behaviors were adapted to change the city dynamic when night fell. The pull request that adds all this is now at a mergable state, after making a major suggested from a mentor review:

The time-tracking system used to operate on a component/system architecture, where each character is given a component which stores the time given out by a cycle inside of the larger system. This cycle operated on a world time event, which cycles very quickly. This has been swapped out for an action/system architecture, where each character runs an action to check the current daytime status. In the system, the time-checking cycle has been replaced with dawn/dusk events. This is much more performance-safe than the old system. The Final Cast of Characters With most of the project so far being dedicated to the development of citizen characters, the last step of this developm…

Week 4 - Sleepy Gooeys & Performance Enhancements

Image
Nighttime in the City One of the largest developments this week was the implementation of time-based behaviors. Last week the TimeSensitiveComponent was added, allowing for behaviors to be based upon the current world time. This week, this component has been put to use. When night falls on the city, all of the gooey citizens will return home to their spawn building, where they sleep soundly until daylight returns.
A gooey sleeping soundly in the marketplace
However, while all the other citizens are sleeping, a new character will appear in the darkness! Say hello to the nocturnal gooey, who only strays about when everyone else is sleeping:

The nocturnal gooey, ready for an adventure.
Now with a day-night cycle for all the characters, the city looks more and more alive. Peculiar Performance With all of the new developments in the Metal Renegades module, from city generation to character behaviors, it seems that performance in the module is starting to suffer. The framerate seems to be si…

Week 3 - Giving Shelter & Characters Led Astray

Image
A Home For All Last week, there was a start on natural character spawning inside city buildings. This spawning was on a time-based cycle, where after a defined period of time a character was spawned inside each building with a PotentialHomeComponent. However, this seemed very unorganized, since characters would have no attachment to the buildings that they came from.
This week, that approach was switched out in favour of a 'shelter' based approach. Each building's home component is defined with the number of characters that can spawn inside of it, ranging from 1-5. When characters are spawned inside of buildings, this component also contains references to the characters that it contains. On each spawn check, characters will not spawn if the building already contains the maximum number of characters. This results in each building having a defined set of residents:

Gooey roommates
With every character now having a hard reference to their spawn building/home, this opens up th…

Week 2 - Multiple Personalities & Populating Cities

Image
Meet the Gooeys Any good city must have a little bit of variety. There was only a simple green gooey available before, but over the week I have added four different gooeys, all with different appearances and character traits. Friendly Gooey This gooey just wants to become your friend. Whenever you walk by, friendly gooey follows you like any good sidekick would. Friendly gooey looks just like the traditional gooey, with a green appearance and cool sunglasses. A friendly gooey out in the desert Scared Gooey This gooey, just like the friendly gooey, has a good heart. But unlike friendly gooey, scared gooey does not want you to get too close! If you do, scared gooey will dash away until they can't see you anymore! This gooey is marked by a distictive blue hue. A scared gooey, only observable at a distance Angry Gooey Angry gooey does not want to be your friend. In fact, angry gooey is your enemy. If you get too close to angry gooey, they may start to chase after you! If you see a red …

Week 1 - Character Behaviors & Changing Plans

Image
A change of plans In my original project proposal, my first month was going to be fully dedicated to the world generator and the generation of static cities throughout the map. Due to this project being a combined effort with another student, much of this work was shared in their proposal. They got a headstart on this part of the project, completing many of my first month tasks on my github board in the process (for which I am very grateful!). However, this put me in a very strange position, where much of the first month of my project was completed before I could even get work completed! As a result, I instead got a headstart on the AI portion of my project, starting with a simple Behaviors implementation.
Creating a Living Gooey The final version of this game contains characters with robot models, similar to the one pictured below:

An angry robot with heavy weaponry
These models are not complete yet, so for my purposes I will be using a model of Gooey, the Terasology mascot. This mod…

Hello World!

Image
What is this blog?

This blog currently acts as a log for the "Metal Renegades - World" GSOC project with The Terasology Foundation. Here you can find weekly updates on the status of the project, with more detail than can be provided in a simple forum post.

Who am I? I am a senior year high school student from Newfoundland, Canada. Next fall, I am entering a computer science undergraduate program. In the last Google Code-In, I finished as a finalist with Terasology, and I hope to bring that success with me to this new challenge!
Thank you for visiting my blog!