AwesomeButton
Proud owner of BG 3: Day of Swen's Tentacle
Great to hear development is progressing. I don't care when it's done as long as it's the real deal.
Note a new option of particular interest to Codexers since you are all basically powergaming murderers
sennin, Please tell me you can turn off the excruciatingly slow text crawl and just have the words appear like for normal people who read.
Mod Support
A quick reminder before I get started that if you haven't done so yet please wishlist The Iron Oath on steam and to join our discord!
We've still been hard at work on The Iron Oath and this month we wanted to detail something we've been asked about a lot but wanted to wait till we were a little closer to launch before talking more about it.... mod support!
Mods
The Iron Oath will support a variety of things you can tweak and modify fairly easily. At your disposal will be the ability to make both big and small changes to quests, simulation variables, or custom artwork. For things like quests and in game events we're using modified version of the Yarn tool you can find here https://yarnspinner.dev/. While our version of the tool is pretty custom, quite a bit of the syntax and general tool use is the same so if you want to familiarize yourself with it then I recommend checking it out!
Here is a small sampling of the things you will have easy access to mod when the game is released.
- Create new quests or entirely new campaigns that span decades of in game time
- Modify basic stats and damage values for player & enemy classes and their abilities
- Create custom dungeon layouts and set traps and enemy encounters as you see fit
- Create new weapons, gear, consumables, etc (along with your own art) to be set up in the generic loot pool or make something unique to be given as a quest reward
- Custom Company & House banner flags as well as custom character portraits
- Add new player and enemy color templates
- Create custom events for the player to stumble across in the overworld or in a dungeon where you can add your own character interactions, sound effects, and music
- Access to most of the variables used for controlling how the game simulation works
- Create custom backstories for generated characters and what traits are associated with them
- Tons more with other variables you can tweak or icons you can manipulate
The above list is the broad overview of what you'll be able to modify and add to the game through mods but there are plenty of other things to tweak. I hope by the time we launch or shortly after we'll have a wiki setup that details everything but for now I'm going to walk through a couple examples of quests and events.
Sample Quest
The basic layout of our quest editor with various quests and event nodes
Here is what the quest editor looks like. On the left hand are a list of categories which contains groupings of quests and/or events. On the right hand side of the editor are a group of nodes that contain all the scripting for different quests and events in the selected category. Each node has either details on the quest itself, various events and traps, or scripted encounters associated with it.
A simple quest can be set up with very few lines of code and then fleshed out with more event node
After selecting a node you can modify any scripts contained inside. From here you can set various rewards, description text, which tileset is associated with the quest, etc. There are dozens of other variables you can configure when creating a quest like making it only appear if there is a plague active in a region or only during times of war. Certain quests can be given to the player through another scripted encounter so it doesn't require quite as many variables to set up since it will be assigned directly to the player from another event. The one above is a repeatable quest you could take when the conditions for it to show in a region occur. It could potentially be found in a city hub given out by one of the town citizens.
When making your own quests you could make a one off repeatable quest that is added to the pool of other quests to be potentially selected by the game for the player to take on or make a multi quest campaign that spans a generation!
Sample Event
Next I wanted to show you how to create a simple event that can be added to a pool of random events you might encounter during a playthrough. This one I'll break it down a little more so you can get a better understanding on what's going on in the script.
An event you might encounter while traveling through the world
<<set $EventTrigger to "TRAVELING_ON_WORLD_MAP">>
- The trigger is what shows the event. This particular one is triggered by traveling on the world map. This could also be something like when entering a town, or an inn, or when a character dies, or when camping, etc.
<<set $RequiredRegionState to "BanditActivity">>
- There are loads of regional events that can be active at any given time like a plague, blizzard, civilian revolts, town festivals, or (in this particular event's case) high bandit activity. There are dozens of these states to check with various effects on the region.
<<set $DaysUntilRepeat to 500>>
- This variable tells the game to not repeat this encounter more often than once ever X number of days. This can also be set to -1 and it will never repeat after being seen once.
<<CreateNpc "id:travelingMerchant,name:Trader,img:maleCivilian">>
- This is a function that creates a temporary NPC to be used in this event. These can also be used to create NPCs that persist for as long as needed in game.
**Up ahead, one of your outriders is returning to the caravan with great haste. They stop at the front of the column just ahead of you, and begin to relay something to [FNameP0], pointing down the road while they do so. With a nod of affirmation, [FNameP0] turns about on their mount and heads in your direction.**
- This is some flavor text that will be shown to the player for the event. Any text like ** text ** will let the game know this is descriptive text and will do some extra formatting when displayed to the user. There are also some variables in the text that can be parsed so we can modify the text dynamically. In the above text [FNameP0] stands for First Name Player 0. This event will select a player at random from the company to be inserted into the text. There are also ways to grab specific players by different characteristics or tags as well.
{player:0}Sir, scouts report a bandit blockade up ahead. We could try and go around, but it will slow us down. What would you like to do?
------------------------------------------------------------------------------------------------
- The above is used when we want to have a particular character talk. The game will know to display their character portrait and name.
<<if getCharacterWithTrait("Honorable") == "true">>
{
{player:$CharacterWithTrait}I say we take 'em head-on, boss. We know they're there, I'd rather not leave them for some unfortunate traveler to happen upon.
}
<<endif>>
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
- The above script will check if we have any characters that have the honorable trait and if we do then show some extra text. We could use checks like this to branch the event in an entirely different direction so that even if you see the same event multiple times it might play out differently.
->[Honorable,Brave]Make ready to attack!
<<AddCitizenToGuildOpinion closest 5>>
->**Attack**
<<ShowPartyOnRegionTileset SE.WorldEventBanditAmbushEncounter>>
<<stop>>
<<stop>>
->[Cowardly,SelfPreserving]Let's go around. **Continue**
<<stop>>
------------------------------------------------------------------------------------------------
- These lines are how we handle choices being made by the player. Adding -> before a line lets the game know we are about to add a choice for the player to make. Inside the brackets you can see various tags (like [Honorable,Brave]). These tags let the game know this choice is considered to be an action that is honorable and brave. Conversely, the dialogue option farther down is considered cowardly. Depending on who is in your company, making choices can effect how they feel about you as a leader and can have ramifications down the road.
<<ShowPartyOnRegionTileset SE.WorldEventBanditAmbushEncounter>>
- One last line I wanted to touch on is the above. This is what tells the game we're about to get into a fight and will start the flow of going into combat. The SE.WorldEventBanditAmbushEncounter is another node in yarn that contains the details on the enemies involved in this encounter.
I hope you'll see there's plenty of potential for players to continue adding a ton of content after launch and I honestly can't wait to see what people come up with.
Timelapse
Finally, here is a timelapse for the Imitator demon.
Overworld
Hey everyone, we hope you're all doing well and enjoying the weekend! We've been busy the last few months finalizing and polishing various features of the game, and for this month's update we wanted to primarily share a quick look at our finalized Overworld.
We haven't shown a ton of the map previously, other than a small portion that was in the demo and our most recent trailer. The map has undergone some changes over the course of development and internal playtesting. It now consists of 5 regions (instead of 9) and 18 cities (plus 3 faction hubs). Though it sounds like a significant alteration, the overall size of the map hasn't changed too much. We did this because the original map had some regions that were too similar and redundant (now each region has its own distinct biome), and the size of the counties were too small and cramped with as many cities as we had. We also felt that with our original version it was harder to keep track of and stay connected to the world and its ongoing affairs.
One of the many changes we've done recently was also finalizing our fonts. Judging by past feedback on our previous fonts, I don't think we'll be able to please everyone, but hopefully the majority of you approve! Above all, we want to make sure both the headers and main text are always clear and readable, which wasn't always the case with the previous pixel art fonts we had.
Kickstarter's resizing and compression might make this look a bit blurry!
As we continue to finalize and polish things we'll have more to share with you over the next few updates. Next month you can look forward to seeing some combat functionality and quality of life changes that we're excited to share! Here's a sneak peak at one of the QoL changes: visualized movement paths!
Lastly, we wanted to give a shoutout to our composer, Alex, who recently collaborated on an awesome album with Dark Souls composer Yuka Kitamura. You can listen to it for free on Alex's Bandcamp and Youtube. It's very cool to see him teaming up with such a high profile composer and we're thrilled that he's part of our team
As always, please take a moment to wishlist the game on Steam if you haven't already done so to help with visibility. We'd also love to have you join our Discord community! Thanks for reading and we'll see you next time!
Combat ImprovementsA list of recent combat improvements and quality of life changes we've made to the game
Hey everyone! As mentioned in our last update, we recently made a bunch of combat improvements and QoL changes that we're excited to share with you today. We're also in the process of adding some new combat environments such as the Tundra that you can see in the video below:
1) Movement & Route Planning:
You can now plan out your route by holding 'Shift' and drawing along the path you'd like to move. This is useful for avoiding hazards and potential attacks of opportunity. It's not shown in the video, but as an alternative you can now move your character multiple times so long as they haven't travelled their max distance. So if your character's movement value is 3, you can move 2 cells, and still be able to move 1 cell afterwards. So long as you don't take any damage or incur an attack of opportunity, each movement can be undone as well.
2) Line of Sight Changes:
We've made a few tweaks to our line of sight mechanic. Like before, larger obstacles will block LoS entirely, and characters you don't have vision of won't be viable targets. Enemies and smaller obstacles (such as a barrel or waist high rock) can partially obscure LoS. If you only have partial line of sight to your target, your attack will do 50% damage. Previously, partial line of sight incurred an accuracy penalty instead of a damage penalty, but for the sake of reducing RNG and saving frustration when an ability misses (thus wasting a charge), we decided to change that mechanic.
3) Swapping Places:
We've changed up our swap mechanic do be more useful and easier to use. Swapping allows you to trade places with an adjacent ally. Previously it was a secondary action on the hotbar, and using it expended that character's turn. We felt it was a bit weak however, and ending the character's turn removed some potential player creativity. Swapping is now done during the 'move phase' of a character's turn by clicking on the ally you want to trade places with (so long as they're within movement range). After swapping, the character is still able to act like they normally would after moving.
4) Reviving downed allies:
Characters can now help up an adjacent downed ally, which is activated in the same fashion as swapping (targeting a downed ally during the move phase of a character's turn). The other methods for reviving a downed ally are still viable (using a potion or heal ability).
5) Knocking targets into objects:
You can now push a target into terrain, objects or another character, triggering extra damage from the impact. Additionally, they become 'Staggered' for 1 round, which prevents them from evading attacks. It's now even more important to pay attention to your positioning and surroundings, as certain enemies can do the same thing to you!
6) Knocking targets into pits:
You can now push a target into any pits/holes that exist on the battlefield. Similarly to the above, the target will incur extra damage, but instead of being Staggered they will be Stunned for 1 round. We know it's not entirely realistic that the target survives such a fall, but we didn't want to make it an easy way to insta-kill enemies (and bosses especially!).
7) Unique Traps & Hazards:
We'll be giving each combat environment at least 1 unique hazard. The new Tundra tileset has a special terrain type that cracks when stepped on. After being stepped on twice (or if a character stands on it for more than 1 round), the ice and snow will give way and open up into a pit.
8) Day/Night/Weather Effects:
For now these are purely visual just to mix things up, but we do have some plans for them to have an impact on combat (such as night time reducing visibility to 2-3 cells out from your characters, or a lightning strike on the battlefield).
Evil with a brain or nothing!
If you had a brain you wouldn't be evil to begin with
July Update: UI
Hey everybody, we hope you're all having a wonderful summer! We've been working a lot on our finalized UI for a variety of things recently and we wanted to share some of that progress with you this month, starting with the main menu. In the below video you'll see the save/load menu as well as the flow for creating a new campaign.
When creating a new campaign you'll have plenty of options, allowing you to make your experience easier or harder. The game is balanced around the "Normal" default settings but if you really want to test your skills, the options are there for you to do so.
We've also finalized the overworld HUD, adding an element that shows your location/traveling status(in the top right corner), and also also allows you to:
We also added in a quick little animation to show the passage of days whenever you wait in the overworld or select a choice that causes extra days to pass.
- Pause/Resume traveling to your destination
- Cancel traveling to your destination
- Wait in the Overworld (for X days)
- Toggle Borders (Show Counties, Show Kingdoms, or Disable)
We recently finalized our UI for selecting which abilities you want a character to use in combat, as well as the window for upgrading each one. Each character can only equip 4 abilities at a time (each class has 6 to choose from, assuming they are a high enough level), and they can only be changed from the overworld.
Above you can see the upgrade tree for the Pyrolancer's Infernal Pillar ability. It's not possible to fully max out every tree (you're limited to 6 upgrade choices for each ability), so between your ability choices, and the upgrades for each, there is a lot opportunities to customize and make distinct builds that play very differently between characters of the same class. Each upgrade tree has 2 main branches. The upper path is generally more focused on support/utility upgrades, where as the bottom branch is generally more focused on increasing damage output.
Before signing off, we wanted to give a quick shout out to a few friends' projects:
GRIME just launched today, and is a great looking metroidvania, with the soundtrack done by none other than our very own composer, Alex Roe! Go check out GRIME and make sure to listen to his incredible OST!
The Gardener And The Wild Vines is a game made by our friends at Finite Reflection Studios which we met at a convention several years ago. I played a demo for this one and it was a ton of fun so make sure to check it out and wishlist it as it comes out on Sep. 9th.
Our friends behind Summoners Fate --a turn based tactical deckbuilder--recently launched their Steam page, so be sure to add them to your wishlist.
See you next time!
We also added in a quick little animation to show the passage of days whenever you wait in the overworld or select a choice that causes extra days to pass.
Below you can see the upgrade tree for the Pyrolancer's Infernal Pillar ability