This project implements a customizable dialogue wheel component for web applications and games. Built as a web component, it provides a circular interface for selecting conversation options during character interactions, making dialogue choices more intuitive and visually appealing.
A dialogue wheel (or conversation wheel) is a user interface element that presents dialogue options to players in a circular format. Originally popularized by games like Mass Effect and Dragon Age, dialogue wheels have become a staple in modern RPGs and interactive narrative experiences.
Dialogue wheels offer several advantages over traditional list-based dialogue systems:
- Spatial organization: Options are arranged in a circle, grouping similar response types in consistent positions
- Intuitive navigation: Players can quickly identify and select their desired tone or approach
- Visual clarity: Color coding and positioning help convey the intent behind dialogue choices
- Immersion: Less intrusive than text lists, maintaining the flow of conversation
Dialogue wheels are primarily used in:
- Role-playing games: For player-NPC interactions with emotional or tonal choices
- Interactive storytelling applications: To offer readers/users multiple ways to progress through narrative
- Visual novels: For character interaction and branching storylines
- Training simulators: In scenarios requiring various conversational approaches
- Educational software: For dialogue-based learning experiences
- Web component-based: Easy to integrate into any web project
- Customizable appearance: Adjust colors, size, segments, and visual styling
- Responsive design: Works across desktop and mobile devices
- Keyboard and mouse/touch controls: Multiple input methods supported
- Integration with dat.GUI: Easy parameter adjustment through the interface
- Event-based API: Simple to connect with your application logic
Include the component in your HTML:
<script src="dialogue-wheel-component/dialogue-wheel.js"></script>
<dialogue-wheel id="dialogueWheel"></dialogue-wheel>
See the index.html file for a complete implementation example.
MIT