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

Integrate NPC Dialogue System #7

Open
9 tasks
brylie opened this issue Nov 5, 2022 · 1 comment
Open
9 tasks

Integrate NPC Dialogue System #7

brylie opened this issue Nov 5, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed
Milestone

Comments

@brylie
Copy link
Member

brylie commented Nov 5, 2022

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
@brylie brylie changed the title Initial dialogue system experiment Integrate NPC Dialogue System May 12, 2024
@brylie brylie added enhancement New feature or request help wanted Extra attention is needed labels May 12, 2024
@brylie brylie self-assigned this May 12, 2024
@brylie
Copy link
Member Author

brylie commented May 12, 2024

After reviewing current options for Godot 4.2 dialogue management, two main options stand out:

Dialogic looks fairly mature, but has had a long delay in releasing version 2.0 with Godot 4.x support. So, it's not currently a viable option.

Dialogue Nodes is newer, but supports Godot 4.2. It provides a simple interface for creating branching dialogues, defining variables, creating characters, and simple text effects. For now, I recommend we work with Dialogue Nodes.

@brylie brylie added this to the 0 - Preface milestone May 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
Status: In Progress
Development

No branches or pull requests

1 participant