Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MUD protocol checklist #760

Closed
11 of 17 tasks
holic opened this issue May 8, 2023 · 2 comments
Closed
11 of 17 tasks

MUD protocol checklist #760

holic opened this issue May 8, 2023 · 2 comments
Labels
discussion A discussion (without clear action/outcome)

Comments

@holic
Copy link
Member

holic commented May 8, 2023

Things we need to do before considering the "MUD protocol" stable, because any changes here would be considered breaking and possibly a new major version.


General thoughts

  • Is there any way to shave off more bytes in World, etc. without substantially increasing gas costs?
  • Given that forge flattens ABIs (see feat(store,world): add errors to IStore, rename error interfaces #759), should we prefix more of our contract names to get them out of the way of any potential user code? -> if we find a more unique name use that as prefix, if we keep store and world then prefix with mud
  • PackedCounter -> DynamicDataLayout? -> packed counter is general, we could rename the variables in the code where we use it for the dynamic data lengths though
  • Have we audited our full set of config options for simplicity, consistency, and understandability?
  • Are we happy with "Store" and "World" naming?
    • We recently had trouble figuring out a good name for the TS (client-side but maybe eventually server-side) store/cache for data from the Solidity events, and using "Store" anywhere in the name makes it hard to infer which package represents which language.
@holic
Copy link
Member Author

holic commented Jul 3, 2023

A recent thing brought up in Discord is it might make sense to have a notion of both events and ephemeral tables and/or some way to opt-in to historical syncing of them (all events rather than just current -> future events).

I think with ephemeral tables, we were originally designing around event-like things, like the result of a given action that doesn't need on-chain storage (e.g. to trigger animations).

Another potential use case is more of an activity log, where you don't need to store values on chain but would like to display them in the client. A kill count, for example, might not be necessary to store/keep long term, but would be nice for the client to be able to sync historical data on for some kind of scoreboard.

@holic
Copy link
Member Author

holic commented Mar 21, 2024

I think we've addressed ~all of these things

@holic holic closed this as completed Mar 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion A discussion (without clear action/outcome)
Projects
None yet
Development

No branches or pull requests

2 participants