[WIP] Visual Novel Engine in 100 Events

  • Does this work with the free version of Construct 2? I was going to use Webstory Engine or Renpy, but the additional features in Construct 2 make this definitely worth trying out!

  • Hot dang! I can't wait to see what comes of this!

  • Does this work with the free version of Construct 2? I was going to use Webstory Engine or Renpy, but the additional features in Construct 2 make this definitely worth trying out!

    Yes, it works with C2 free. But you can't extend it, because it already sits at approx. 100 events. I would recommend using an established engine, or even better make an engine with C2 with the Personal Edition that's not bound to free version limits (and thus a lot better organized, encapsulated, readable).

    Looking back at this, I see many areas of improvement (partially because of the limits, but also because I keep learning).

  • Hello mindfaQ,

    I've been working on tweaking your engine to allow the Player character to talk to different NPCs and call up dialog, as well as a system to save values for choices using Rex's CSV plugin so if a certain value is at a certain number, it will change the dialog. I got everything working, I think! Everything is still under 100 events. I'm wondering if it's OK if I upload the in progress .capx?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • There already is a system to save choices and pick dialogs accordingly, although its not perfect.

    I don't mind if you upload your own iteration of the project .

  • Great work indeed.

  • Hi Mindfaq!

    Sidescroller with Dialog in under 100 Events (in progress!)

    https://www.dropbox.com/s/16knzyn4rpd8rz8/sidescroller_dialog_100events-singlefile.capx?dl=0

    (needs Rex's CSV plugin http://c2rexplugins.weebly.com/rex_csv.html)

    Here is my work in progress! I am going to work on tweaking the dialog branching system so it can check for multiple variables instead of just one, but for now I kept it simple.

    I added a few functions such as tweaking the dialog position (so if the character appears on the left, the dialog can also appear on the left, etc), changing text speed, and other little things.

    I deleted the background function and had the image function handle backgrounds to allow fading between background images. However, I have a weird problem with the background image where it doesn't center correctly (it settles to the side instead of the center even though I try to make it center), so I had to compensate by adding an offset.

    I also sometimes still have a problem with flickering where you can see the text in the wrong position or the textbox in the wrong size for just a frame (probably due to browser lag?). I put in a lot of different measures to counteract it but I wonder if there's a foolproof way to prevent it? It's an extremely minor problem so I don't mind if there is no solution to it.

  • "I also sometimes still have a problem with flickering where you can see the text in the wrong position or the textbox in the wrong size for just a frame (probably due to browser lag?). I put in a lot of different measures to counteract it but I wonder if there's a foolproof way to prevent it? It's an extremely minor problem so I don't mind if there is no solution to it."

    It's because the text object does not return the text width and height of newly set text in the same frame, but only in the frame afterwards. One fix would be using spritefonts (they always return the correct text width and height)

    Theoretically there could also be a workaround with roughly determining the height and size based on empirical observation (creating a dictionary where the mean width of each character can be looked up) - then add a bit of leeway. But it won't be exact, if you don't wanna go and make a science out of it (or use a monospaced font) because of kerning etc..

  • Ahh thank you very much for the advice!

    I also would like to know if there is a way to continue the text after clicking without clearing the previous text? For example, one click shows "I like dogs." and then the second click continues the dialog in the same box saying, "I like dogs. They are cute."

  • It's not easy without increasing event count, but can probably done by adding a keyword in front of the text, that will tell your system to append instead of setting the text blank.

    set dialog text to find(scripttext, "append: ") > -1 ? text_dialog.text : ""

    So if you append, the text does not get cleared.

    You also need to modify texttoprint in a similar fashion. If append: is in the text, replace it with an empty string.

    It's all kind of hacky

  • Hi Mindfaq! Nearly a year later! I'm so sorry for the late reply, life got very busy. I feel like working on the game again!

    Thank you so much for the advice! I'll try that out.

  • Hello,

    Sorry but the links are down. Can you reupload it?

    Many thanks!

  • result v1.0: copy.com/KCTlxMno6FGbhQto

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

    code is not very clear and organized due to trying to stay within the 100 events limitation

    Hy guys, I know this last post but the link was broken. Can you reupload again, please? I need it and really helped my work. Sorry my bad english. Thanks...

  • Hi!

    I will be very interested as well! mindfaQ Can you reupload it please?

    thanks!

  • sorry for the necro... Does anybody have the .capx files or knows where they can be downloaded/purchased? I would love to try it (I'm currently working on a VN myself in renpy) but I would like to give it a try in construct if possible! Thanks!

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