Hello and welcome to Devlog 11 for Ardenfall, the open ended RPG! These past few weeks has seen some major new additions to the project, from new swamp trees to a new dialog system and quest system, and the beginning of a new AI system. So much to go through, so lets begin! As usual, be sure to check out our last devlog in case you missed it. And if you’re interested in following the project, be sure to follow us on Twitter, and join our Discord!

Swamp Foliage and Decor

Several new swamp trees have been added to the RPG, as well as a bunch of other decorations, such as new grass, mushrooms, rocks, and bushes! Some of these came from the wonderful polygon nature pack, with some modifications. This is an awesome start to working on actual environments.

A handful of pine trees have been added as well – these will most likely be used in the highlands, but I may also add a darker version for the swamps!

New Foliage Impostors

Another addition was a new Impostor tool. Impostors are a form of billboard – billboards are essentially an image of an object. When the object is far away, it’s swapped for the image, since you can’t tell at that distance. This speeds things up considerably, especially for trees! Imposters are a bit more complex – instead of a single image, it’s a bunch of images of different angles around the object, and they are blended depending on the view angle.

Originally I used IMP, but it was quite slow and limited, so I finally made the jump to Amplify Impostors, and immediately fell in love. They generate quickly, and look absolutely stunning! The shaders are also extendable, which is incredibly power and exciting.

Foliage Color Variation

I’ve also added color variations to the foliage system – these are presets that blend trees between two colors. I also implemented this into the impostors using their custom shader tool, which was a pain – but it ended up looking awesome!

Still need to work on getting the balance between ambient occlusion and gradient textures on trees working, however. Clearly it’s a bit.. much.

Camera Swings

I’ve added some simple camera swinging / shaking when fighting – this includes on swinging melee weapons, as well as on parrying and on hitting enemies. This honestly really helps, it adds a bit of juice! Next we need to add some real animations!

Continued Dialog System

I’ve continued work on the new Dialog System! Tons of features have been added, as well as a bunch of nodes that are used for quests and other things.

New Quest System

Now that the new and improved dialog system is far enough in development, I’ve started work on the new quest system as well. This includes lots of cool features, such as objectives, phases, quest objects, and quest markers

AI – Package System (Technical)

Another major feature that has been waiting to be implemented is the Package System. This is heavily based on Skyrim’s Package System, although it’s designed to be much more extendable, naturally. The basic concept is that an npc will have several states that can be determined by the developer. For a humanoid, these states are idle, investigate, combat, and flee. Each of these states has a Package Stack. A stack is a list of packages, which are blocks of things to do. These packages can come from anywhere, such as a quest or just by default. When a character is in a certain state, it will scan the corresponding package stack until it finds a package that passes the requirements. It will then run that package.

The state graph!

Most of the time packages will be put into the idle state, since usually quests or schedules don’t need to fiddle with combat or investigating. For example, there may be a “Go to Inn” package added to the idle package stack, which would send the character to go to the inn at a certain time of day. A quest could then add a package “Go to Castle” on top of the stack, which would force the character to instead go to the castle.

An example of a character’s stacks

In other words, packages both allow for npcs to have interesting schedules (work in the day, rest in the evening, sleep at night), have special events (festivals), as well as have special actions for quests (follow characters, go to location). It’s an open ended system that will hopefully lead to some interesting outcomes! It’s still in the works, however – I am currently figuring out how subpackages will function I will post updates as I continue to work on it.

TLDR

New AI system will allow for npc schedules and cool quests! This tech is integral for a open world RPG.

Other Additions

Hierarchy Additions

I made a simple hierarchy coloring tool, which is a component that colors the owning object in the hierarchy, as well as adds an icon. It’s a nice touch, and helps with finding important objects in the editor.

End

I hope this was a good read. These new features are incredibly exciting, and have been waiting to be implemented for a very long time into our RPG. Jumping headfirst into graphs has been an amazing experience so far: while adding individual features is much more complex than the old scripting way, having everything I need at my fingertips is so much better than building it completely from scratch. If you’re interested in more, be sure to follow us on Twitter, and join our Discord!