Construct 3 dialog plugin?

0 favourites
  • 6 posts
From the Asset Store
Casino? money? who knows? but the target is the same!
  • I've been spending a lot of time over the weekend trying to find a dialog system that fits everything you would expect in a game with features such as:

    -Typewriter effect with word wrapping (that does not move to the next line mid-word)

    -Means of manipulating the text on display such as pausing between words, changing color, etc.

    -Getting lines of text from a file in a simple and intuitive way without basically having to learn programming

    What I have come across has been extremely disappointing in terms of ease of use and means of which to implement these features into my project in C2. All the examples I've seen on how to manage these somewhat basic text features (in terms of what you would find in a game) have been extremely convoluted and confusing.

    So my question is for C3, is there a plugin, object or behavior that make this seemingly basic setup into something manageable?

    To put it in another way, is it easier to handle text in C3 than in C2?

    Cheers!

  • No plugins that I know of. There are more suitable software alternatives out there for visual novel style or otherwise text heavy games.

    On the other hand, C3 does have much better support for CSS and with the new HTML object. If you're familiar with HTML and CSS, you have can have some extremely fine control over how you want text displayed.

  • I made this template:

    Markdown_Dialogue_System

    cdn.discordapp.com/attachments/225550155531812865/989114414433194005/Markdown_Dialogue_System_v1.0.c3p

    Example

    Choice Branch

    #test
    Mia : Hello.
    Amy : Have you visited our company before?
    Mia : Yes, I was here two years ago.
    Amy : Would you like tea or coffee?
    (...100)
    [Tea](#test-tea)
    [Coffee](#test-coffee)
    
    #test-coffee
    Mia : Coffee, please. With milk.
    Amy: I am afraid we haven't got any milk. I'm very sorry.
    Mia: It doesn't matter.
    
    #test-tea
    Mia : Tea, please.
    Amy: Okay.
    

    Variable in String

    Mia: Hey, {name}. What are you doing?
    

    Condition in String

    #buy-fruit
    guy : Hi, {if gold >= 1000 ? "Rich Man!" : "{name}."} You have {gold} coin. {if gold >= 10 ? "Do you want to buy {if gold > 25 ? fruit1 : fruit2}?" }
    

    Call Function in String

    #show-me-the-money
    Starcraft:S\.H\.O\.W\.\.M\.E\.\.T\.H\.E\.\.M\.O\.N\.K\.~E\.Y\.
    callFunction("AddData, gold, 1000")
    
    
    :===========================================================
    : ■ CheatSheet
    :===========================================================
    : ○ Guide in Section
    : ----------------------------------------------------------
    : text name : text
    : choice [This is a choice.](#scenes)
    : wait (...300)
    : goto (#section)
    : function callFunction("ShakeScreen, 1, 0.25")
    : ----------------------------------------------------------
    : ○ Escapes in "Text" - "This is a *string* and {variable}."
    : ----------------------------------------------------------
    : variable {string}
    : bold *text*
    : delete text~~~~
    : newline \n
    : wait for 50 ms \.
    : wait for 250 ms \-
    : wait for 1,000 ms				\|
    : display directly $text$
    : ----------------------------------------------------------
    : ○ Branch in Text - {if condition ? True : False} 
    : ----------------------------------------------------------
    : condition | < | <= | > | >= | = | == | <> | != |
    : branch | number | variable | "string" | "This is a string and {variable}." | 
    : ..........................................................
    : branch only True {if condition ? True}
    : branch True & False {if condition ? True : False}
    : ..........................................................
    : compare number {if money >= 2000 ? "Rich Man!" : username}
    : compare variable {if condition != variable ? "text1" : "text2"}
    : compare "text" {if weather = "Cloudy" ? "It looks like rain."}
    : ----------------------------------------------------------
    : Note: Use `callfunction` set variable to make more branches.
    : Note: All variables from dictionary. equal to `dictionary.Get(variable)`
    :===========================================================
    
  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • -Typewriter effect with word wrapping (that does not move to the next line mid-word)

    FYI This is now built in to both the Text and SpriteFont objects in C3.

  • > -Typewriter effect with word wrapping (that does not move to the next line mid-word)

    FYI This is now built in to both the Text and SpriteFont objects in C3.

    When I was use C3 typewriter, it was too simple to meet my needs. If you can add some functions to him, it will make it more useful.

    Someone posted a suggestion:

    construct3-21h2.ideas.aha.io/ideas/C321H2-I-326

    ---

    - Action. [Pause/resume]

    I want to pause Typewriter when I typing a specific symbol (like .,?!;), wait a few time and resume. But it is currently impossible.

    - Action. [Set playback rate]

    When Typewriter is runing, I can press a key to speed up the typing. instead of directly finishing Typewriter.

    - Condition. [On Typed]

    I can play a sound when typing.

    - Expression. [LastTypewriterChar]

    I can know the last typed character or index.

  • It's so great you bring this up! The typewriter plugin is exactly the kind of thing C3 should do so well. It's something so many types of 2d games use in different ways, but it is missing some essential features.

    I'd added my thoughts on what's vital in this post:

    construct3-21h2.ideas.aha.io/ideas/C321H2-I-38

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)