What is SUDS Pro?
SUDS Pro is a text script driven dialogue system, that can run complex branching dialogues with advanced features, and also integrate with camera systems, cutscenes and character animations, among other things.
SUDS Pro builds on SUDS, an open source dialogue system (written by the same person!). This Pro version adds ancillary functionality and a convenient marketplace install, but if you'd prefer to build out the extras yourself, you can totally just use open source SUDS for free if you want. See Why SUDS Pro for more information.
A typical snippet from a dialogue script in SUDS might look like this:
[event FadeOut]
[event CharacterMove `Player`, `PlayerMark`]
[event FadeIn]
[event WaitFade]
[event CharacterAnim `Manny`, `Wave`]
[if {RepeatVisit}]
Manny: Welcome back! What can I do for you?
[else]
Manny: Hello, and welcome to the demo for <Em>SUDS Pro</>!
Manny: SUDS Pro is an advanced dialogue system, where you can write all your dialogue in
convenient <Em>text scripts</>.
Manny: It also allows you to perform <Em>camera cuts</>, trigger <Em>animations</>
on characters and cameras, play <Em>cutscenes</>, and more!
[set RepeatVisit true]
[endif]
:mainchoices
* Feature Summary
Player: How about a quick summary of the features of <Em>SUDS Pro</>?
Manny: Sure thing!
We'll talk about exactly what all these things mean later, but you can probably already infer a lot of it already.
Why Text Based?
There are a lot of dialogue plugins available for Unreal Engine, and most of them use some kind of graph editor. So why do we use text scripts instead?
In my experience, graph-based dialogues become unwieldy very quickly once you actually start to build out a non-trivial amount of dialogue. While graphs are good at representing branches, they tend to spread out the actual dialogue text in a way that's much harder to read back, review, and edit than if it were just in a simple text document.
There's a reason that movie scripts have stayed mostly the same format for decades!
Of course, games have to deal with player choices and other branching dialogue, but you can accommodate those in text, and the result is that the bulk of your script is much easier to read. Plus, because the script is plain text, you can review changes over time very easily because source control deals with it much better.
SUDS is partly inspired by Ink and Yarnspinner, which took the same view.
Features
So, what can SUDS Pro actually do?
Core dialogue features:
- Multi-line speech support
- Branching dialogue via player choices
- Conditional branching via
ifclauses - Flow control via goto, gosub, conditional branching and random lines
- Persistent variable state
- Send events back to code/blueprints with any number of arguments
- Supports all the text variable substitution and formatting features in the same way Unreal does
- A convenient in-editor testing tool
- Localisation support, including adding translator comments
- Easy integration with save games (SPUD or otherwise)
Extended features:
- Convenient higher level interface for driving UIs
- Perform camera cuts synced to dialogue lines. Over-the-shoulder shots, wide shots, whatever makes sense for the flow of the dialogue
- Add camera effects
- Easily add motion to cameras for a dynamic feel
- Drive character actors, moving them to marks, playing emotes, changing their state
- Run cutscenes, and synchronise between dialogue and cutscene events
Next Steps
Example Project
To get up to speed quickly and see the kind of thing you can do, check out the Example Project.
Tutorial
The Tutorial will teach you how to write your first script, and how to slowly expand it to incorporate camera changes, character animations and cutscenes.
Full Reference
Want to jump in the deep end? Then the Full Reference Documentation is where you'll want to start!
About SUDS Pro
If you're wondering why SUDS Pro exists, and what the relationship is to the open source SUDS library, allow me to explain.