[WIP] Visual Novel Engine in 100 Events

  • I'll try to put out a cleaned up 100 event version that works with the free version of Construct 2. After that we'll see, I have not decided yet, since that then would probably involve some more reorganizing of event since limitations wouldn't matter anymore and I'm not sure if I have the time

  • Ah I see I'd personally love to see features like skip and autoplay included, but I can understand why you might want to hold back.

    Still, great work so far!

  • Skip and autoplay will be within the 100 events.

  • I didn't see this topic before... I'm making something similar for our (RisingPixel) next one game : KanoJaws

    In Kanojaws it's very different because is an hybrid novel-datingsim-action-running game, but the basic concept behind the "novel phase" is something like that.

    BTW Good Job bro

  • hey guys, I managed to do a small update:

    version 0.7; current number of events: 98

    https://copy.com/vi8T3jeZALnD8PFR

    http://strategy-investor.de/mgz10/vnengine/

    I'm encountering really bad fps, although most events are triggered. Guess the problems are the transparent, "big" sprites. Not sure how to improve the performance - if someone knows how to improve it or sees the fault for the bad performance in something else - please inform me <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">.

    newly added:

    • auto mode
    • skip mode
    • voice functions to play sounds for corresponding text lines

    reminder for me personally what needs to be added, that will hopefully fit in the two remaining 2 events:

    • disabling the save and load button while there is no save state selected
    • sfx volume and hopefully loop control via the script
    • switch from webstorage to localstorage, which was newly added
    • give each button its own animation, so code gets more readable and exchanging buttons more straightforward

    Also forgot which bugs occured with saving/loading, need to check that out, still. If you stumble upon one, let me know.

  • Can I use your engine to make a picture novel?

    It is for kids, with teddy bears and some other plushes.

  • When I was making a prototype, I have found an error.

    If you have 2 characters on the screen, and change the mood of one character, the program changes both of them to the same.

    In this case I inserted 'image | carl_suspicious | 1' to your example, and I got two suspicious Carls.

    anchor | scene2
    background | scene2
    image | carl_happy | 1 | xleft | ybot
    image | steve_happy | 2 | xright | ybot
      text | s | Awesome!
      move | 2 | xmid |  | 1 | skip
    image | carl_suspicious | 1
      text | c | You did it! Your decision-making is unparalleled.
      move | 1 | xright |  | 2 | wait
      sfx | yeah
      choice | success | 1 | Go back to the main menu. | xmid | ymid
    image | clear | 1
    image | clear | 2
    goto | start[/code:3p81wu29]
  • It was a quick fix (I hope so).

    In first image function block the image was not selected.

    I added a condition, and now it works:

    Pick image where image.id = tokenat(f.param(0),2," | ")

  • Yes, feel free to use it for whatever, consider the events open source (I'm no expert at licensing, so I don't know if a capx can be licensed as GPLv3).

    image: You are completely right. I will change that in the next version. My bad.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Next update, this time 100 events are reached.

    version 0.8; current number of events: 100

    download .capx

    Preview

    changes:

    • switched from WebStorage to Localstorage - this used up some extra events
    • save and load buttons are disabled now, when no appropriate save slot is selected
    • music, voice and sfx volume global values added (to be later set up in an options menu, or by the user in the event sheet)
    • sfx and voice volume can additionally be modified by the script; forgot to set it up for music as well, will do so later
    • each hud button now has its own animation, it'll be possible to use animated buttons and it's more easily understandable where which button should be placed, when one wants to modify it
    • hopefully fixed a bug with loading
    • fixed a bug that appeared when changing images (thanks

      lipstick)

    I'll tidy up things a little and then that's probably the end of the 100 event VN engine.

    Here's an updated list of functions the script accepts (explainations in brackets if not obvious):

    • music | filename | volume (volume in added dB; so -10 makes it about half as loud; volume not mandatory)
    • sfx | filename | volume
    • voice | filename | volume (voice will be played together with the text function that came before it; it must be used after a text function or you'll run into a frozen game if I'm not mistaken)
    • character | displayname | charactertag | color red | color green | color blue | fontname (tag is used by the text function to assign a text to a character; RGB values from 0 to 255)
    • text | charactertag | text to display
    • choice | decision | value added to decision | text to display on the choice button | button coordinate x | button coordinate y (you can define tags for coordinates in the event sheet, too; I've set up xleft, xmid, xright, ytop, ymid, ybot for example)
    • wait | seconds to wait
    • background | filename (backgrounds are expected to be .jpg, but you can change that in the event sheet if needed)
    • image | filename | imageid | coordiante x | coordinate y (file extension is expected to be .png; if filename is "clear", it will destroy the image; using the same image id in your script will enable you to change an image instead of creating a new one ); coordinates are only mandatory when creating a new image
    • fadein | imageid | duration
    • fadeout | imageid | duration
    • move | imageid | coordinate x | coordinate y | duration | mode (leave a coordinate empty if no change should be applied; modes available are "skip" or "wait" - skip will continue in the script immediately, wait will continue with the script after the duration is over or the screen was touched)
    • require | on/off | decision | value (on checks if the decision's value is at least at value; if it is, script will continue normally, if it doesn't the script will skip until the corresponding "require | off" appears, imagine it working like brackets)
    • anchor | anchortag (marks a line in the script so that you can jump to it)
    • goto | anchortag (jumps to the corresponding tagged line)
    • set | decision | value (set the value of a decision; if decision is "all", all decisions will be set to value)
    • macro | macrotag (set start and end of a macro, in the lines of the macro use "/x" for a string that will get substituted by runmacro)
    • runmacro | macrotag | string that will be filled in for "/x" (runs the macro)
  • Nice work and grats on finishing with the 100 events

  • Thanks, at least I could get all the main options in (although I cut something like deleting saves).

    I thought about the next stuff that could be added:

      images / background / screen:
    • transitions (crossfading)
    • effects (maybe screen shake, color filtering, not sure what else could be useful here and what's available in construct) text:
    • enable to hide the text box by script
    • split name display and text display over two separate text objects to give better control over where the name is displayed in one's design
    • multilanguage support (this will end up in the options obviously ^^) music:
    • better control over when it is played at what level user interface:
    • options menu
    • gallery menu
    • music menu
    • scene replay menu
    • exit button
    • deleting savegames
    • exporting and importing savegames to move them from one device to the other (could probably be combined with a database storage one could offer to his players) compatibility:
    • options for different screen size support? usability:
    • better flow control
  • Very interesting! I was thinking in to create a VN engine too, because I pretend to develop a VN.

    Thanks God I searched Scirra forums first! Your engine is very good! I pretend to test it better.

    Can it to be used for commercial games?

  • Do whatever you wish with it. I wouldn't mind if you point me towards the result of your work, if you chose to use it, to take a look - but it's not a requirement ^^.

    You can see that there is still a lot that can be improved and added as I listed and the code is sometimes written a bit not-so-logical to enable me using less events, but other than that it should be usable.

  • Hi mindfaQ

    Just wanted to thank you and congratulate you for this great job! It will help us Game Developers that are willing to do VN with Construct 2 a lot .

    Wish you all the best!

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