Timeless Tyrants Expansion - April Dev Log
Today I'll be talking about all the exciting things coming for the next expansion, Timeless Tyrants. I have been extremely busy working on this one and I still have quite a bit of work to do to get it into your hands. I don't want to promise anything but I should be able to put out a beta build in a couple weeks.
Alright, let's take a look at what's coming down the pipe!
The Ardyn Race
Every expansion going forward will introduce a new race to play. This expansion will unlock the Ardyn, a race of fierce warriors with a vibrant culture and history.
The unique aspect of the Ardyn race is that they age extremely fast. Every one hour of in-game time is one year to them. To combat this, they have evolved the ability to syphon life from other entities, keeping themselves from ever growing old. Their victims, sadly, must pay the price and often die of old age as their youth is drawn from them. This survival trait has given the Ardyn many enemies. Some small factions within Ardyn society have forsworn the use of their powers on sentient entities, preferring to roam the lands as peaceful shepherds.
Their development is coming along very nicely, and I'm in the middle of populating all their new appearances, special items, and various game data requirements. Stay tuned for more on them in the next post!
Visible Gear And Items
Just as it sounds, you will now see items that are equipped on your character sprites.
Every entity sprite has a set of default colors, and accessories which get swapped out based on two things: the entity default appearance, and the entity equipment. The default appearance will establish things like skin color and hair. The equipment will then take a higher priority and override colors or add accessories. For example, hair (say, a ponytail) is a default appearance accessory which can be hidden by a helmet accessory coming from the item equipped in the head slot (as seen in the above gif.)
I will be adding some new settings options so that players can disable any accessory visibility. For example, if players don't want helmets visible, I'll have a toggle to hide them.
This is a big change and I didn't think I was going to be able to pull this off. This is something that I've seen suggested quite a bit, but I had always shied away from implementing it because of the workload. It required going through every animation frame to set the anchor point positions and orientation (so things like hair and helmets move properly.) It was extremely tedious. But, that's all done now, and it works great. The only real downside is that things can't be very accurate in scale. For example, a helmet lying on the grass will look slightly larger than the one on the character sprite. There's nothing to do about that really. The scale of the game can often be an annoying restriction in cases like this.
This change added a lot of new properties to edit for entities. It's very easy to make appearances and swap out skin color, fur color, type of hair, etc. This leads into the next big change...
This is another HUUUUGE change that I'm super excited about. I think it's going to open up a lot for the game.
Essentially, I've done away with the old method of game data management that I was using. I no longer derive the game's data from that one .json file. A file that was generated from a 100+ page spreadsheet on google. It was just an absolute nightmare to edit after the game was built. Instead, I've migrated all that data to use Unity's scriptable objects.
There are a couple benefits to doing this. Firstly, it makes editing and creating data objects super fast. I no longer have to import my spreadsheet every time I want to tune values, or create new content. Secondly, this has the added benefit of working nicely with Unity and the bundling framework.
Not only have I migrated to this new framework, I've also done a lot of work on making modding easier for players. At a high level, let's take a look at how mods will be made, as well as how they can be used to give you an idea of where it's going.
Making A Mod
Note: I will be making a detailed walkthrough later, so don't get hung up on how things find folders and such. I'll cover the details thoroughly later. This is a very, very high level overview.
Modders will be able to download a unity project from a git server that I will keep updated with the latest builds. This project will provide two important things: the core game data (i.e., blueprints, dialogue, items, etc), as well as the c# game data scripts. The scripts will be necessary for modders to make their own game data that can be read by the game client.
The unity project will provide a nice way to edit game data, but, more importantly, the tools to create a mod bundle.
Here's an example where I've created a very small mod which edits the tag for Cauldrons. Tags are a data object which represent a group of other data objects, in this case, cauldrons. Here, the cauldron tag gets used for room requirements, specifically, the kitchen room.
In the modding project, I've simply changed the display name for the tag from Cauldron to BETTER CAULDRON. Then, I built the bundle which creates a special folder named BetterTags.
The Mod folder resides in the same directory as the game's save files. This is to avoid any mods getting stomped when a new game version comes out. Inside the Mod directory, you'll see my new mod, BetterTags.
Using A Mod
The game client will automatically look for the Mods folder, and will display any mods inside when the game boots up. All you have to do is put the mod folders here for them to be used by the game.
Players can then select which mods are active and the mod will display the version it was last used on. I am going to add lots of helpful stuff here as I go. I want to add warnings for out-of-date versions, conflicts on assets, and maybe even a mod importer. So, please let me know if there's anything you'd like to see at this screen!
With the BetterTags mod active, you'll see (in the above gif) that the new tag shows up. Pretty cool! Because everything in the game derives from data, modders have a lot they can change, not just lame tags. Want to make a new item? Go for it! I've also made it so character sprites and animations can be modded, not just the texture atlas. At some point, I'll still need to make it so modders can change the game's scale, but that's on my to-do list for now.
This is hopefully going to work out pretty well, but I'd love to get your feedback on things. So, feel free to leave a message. I'm sure there will be lots of fun problems around how mods merge, modify textures, and so on. We'll figure them out as we go. :)
Stockpiles now have item prohibiting, and priorities. Entities will move items from lower priority stockpiles to higher priority stockpiles. This should help when trying to keep things like animal enclosures stocked with food.
That's it for now! I will work as fast as I can to get the next beta going. I need to do quite a lot still to get it ready. I'll keep you folks updated! Thanks for your patience and great feedback. I hope you have a great day!