This is the manual for Action Adventure Kit by SoftLeitner. Action Adventure Kit is quite the mouthful so I will be referring to it using the shorthand AAK.
Action Adventures are a very wide, loose genre with all kinds of different games and sub genres. There are some things that many of them have in common though. Lots of them have characters that perform actions. These might have items that change hands and attributes that define their capabilities.
AAK was made to provide a solid foundation for these common ideas within the genre so you can focus on what makes your game special.
Since AAK goes for a broad base of functionality rather than something more specialized it generally tries to do anything in the most default, unity-built-in way possible. For example the movement in the souls demo uses the default unity character controller and the intro is done using timeline. To accommodate for the fact that more special systems may be required for movement, inventory, actions, … AAK was made from the ground up with expandability in mind.
AAK is separated into multiple projects. If you are using AAK for the first time I recommend importing everything, including settings, into a new project.
If the project you are importing into uses the old input system the editor will prompt you to restart and you will have to start the import again after that.
The Core Framework of AAK, always import this one.
Contains the getting started project. Recommended to learn about the various systems of AAK in a minimal environment before jumping into the more complex souls demo.
Also contains some Visual Scripting examples. Be sure to read the visual scripting manual page before jumping into any scenes using Visual Scripting as there is some additional setup required!
Contains the soulslike demo, import if you want to start by adapting this demo.
Start up Scenes/Title/SoulsTitle to start the game from the title screen just like the demo does.
To jump directly into the game open Scenes/Dungeon/SoulsDungeon for the level itself, add Scenes/Dungeon/SoulsDungeonTemp for the temporary parts like enemies and crates.
Scenes/Debugging/SoulsDebuggingGeneral is a useful scene for testing out all the actions and Scenes/Debugging/Enemies/SoulsDebuggingEnemies can be used to debug combat.
Scenes/Debugging/Interaction/SoulsDebuggingInteraction can be useful to synchronize the character with some object they are interacting with, this is done using timelines.
The models in this demo were made using blender and then exported to fbx for unity. You can find the original blend files and the used export settings in AdventureSouls/AdventureSoulsBlender.zip.
- Input System allows binding character actions directly to inputs
- Timeline used to provide a character action that waits for a timeline to finish
- Cinemachine used in a helper that performs camera locking using two virtual cameras
- Visual Scripting for the custom visual scripting units
- Input System for the inputs
- Universal RP for the materials
- Visual Scripting used in visual scripting manual
- Input System for all the player inputs
- Timeline for the intro and bonfire actions
- Cinemachine for the main camera
- Universal RP
- ProBuilder used to build the environments
- Visual Scripting for some optional custom enemy behaviors
This manual is meant to explain the concepts and ideas of AAK rather then any specific detailed API. For more detailed explanations of every class in the core framework and most of the demo please consult the code itself. I try to give a detailed explanation for the purpose of the class in the xml-doc of the class itself and explain every field of the behaviors in the tooltip.
The manual pages for the core systems of AAK are always split into a Core part that explains the idea behind the system and a Souls part that covers how the system was used in that demo.
The Souls section of the manual contains some additional information about how the AdventureSouls demo is set up and how it may be extended.
All GitHub repositories related to my unity assets can be found in the Softleitner Extras list. I generally try to keep the main ones updated but some of the minor ones may be out of date.
The next focus of development will be the second demo project. This may take a while so I may add some smaller updates, integrations or fixes in the meantime. Feel free to let me know if you have some features or game types that you’d like to see in the future.
The quickest channels to reach me are mail and discord. Please feel free to reach out with any problems and questions. Feedback regarding the general direction of AAK and particular future features are also always welcome. Though I might not immediately be able to incorporate your requests I very much take them into consideration when planning out future updates.
If you can spare the time please consider leaving a review in the asset store.