Define multiplayer learning rules
This commit is contained in:
@@ -890,7 +890,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
|
|||||||
- [x] Define when deeper questions should matter: quality improvements, safer work, complex crafting, teaching others, and advanced branches. Added deeper-question timing rules to `Docs/KnowledgeAndSkillFoundation.md`, keeping advanced checks out of the first survival loop while tying them to quality improvements, safer work, complex crafting, teaching others, and advanced branches.
|
- [x] Define when deeper questions should matter: quality improvements, safer work, complex crafting, teaching others, and advanced branches. Added deeper-question timing rules to `Docs/KnowledgeAndSkillFoundation.md`, keeping advanced checks out of the first survival loop while tying them to quality improvements, safer work, complex crafting, teaching others, and advanced branches.
|
||||||
- [x] Add design notes for avoiding exploit farming and rote memorization. Added exploit and rote-memorization guardrails to `Docs/KnowledgeAndSkillFoundation.md`, covering diminishing returns, meaningful action context, repeated prompt suppression, recovery-only credit, learned-concept separation, and varied wording to reward decisions and practice instead of low-cost repetition.
|
- [x] Add design notes for avoiding exploit farming and rote memorization. Added exploit and rote-memorization guardrails to `Docs/KnowledgeAndSkillFoundation.md`, covering diminishing returns, meaningful action context, repeated prompt suppression, recovery-only credit, learned-concept separation, and varied wording to reward decisions and practice instead of low-cost repetition.
|
||||||
- [x] Add persistence requirements for knowledge, skill experience, learned concepts, failed attempts, and tutorial state. Added knowledge persistence requirements to `Docs/KnowledgeAndSkillFoundation.md`, defining saved profile IDs, learned concepts, practical skill experience, mastery tiers, failed-attempt feedback history, tutorial/prompt state, question cooldowns, teaching/observation events, schema versioning, server authority, and reset-farming prevention.
|
- [x] Add persistence requirements for knowledge, skill experience, learned concepts, failed attempts, and tutorial state. Added knowledge persistence requirements to `Docs/KnowledgeAndSkillFoundation.md`, defining saved profile IDs, learned concepts, practical skill experience, mastery tiers, failed-attempt feedback history, tutorial/prompt state, question cooldowns, teaching/observation events, schema versioning, server authority, and reset-farming prevention.
|
||||||
- [ ] Add multiplayer rules for teaching, observation, shared work, and group skill benefits.
|
- [x] Add multiplayer rules for teaching, observation, shared work, and group skill benefits. Added multiplayer learning rules to `Docs/KnowledgeAndSkillFoundation.md`, covering server-validated teaching, bounded learner credit, observation limits, role-specific shared-work experience, capped group benefits, no global skill aura, and network authority checks for distance, visibility, participation, cooldowns, tools, context, and outcome.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -573,3 +573,58 @@ Save/load rules:
|
|||||||
Persistence rule: learning state should make a returning character feel
|
Persistence rule: learning state should make a returning character feel
|
||||||
continuous while giving designers enough history to tune teaching, feedback, and
|
continuous while giving designers enough history to tune teaching, feedback, and
|
||||||
anti-exploit behavior.
|
anti-exploit behavior.
|
||||||
|
|
||||||
|
## Multiplayer Learning Rules
|
||||||
|
|
||||||
|
Learning in multiplayer should make cooperation valuable without turning nearby
|
||||||
|
players into passive experience sources.
|
||||||
|
|
||||||
|
Teaching:
|
||||||
|
|
||||||
|
- The server validates teaching credit.
|
||||||
|
- The teacher must know the concept, have enough practical experience, or
|
||||||
|
demonstrate the action in the current context.
|
||||||
|
- The learner must be nearby, attentive, and eligible for the concept.
|
||||||
|
- Teaching grants bounded awareness or practice credit, not instant mastery.
|
||||||
|
- Dangerous concepts require supervised practice before full confidence is
|
||||||
|
awarded.
|
||||||
|
|
||||||
|
Observation:
|
||||||
|
|
||||||
|
- Nearby observation can unlock awareness of a concept when the action is
|
||||||
|
visible and relevant.
|
||||||
|
- Passive observation grants less credit than direct practice.
|
||||||
|
- Repeated passive observation has diminishing returns.
|
||||||
|
- Observation does not grant credit while idle, disconnected, hidden from the
|
||||||
|
action, or outside the relevant range.
|
||||||
|
|
||||||
|
Shared work:
|
||||||
|
|
||||||
|
- Group tasks can grant role-specific experience to active contributors.
|
||||||
|
- Roles should be explicit enough to audit later: gatherer, builder, fire
|
||||||
|
watcher, first aid helper, scout, teacher, cook, hauler, or defender.
|
||||||
|
- Failed group work can teach useful feedback when a player helps diagnose or
|
||||||
|
correct the problem.
|
||||||
|
- Idle proximity, item handoff spam, and repeated low-risk loops should not
|
||||||
|
grant shared-work credit.
|
||||||
|
|
||||||
|
Group skill benefits:
|
||||||
|
|
||||||
|
- Skilled contributors can reduce risk, improve quality, increase speed, or
|
||||||
|
make warnings more visible for the group task.
|
||||||
|
- Benefits should be capped so one expert does not remove all challenge.
|
||||||
|
- Benefits apply only while the contributor is present, equipped, and actively
|
||||||
|
helping.
|
||||||
|
- No global aura: skill benefits do not apply across the map or while logged
|
||||||
|
off unless a future offline-simulation rule explicitly grants protection.
|
||||||
|
|
||||||
|
Network rules:
|
||||||
|
|
||||||
|
- Client learning requests are hints only.
|
||||||
|
- Server authority validates distance, visibility, participation, role,
|
||||||
|
cooldown, tools, environmental context, and outcome before granting credit.
|
||||||
|
- Teaching, observation, and shared-work events must be persisted for tuning and
|
||||||
|
anti-exploit review.
|
||||||
|
|
||||||
|
Multiplayer rule: cooperation should transfer awareness, improve group outcomes,
|
||||||
|
and reward active contribution without bypassing practice, risk, or context.
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Verify multiplayer learning rules are documented."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[1]
|
||||||
|
DOC = ROOT / "Docs" / "KnowledgeAndSkillFoundation.md"
|
||||||
|
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
|
||||||
|
|
||||||
|
REQUIRED = {
|
||||||
|
DOC: [
|
||||||
|
"## Multiplayer Learning Rules",
|
||||||
|
"Teaching:",
|
||||||
|
"The server validates teaching credit.",
|
||||||
|
"Observation:",
|
||||||
|
"Passive observation grants less credit than direct practice.",
|
||||||
|
"Shared work:",
|
||||||
|
"Group tasks can grant role-specific experience to active contributors.",
|
||||||
|
"Group skill benefits:",
|
||||||
|
"Benefits should be capped",
|
||||||
|
"No global aura:",
|
||||||
|
"Network rules:",
|
||||||
|
"Server authority validates distance, visibility, participation, role,",
|
||||||
|
"Multiplayer rule:",
|
||||||
|
],
|
||||||
|
ROADMAP: [
|
||||||
|
"[x] Add multiplayer rules for teaching, observation, shared work, and group skill benefits.",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
missing: list[str] = []
|
||||||
|
for path, snippets in REQUIRED.items():
|
||||||
|
text = path.read_text(encoding="utf-8")
|
||||||
|
for snippet in snippets:
|
||||||
|
if snippet not in text:
|
||||||
|
missing.append(f"{path.relative_to(ROOT)} missing {snippet!r}")
|
||||||
|
if missing:
|
||||||
|
raise SystemExit("FAILED: " + "; ".join(missing))
|
||||||
|
print("OK: multiplayer learning rules are documented.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user