Skip to content

Integrate NPC Dialogue System #7

Description

@brylie

We will want to have dialogues in our game to convey the story.

This feature aims to implement a robust NPC dialogue system that supports interactive and dynamic conversations within the game. This system will be integral for quests and general NPC interactions, with the capability to respond to game states, such as player achievements or changes triggered by other in-game actions.

Design Goals

  • Dynamic Interactions: The dialogue system must adapt to changes in the game's state, reflecting players' previous choices and achievements.
  • Extensibility: Easily integrate with existing and future game mechanics, such as quests, item inventory, and character development.
  • User Engagement: Enhance player engagement through meaningful dialogue that contributes to the narrative and educational goals.

Key Components

  1. Dialogue Management:

    • Utilize a robust dialogue editor that allows for branching conversations based on player choices and game states.
    • Include support for conditions and effects, enabling dialogues to trigger changes in the game environment or update the player's status.
  2. Integration with Game State:

    • Ensure dialogues can access and modify global game states, such as quest progress or inventory items, to allow for conditions like "if player has item X, say Y."
  3. NPC Scripting:

    • Each NPC should have scripts that define their dialogue paths and the conditions under which different paths are taken.
    • Support for multiple languages and voiceovers would be considered for future updates.

Existing Framework Consideration

  • Dialogic: Currently stable in Godot 3.5; pending update for Godot 4 compatibility. Known for its user-friendly dialogue editor and robust handling of branching dialogues.
  • Alternative Solutions: If Dialogic is not updated timely, assess other dialogue systems with similar functionalities and a strong architectural foundation. Consider custom development if suitable frameworks are lacking.

Implementation Considerations

  • Performance: Ensure the dialogue system does not adversely affect game performance, particularly on lower-end devices.
  • Modularity: Design the dialogue system to be as modular as possible, allowing for easy updates and maintenance.
  • Accessibility: Implement features like text size adjustments and color-blind modes to make dialogues accessible to all players.

Development Tips

  • Monitor the updates on Dialogic for Godot 4 and participate in its community for potential early adoption.
  • If opting for a custom solution, base the architecture on proven models from existing dialogue systems, ensuring scalability and flexibility.

Action Items

  • Research and evaluate the current status of Dialogic for Godot 4.
  • If Dialogic is unavailable, identify and evaluate alternative frameworks.
  • Design and implement a prototype dialogue system, either with Dialogic (if updated) or another chosen framework.
  • Integrate the prototype with a small scale NPC setup to test functionality.
  • Gather feedback from testers to refine dialogue interactions.

References

Original Task

Create a dialogue experiment such as the following.

  • we can define dialogues in an intuitive manner
  • dialogues may trigger events
  • dialogues may use variables (such as the global state)
  • dialogues can be translated

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

Status
In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions