Skip to content

Skill Trees ~ Summary of Skill Tree Integration 2022

Kabir Dubey edited this page May 2, 2022 · 5 revisions

General Comments

In general, it seems like the skill trees library is minimally integrated. The 2021 demo of the entire chiventure project relied on core aspects of the skill trees feature, such as the node struct and various attributes. The demo itself calls for improvement in line 99.

The player class module has a class_prefabs.c file that 'prefabricates' information about a character for the developer. The skill trees module is used to describe the nature of the player's skill.

The vision of the player class team is well documented starting around line 264. In general, it seems that further integration requires the skill trees module to be more flexible. The class.c file has related dependencies on skill trees.

Future Steps, Improvements

Possible Future Integration

RPG Battles

Skill trees newest additions will require collaboration with the RPG battles team. The effects.c file centers around 4 major "atomic" effects. This includes a item statistic mod, item attribute mod, player statistic mod, and move mod. There is specific emphasis on the move mod as it serves as an important intermediary and link between a skill -> action move -> effect. This could include a move like fireball, which damages your opponents health by 10. This skill needs to be accessed by the battles team in order to use this in combat.

Player Class

Player class would like to collaborate with the skilltrees team, to make unique skills available to the different player characters.

Open World

As we develop the complexity of Skilltrees we could rely on collaboration with the open world team. Our complexity in the future relies on a conditional skill, which relies on the circumstances and surroundings of your event.

WDL

According to the WDL team, their tool can take plain text descriptions for only rooms, games, and a few other features and convert them to a WDL file. These WDL files can be converted to a DSL format. They are interested if the skilltrees module has any features that support WDL and can interact with the WDL file. The most realistic way to support WDL is outlined in the "Environment interactions based on skill characteristics" wiki page; enums/tags that determines whether the locations or features of the world that are available to the character. It may be overlimiting and too complex to put this in the skill struct though.

Instead, an explicit attempt at implementing a "skill type" (see God of War examples in wiki page) can be found in the skilltrees_enums file, where the WDL team can find examples of a "sid" and "skill_type" enum. The effects file also uses a linked list to implement an unlimited amount of 'effects' of skills. Perhaps the WDL team can see if these can be read into a WDL++ file; depending on that, we can extend and modify the design accordingly.

Action Items

With respect to integration, the player class prefabrication file gives many areas of improvement. The comments suggest that we ought to correspond with not just the player class team, but also the CLI (line 272) and battles teams.

These efforts should result in a more flexible and accessible design of the skill trees module that should make it more integrable in general.

After we figure that out, we should look into limiting gameplay according to skills as described in the wiki pages regarding integration with WDL.

Related Pages from the Past

Gameplay: WDL, etc.

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Environment-interactions-based-on-skill-characteristics

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Potential-Integration-with-existing-WDL

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Research-on-game-balancing-in-regards-to-skill-trees

Skill Leveling

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Integration-of-a-Leveling-System

Complex Skills

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Integrating-complex-skill-(combined,-random,-sequential,-etc.)-implementation

Integration Outside of Chiventure

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Research-on-skill-tree-support-in-modern-day-game-engines

Miscellaneous

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-design-ideas-in-connection-to-other-features

https://github.com/uchicago-cs/chiventure/wiki/Skill-Trees-~-Avoiding-soft-locks-in-skill-tree-integration

Clone this wiki locally