Since the last blog post, there has been a delay in the work that I have created; prior projects and dedications were apparent. This blog post, whilst delayed, will showcase work contributed since the last post, including a large amount of progress on the Titans,
The reason I chose the walls as the first object to create in this mod was twofold; they are an iconic part of the series, and with very little functionality, they would appear to be a suitable starting point for me to prove that I can use XML to create new assets. Whilst this was, at the time, an understandable view point, it came before the understanding that the compelxity of an objects functionality and the effort required to create it using XML has no correlation whatsoever. This means that creating an entity with a high level of funcitonality and variety, for example a new species of humans with wildy varying statistics that results in a completely differnet overall gameplay experience, could be just as challenging, if not easier, than creating for example, a large wall.
The same princible came into application when creating the Titan. I saved creating the Titan until after the Titan Walls as I felt I would need more expertise in doing so, but creating the Titans turned out to be an easier process than anticipated.
This is a portion of the XML file for the Titan. Titans, functionally, are giant, man-eating beasts who heal incredibly fast; save for dying instantly when killed successfully with Anti-Titan weaponry. In order to reach this, I researched RimWorlds XML files to find a creature or entity most similar to a Titan, and found that the Warg, a highly dangerous and carnivorous creature was the most suitable.
I first started by copying the Wargs XML file, and reclassing it through its <defName>, (what the game reads the file as) and the <label> (the name of the entity shown to the player) to Titan. I then changed the texture files for this new entity to scaled-up versions of a default human pawn, a placeholder but truly usable art asset to match the file. I then scaled up the Titan with the <size> def, removed any chance of player tamability, and increased its life expectancy as well as many other minor adjustments.
The result at this point in progress was almost suitable, but after more testing I decided to add two new <defs> to make this new entity closer to a more suitable translation of Titans: <baseHungerRate> and <baseHealthScale>. The first is to make the new entities hungrier faster (1000X faster than normal entities), as the second increases the base health of the Titans to 100x the normal amount for an entity.
This is another portion of the Titans XML file. This shows the combat capability of the Titans, and is heavily modified based on the Wargs combat capability. The main difference here is that every <tool>, components of an entity that interacts with other entities, has been stripped away other than the Teeth value. This is because the main driving force for a Titan is to eat humans, them being only able to attack with their teeth is a closer representation and translation of them into this mod, as the injuries sustained from these creatures will be entirely bite marks.
I also created texture files, and made several smaller adjustments in order for the Titans to function and work correctly, then tested to see how these mechanics work together.
This image showcases a Titan next to a normal human pawn: Bennett.
Bennett is a normal, unaltered human pawn, often reffered to in the game as "baseline." Baseline pawns are what the player spawns with upon beginning a new game. For example, in order to take this screenshot, I activated RimWorlds development mode, opened a Dev Quicktest (quickly starting a game on a normal map in a smaller world, bypassing all pre-game preperation), and then used the development mode to spawn in the Titan next to him. The size difference can be clearly seen here; the manipulation of the Titans <size> and <drawSize> worked to my advantage.
In order to test the functionality of the combat of the Titan, I ordered Bennet to attack the Titan. Moments later, Bennett is killed, and eaten.
By sending another character to attack the Titan, and checking the Combat Log, we can see that the Titan exclusively attacks with its teeth, biting its target apart, as well as possessing the necessary hunger to eat the corpse whole as it did with Bennett.
This is a major success for the project - the Titans are nearly completed. The only thing left to do in order to complete them is to A) set their diet to exclusively humans and B) change the way they spawn so that they can be used in Titan Warfare, as well as being far more threatening to the player.
I spent a lot of time this week working on the Titan specifically; I will turn my attention to other parts of the project: creating Subjects Of Ymir.