uchicago-cs / chiventure

A text adventure game engine developed in UChicago's CMSC 22000 - Introduction to Software Development
40 stars 13 forks source link

Familiarize and fit our design into already implemented parts of chiventure (room structures, items) #421

Closed bryan22lee closed 4 years ago

bryan22lee commented 4 years ago

We will develop a design (high-level module plans) for random-room and open-world generation. We need to ensure our general design fits within and correctly uses room/item data structures and understand how our design will fit into the pre-existing code. Familiarization with existing modules (e.g. game-state/room.h, game-state/item.h) is needed to implement these structs in our openworld generation design. Document findings and update design accordingly.

bryan22lee commented 4 years ago

A document of the following information can be found as a page on the wiki, titled "Open world: Autogeneration and Game State":

Looked into wdl and game-state modules to familiarize with existing code format. Found relevant struct definitions for rooms, items, players, and actions in the game-state directory. Documented outline of their structures. We want to understand exactly how they work so we can incorporate them into our design plan for open world random generation. Documented possible ways our autogeneration/gather design modules can use these structs to auto-generate rooms

Immediate goal defined as designing/implementing random room generation correctly, then extending this to open world design later. Focus for right now is on item structs and room structs. Future goals include incorporating player-inventory updates, classifying items, and "quasi-random" item generation (should relate to previous room items) for continuity.

borjasotomayor commented 4 years ago

You are doing a good job of keeping the issue updated but, ideally, your updates should point to the exact work you've done. For example, you refer to documenting structures: Where can that documentation be found? In general, you should update an issue when you have produced something tangible that others can look at, not simply to make a note that you have completed a specific sub-task.

bryan22lee commented 4 years ago

See the updated document on the wiki, titled "Open world: Autogeneration and Game State":

We discussed additional considerations for our room autogeneration plan during a team meeting today. Notably, we talked about item value/classification support, NPC additions, map inclusion (for the user), room generation in relation to player level, and using a "random" library. This, along with how this may affect our design, was documented under "Additional considerations after team meeting" at the bottom of the wiki page.

bryan22lee commented 4 years ago

Documented existing modules (and their structs) that we can use in our room/world autogeneration design, and how we may use them (view on the wiki, titled "Open world: Autogeneration and Game State"). Also included additional considerations like item value/classification and NPC inclusion. Create tasks for these for the following sprint. Document can be found here.

dwahme commented 4 years ago

Issue Score: ✔️++

Comments: Great job! Well done with the clear and precise goals as well as meeting outcomes.