Game data upgrade #19

Open
opened 2022-04-15 21:00:11 +02:00 by williamjcm · 1 comment
Owner

As of 1.3.x, most game data maps are basically just mapping an ID to a string. This needs to change.

  • Accessories: make the size an enum. Done in 1.4.
  • Armour sets: add a multi-directional map that associate each armour slot with each blueprint ID, to help check if a specific part is unlocked or not (for when cheat mode is off). Needs #21 first.
  • Mission IDs: make mission type an enum.
    • Mission type and number can be deduced from the ID. IDs for the challenges are not linear unlike hunts and story missions, so mission number can't be auto-deduced here.
  • Story progress: can't really change anything without formatting many strings every frame when the popup menu is opened.
  • Style names: drop the "{Custom/Global} Style n" entries, and maybe start storing all data about the game's built-in styles (and then drop the "names" part of the map :D).
  • Weapon parts: move the tags to enums, except Motion which should be a bool.
As of 1.3.x, most game data maps are basically just mapping an ID to a string. This needs to change. - [x] Accessories: make the size an `enum`. Done in 1.4. - [ ] Armour sets: add a multi-directional map that associate each armour slot with each blueprint ID, to help check if a specific part is unlocked or not (for when cheat mode is off). Needs #21 first. - [ ] Mission IDs: make mission type an `enum`. - Mission type ~~and number~~ can be deduced from the ID. IDs for the challenges are not linear unlike hunts and story missions, so mission number can't be auto-deduced here. - Story progress: can't really change anything without formatting many strings every frame when the popup menu is opened. - [ ] Style names: drop the "{Custom/Global} Style `n`" entries, and maybe start storing all data about the game's built-in styles (and then drop the "names" part of the map :D). - [ ] Weapon parts: move the tags to `enum`s, except Motion which should be a `bool`.
williamjcm added this to the v1.4.0 milestone 2022-04-15 21:00:11 +02:00
williamjcm added the
enhancement
label 2022-04-15 21:00:11 +02:00
williamjcm self-assigned this 2022-04-15 21:00:12 +02:00
williamjcm added a new dependency 2022-04-16 01:11:20 +02:00
williamjcm added a new dependency 2022-09-19 17:59:46 +02:00
williamjcm removed a dependency 2022-11-21 08:28:09 +01:00
williamjcm removed reference the-road-to-1point4 2022-11-21 08:36:15 +01:00
williamjcm removed a dependency 2022-11-24 11:38:20 +01:00
williamjcm modified the milestone from v1.4.0 to v1.5.0 2022-11-27 09:16:50 +01:00
Author
Owner

Some musings.

What about using an ECS as a database that can be queried ? Not just for game data, but also save data ?

Sander Mertens, the author of the ECS framework Flecs, showed that it's very much possible, especially when relationships between entities are involved, in a blog post titled "Why it is time to start thinking of games as databases".

Would be a lot of work, hence the musings instead of a TODO list item, but it's something I might consider for a potential version 2.0.

Some musings. What about using an ECS as a database that can be queried ? Not just for game data, but also save data ? Sander Mertens, the author of the ECS framework Flecs, showed that it's very much possible, especially when relationships between entities are involved, in a blog post titled ["Why it is time to start thinking of games as databases"](https://ajmmertens.medium.com/why-it-is-time-to-start-thinking-of-games-as-databases-e7971da33ac3). Would be a lot of work, hence the musings instead of a TODO list item, but it's something I might consider for a potential version 2.0.
williamjcm removed this from the v1.5.0 milestone 2024-03-08 21:29:00 +01:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: williamjcm/MassBuilderSaveTool#19
No description provided.