SCUMM style dialog system

0 favourites
  • 13 posts
From the Asset Store
9 orchestral + 9 alternate chiptune-style arrangements of dynamic, RPG-style music for your media project.
  • I'm trying to work this one out, not sure how to store the dialog, how to recall it, how to cross off dialog that's been discussed, how to display the dialog above the characters heads in sequence, how to add new dialog sentences upon game progress, etc. Basically, I have nothing! I think it would be fussy to store all the dialog in the game as strings, but I also don't know if storing and recalling externally would be much easier.

  • Funny, I was just thinking of creating a new dialog template that mimics the one found in SCUMM's games. However, it's quite the task, not sure when I'll find the time to do that.

    One thing is certain, storing scripts externally is a must. And you should dedicate some efforts to create a proper script editing and testing tool, for obvious reason.

  • Funny, I was just thinking of creating a new dialog template that mimics the one found in SCUMM's games. However, it's quite the task, not sure when I'll find the time to do that.

    One thing is certain, storing scripts externally is a must. And you should dedicate some efforts to create a proper script editing and testing tool, for obvious reason.

    I'd love to do all this well but I'm not exactly the most proficient programmer, so it's gonna have to be hacking and handholding all the way! ?? Well, I was thinking, all we really need to store externally is the sentence, a Boolean to determine if it's available or if it's been "spent" and the next sentence in the conversation. I suppose each sentence needs a Boolean to determine if it's time to return to the dialog selector or not, but even that could be just another number from the next sentence variable. How to pull this all in game is the hard part? ??

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Magistross perhaps this could be useful?

  • It certainly could be useful, however, the file data format is probably not the first issue to worry about... unless you went for XML. XML might be the more logical choice actually... given its versatility.

  • It certainly could be useful, however, the file data format is probably not the first issue to worry about... unless you went for XML. XML might be the more logical choice actually... given its versatility.

    Trying to figure out where to start! I notice Tim Schaefer and Ron Gilbert have mentioned on numerous occasions of writing the dialog directly into the code, obviously they would have different lines for language translations and such, but they nevertheless mention writing it directly in the code, which in this case would be ScummC or whatever he called the engine. Al Lowe did the same with LSL if that's important. I doubt writing hundreds upon hundreds of lines of dialog in a separate event sheet would be as flexible as external file, though, would it?

    I'm also thinking about line length, that would be done using a multiple of the character count of each sentence? So, long sentences would last on screen longer than short ones. Then there's voice talkie, if that were to be considered, every line would have to have this character length/on-screen time ignored so the line changed when the sound file was finished, should talkie be enabled.

  • I used variables and text in a specific event-sheet, triggering them on purposes. It's easy to translate later, easy to manipulate the event-sheet out of C2 (it's a xml), easy to follow and organize (just drag and drop), easy to change, and it's visual, searchable, fast =]

    Subscribe to Construct videos now
  • I used variables and text in a specific event-sheet, triggering them on purposes. It's easy to translate later, easy to manipulate the event-sheet out of C2 (it's a xml), easy to follow and organize (just drag and drop), easy to change, and it's visual, searchable, fast =]

    Subscribe to Construct videos now

    Really? Sounds interesting, how did you associate the variables with dialog lines in a readable way?

  • Funny, I was just thinking of creating a new dialog template that mimics the one found in SCUMM's games. However, it's quite the task, not sure when I'll find the time to do that.

    Magistross Wouldn't it be somewhat quick to modify the template you already have?

    I just tried to modify mine and although it's kind of messy and ugly, Zebbi, you can probably get some inspiration, here is my example.

    And you should dedicate some efforts to create a proper script editing and testing tool, for obvious reason.

    I still didn't make one

  • > I used variables and text in a specific event-sheet, triggering them on purposes. It's easy to translate later, easy to manipulate the event-sheet out of C2 (it's a xml), easy to follow and organize (just drag and drop), easy to change, and it's visual, searchable, fast =]

    >

    >

    Subscribe to Construct videos now

    >

    Really? Sounds interesting, how did you associate the variables with dialog lines in a readable way?

    The "2" on the end mean it's the second available language, "English", translated by my brother.

    I'll be working into this game next year to release the full version. It's already green-lit on Steam. The mechanics behind dialogues are extremely simple.

    Keep a track of your dialog sequences and events and when necessary, trigger the talking action and set the text with the desired variable.

    The talking system trigger once for each dialog sequence while the currently variable is true, it avoid the waste of memory.

    My next goal will be make a type-letter-by-letter system with a shortcut system, so, when the player double tap the screen it will write the entire sequence at once.

  • Thanks, that's really helpful! As promised, here's a bit on SCUMM dialog by Ron: http://www.pagetable.com/?p=614

    [quote:309g84je]This is the command that walked an actor to a spot.

    actor sandy face-right

    actor sandy do-animation reach

    walk-actor razor to-object microwave-oven

    start-script watch-edna

    stop-script

    stop-script watch-edna

    say-line dave "Don't be a tuna head."

    say-line selected-kid "I don't want to use that right now."

  • Still having trouble getting my head around the mechanics of this. So, I guess for the speech above head I'll have a per-character sprite text attached and hidden when not in use. I'll have 5 blank Sprite texts positioned on a layer that's hidden unless speech is engaged for selecting. Now, I need to dynamically load which ever conversation is needed, and not only that, but the relevant engagement lines that haven't already been spoken/don't get removed (see ya!/are you sure you can't sell me the fruit?/etc). I need to change the Sprite text above head to the engagement line and hide the selection layer and cursor. Now, I need to figure how to sequentially change the line to the next sentence on the dialog, and the other characters. When the lines of the conversation have been spoken, the engagement lines need to change or be removed, depending on that particular tree. Is this all triggered with functions? I'm not smart enough to use external files so I'm happen enough with using a seperate sheet for dialog or even a group, but it's just functioning all the mechanics I'm having difficulty with imagining. Text speech length is easy enough, just set length to a multiplication of the amount of text in each line +/- the UI speech speed selector or if there's voices, the length of the file, but that needs to be a very global thing so everything's speed is based on that basic principle. Any suggestions on how to get started with the actual engine for this would be MOST appreciated, I can take care of building a prototype but I'd love some ideas on how to make this as painless as possible!

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