-
Notifications
You must be signed in to change notification settings - Fork 12
Open World ~ Generation Module Design layout
Borja Sotomayor edited this page May 15, 2021
·
3 revisions
Generation Module Design/layout
The Generation module is the logic, it makes sure rooms stay consistent.
Generation Module will use the following files:
- Adventure: When the player is outside exploring
- Indoor: When a player is in a building
- Battle: When player is in a battle tournament
- AI: Sorts items randomly according to player level and room type (if indoors, then randomly put indoor type items). **All excluding AI files listed consist of structs of items, short descriptions, and long descriptions specific to the file.
What Generation Module Contains:
- A boolean function called boolean different_room() that determines whether the player wants to step from the adventure rooms to an indoor or battle room. Returns true if the player wants to step out and false if it wants to continue in the same type of rooms.
- This matters because if a player that currently is in a library (indoor room) wants to go outside, then this would translate as a player wanting adventure like items and rooms.
- A function that will generate a room
- Will utilize WDL’s load_item and load_room
- A function that differentiates the level the player is in *Will need to wait until we have WDL ++ support for this.
- Module will hold new/init/free, and other convenience functions.
AI Module:
- Will include the items.h file from WDL and use functions like
- add_item_to_room(item_room, item);
- Int load_items(obj_t *doc, game_t *g)
- Will use random()
- Will consider player level and weapon level when making using random function.
Note: Currently there is …
- Support for rooms and items and actions for those
- No player definition: no specific player status
- No support for distinguishing level description
- No distinction between a non-hostile and hostile NPC **The WDL team informed us that they are considering implementing this in WDL++. Moreover, they are thinking about creating the potions and weapons as a special items category.
Things to consider:
- How many rooms shall there be in adventure? How many are indoors and in battle?
- How should we implement weapons and potions when they aren’t yet supported?
- How should we organize this Generation module to consider for hard-coded rooms other teams may have created?
-
Action Management
-
Battles
- Design Document
- Text Based Combat in Other Games
- User Stories
- Wishlist
- Battle Planning 2022
- Battle User Stories Review 2022
- Structs in Other Modules Related to Battles 2022
- Stat Changes Design Document
- Run Function Design Document
- CLI Integration Design Document
- Move Changes Design Document
- Unstubbing Stubs Design Document
- Battle Items and Equipment Design Document
- Battle Item Stats
- Battles Demo Design Document
- Battles Testing Moves, Items, and Equipment Design Document
- Sound integration with battle (design document)
-
Custom Actions
-
Custom Scripts
-
DSL
-
CLI
-
Enhanced CLI
-
Game-State
-
Graphics
- Design Plan
- Design document for integrating split screen graphics with chiventure
- GDL (Graphical Description Language)
- Graphics Sandbox
- Design Document for NPC Graphics and Dialogue
- Feature Wishlist (Spring 2021)
- Installing and Building raylib on a VM
- LibSDL Research
- Module Interactions
- Working with Raylib and SSH
- raylib
- GDL
-
Linking the Libzip and Json C to chiventure on CSIL machines
-
Lua
-
NPC
- Dependencies: Player class, Open world, Battle
- Action Documentation
- Design Document for NPC Generation in Openworld
- Design and Planning
- Establishing Dependencies
- Implementation of Custom Scripts
- Independent Feature: NPC Movement Design Document
- Player Interaction Design and Planning
- Dialogue
- Design Document for NPC Dialogue and Action Implementation
- Loading NPCs from WDL Files
- NPC Battle Integration Design Document
- NPC Battle Integration Changes Design Document
-
Open World
- Autogeneration and Game State
- Deciding an integration approach
- Designing approach for static integration into chiventure
- Feature Wishlist
- Generation Module Design layout
- Potential connections to the rest of chiventure
- Single Room Generation Module Design
- Source Document
- User Stories
- World Generation Algorithm Plan
- Loading OpenWorld Attribute from WDL
-
Player Class
-
Player
-
Quests
-
Rooms
-
Skill Trees
- Avoiding soft locks in skill tree integration
- Components of Exemplary Skill Trees
- Design Document and Interface Guide
- Environment interactions based on skill characteristics
- Integrating complex skill (combined, random, sequential, etc.) implementation
- Integration of a Leveling System
- Potential Integration with existing WDL
- Research on game balancing in regards to skill trees
- Research on skill tree support in modern day game engines
- SkillTree Wiki Summary
- Skilltree "effect" implementation and roadmap
- Summary of md doc file for skilltrees
- Design ideas in connection to other features
- Summary of Skill Tree Integration 2022
- The Difficulty of the Reading the World
- Complex Skills Summary
-
Sound
-
Stats
-
WDL