• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Asset - Scripts Edge VN - Advanced, Easy-to-Use Visual Novel Engine

L

LukeLC

Guest

Edge Visual Novel Engine (Edge VN)
Marketplace:
https://marketplace.yoyogames.com/assets/1591/visual-novel-edge-engine
Primary Category: Scripts
Price: $19.99
Modules: Any
Support: http://www.thinkboxly.com/p/contact.html
Demo:
Description:

Edge VN is a fully cross-platform text, character, and scene engine designed for use in full visual novels, RPG dialog, and any other genre of game in need of robust text presentation! Unlike many other GameMaker text engines, Edge VN operates entirely in GML and does not require the use of external script files. It is also highly optimized for maximum performance, pulling off advanced text effects like variable color, bold, italics, and more without inhibiting framerate, even on mobile devices.

Edge VN features a unique 'text block' system for organizing visual novel events into manageable segments and makes it easy both to display just one scene in the context of a larger game or string many text blocks together for a seamless visual novel from start to finish. This also means creating branching paths is as easy as following a flowchart and executing custom code as simple as dropping a few lines into a Create event.

Whatever your story, there's a way to tell it with Edge VN!

Features:
  • FAST text drawing technique is highly optimized and has almost no performance impact, and other elements have been designed with minimum impact in mind

  • Advanced, yet easy-to-use text engine with support for a typewriter effect, multiple colors, and hyperlink-style 'reference links' using simple markup directly inside Game Maker Studio

  • Static and dynamic character cut-ins with automatic and extensible animations!

  • Background scene engine with extensible effects system!

  • Branching dialog options system (added by popular demand!)

  • Support for voice-acted dialog or sound effects

  • Elegant backlog for reviewing past text at the touch of a button

  • Supports all control methods, and even has an auto mode!

  • Additional tricks and tools (such as adding hex/HTML color notation support to GMS!)

  • Fully customizable - tell YOUR story!
 
G

GdnTn

Guest
I just picked up my copy yesterday. Played around with the demo and read the docs. It seems very friendly and hassle free to use. Planning on implementing it within the next week or 2!
 
R

Radiant-Cadenza

Guest
This is great as a dialogue engine for GM, but at it's current price point, it's worth comparing it to a dedicated VN tool like Tyranobuilder or Ren'py if you're looking to make a more text based pure VN, and when you do that there are a few small places where it comes up just a tad short.

1st thing: I encountered a bug which causes the game to crash if the player opens, then closes, an empty text log. So this only happens when the player tries to open the text log on line 0 of the first text block of a game, and it's easily prevented by disabling the log command until after line 1, but it still feels like an oversight.

There's no skip or fast-forward features, which are common to most other dedicated visual novel engines. I personally can live just fine without it, but it's a nice quality-of-life feature many VN players have come to expect.



It seems that when I set a font, it is set for an entire text block object. I would like to switch between fonts right in the middle of a text line. I would also like to give different characters/speakers different fonts for name text. Perhaps both could be accomplished by adding a font-changing tag to the existing markup tags. This would allow me to have characters speak with different fonts, or to give certain words bigger or smaller fonts to simulate yelling or whispering.

I would also like a markup tag for changing the typing speed of particular sections/words of text and inserting pauses. Many games will have characters talking slowly or blurting out things and this would be represented by alterations in the typing speed of the words, and I would like to use the same effect.

I can't seem to find instructions for adding a manual line-break other than a warning that using the game-maker-standard # isn't recommended. What is the recommended way to add a manual line-break?


This would be a perfect 6 star asset IMO if some of those features were tweaked or added.


I will give props for the clickable link feature that triggers custom events, though. I haven't seen that feature in any of the other VN assets I'm comparing this to, and it can be a very cool feature with some creativity.
 
Z

zircher

Guest
Other VN engines have been mentioned and the above questions are solid. Would like to see the answers. I'll toss in one of my own. This is GameMaker, can I add mini-games and the like to the story? For example, I want a JRPG battle game mixed in, or a real-time maze, or perhaps a shopping/inventory game? Also can the outcome of those mini-games impact which branch you take?
 
L

LukeLC

Guest
Appreciate the responses. I'll do my best to answer the questions and points you've raised. But first, I have a question of my own in regards to this:

1st thing: I encountered a bug which causes the game to crash if the player opens, then closes, an empty text log. So this only happens when the player tries to open the text log on line 0 of the first text block of a game, and it's easily prevented by disabling the log command until after line 1, but it still feels like an oversight.

There's no skip or fast-forward features, which are common to most other dedicated visual novel engines. I personally can live just fine without it, but it's a nice quality-of-life feature many VN players have come to expect.
What version are you using? The empty log crash was fixed a long time ago, and there most definitely is a skip function. It's called edgevn_goto and allows you to jump directly to any point of your visual novel that you please (even going backwards, although it's not perfect). And if you wanted a fast-forward function, all you'd have to do is run edgevn_continue in a normal input event (not 'pressed' or 'released') so it's repeated every frame.

It sounds to me like you may be running a very out-of-date build if you're encountering these kinds of things.

It seems that when I set a font, it is set for an entire text block object. I would like to switch between fonts right in the middle of a text line. I would also like to give different characters/speakers different fonts for name text. Perhaps both could be accomplished by adding a font-changing tag to the existing markup tags. This would allow me to have characters speak with different fonts, or to give certain words bigger or smaller fonts to simulate yelling or whispering.
This is now possible as of version 1.8.0. Fonts are set per-line and the edgevn_draw_text font is merely an override. Whereas before setting the font to -1 would default to 12pt Arial, -1 in edgevn_draw_text reverts to the font set in edgevn_create_text. And with the new 'break' option that enables stringing multiple instances of edgevn_create_text together, you can indeed achieve variable fonts in a single paragraph, although proper alignment can't be guaranteed if the difference in font size is too dramatic.

I would also like a markup tag for changing the typing speed of particular sections/words of text and inserting pauses. Many games will have characters talking slowly or blurting out things and this would be represented by alterations in the typing speed of the words, and I would like to use the same effect.
Duly noted, I will definitely consider this. I have considered it before, but it's not as simple an addition as it sounds for a number of technical and logistical reasons. But now that the rest of the engine is more mature, it wouldn't hurt to revisit the idea.

I can't seem to find instructions for adding a manual line-break other than a warning that using the game-maker-standard # isn't recommended. What is the recommended way to add a manual line-break?
Again, sounds to me like you're running on an out-of-date build. You can use # for linebreaking now.

I will give props for the clickable link feature that triggers custom events, though. I haven't seen that feature in any of the other VN assets I'm comparing this to, and it can be a very cool feature with some creativity.
Thank you!

This is GameMaker, can I add mini-games and the like to the story? For example, I want a JRPG battle game mixed in, or a real-time maze, or perhaps a shopping/inventory game? Also can the outcome of those mini-games impact which branch you take?
Absolutely! Drawing backgrounds is totally optional. Use your own game content as the background if you like. Same goes for game results impacting visual novel sequences. Vice-versa would work as well--choosing a dialog option in Edge VN could launch you into different games depending on your choice.

Edge VN's text block system is meant to be thought of like a flowchart--think of each node on your flowchart as a separate text object. The events that lead from one to the next can be anything at all, and there's no reason your text objects can't run additional code besides Edge VN as well.

In fact, this is really the key feature that Edge VN offers that other visual novel engines don't: it's GameMaker. And believe it or not, GameMaker is not very friendly to visual novels at all. Achieving good performance with features even remotely equivalent to standalone VN engines is a feat that's taken me far longer and more research than I ever imagined it would. But the payoff is that with GameMaker as the backend you aren't limited to just visual novels. You could even put Edge VN on top of D3D functions, or draw it in D3D (I've tried it myself--the possibilities are intriguing). That's something Ren'py and Tyranobuilder just don't offer. Plus with GameMaker there's a lot of potential for polish. Ren'py and Tyranobuilder visual novels can be spotted from a mile away even in the best of hands. But GameMaker makes it possible to perform lots of smooth animations and transitions. It just feels better and looks more professional.

But enough of me sounding like a used car salesman. I hope I've been able to answer your questions, and if you have more feel free to respond back and/or check out the documentation online at docs.thinkboxly.com (newly launched!)
 
R

Radiant-Cadenza

Guest
What version are you using? The empty log crash was fixed a long time ago, and there most definitely is a skip function. It's called edgevn_goto and allows you to jump directly to any point of your visual novel that you please (even going backwards, although it's not perfect). And if you wanted a fast-forward function, all you'd have to do is run edgevn_continue in a normal input event (not 'pressed' or 'released') so it's repeated every frame.

It sounds to me like you may be running a very out-of-date build if you're encountering these kinds of things.
I was using 1.7.0. (had it for about a month or two now.) I didn't realize there was an update and it certainly has enough improvements that it's worth the effort to upgrade my project.

When I mentioned a skip function, I didn't mean edgevn_goto, (Which is definitely useful! Don't get me wrong.) I was thinking how several dedicated VNs have a feature to speed past previously read text and it automatically stops skipping when you hit an unread line or a choice branch. In order to do something like that the way those engines handle it, you'd probably need to have persistent global variables storing which lines have been displayed before, which is honestly likely far more trouble than it's worth on the backend. It didn't occur to me that I could accomplish a similar feature by running edgevn_continue every frame. I could just assign it to the ctrl button or something and it'd stop skipping when the player releases the button or a choice branch is displayed, so it's more than good enough for simple fast forward function for players who want the speed through the dialogue on repeat playthoughs. (Which is how many RPG maker games handle it)

Thanks for the prompt and thorough responses.

The last update pretty much took care of 95% of my concerns so you were already way ahead of me. I feel kind of dumb now for not thinking to check for updates first.
 
L

LukeLC

Guest
Hey, not a problem. Glad the updates are useful to you!

As far as a fast-forward function goes, the edgevn_continue method would stop at dialog choices. It wouldn't necessarily have to be in an input event either--you could put it in an 'if' statement in the Step event and make it hands-free if you wanted to. Getting it to stop at unread text would be possible and wouldn't even require storing that much information--just the object index and string index of the most recent line. The tricky part would be accounting for dialog options in that any un-chosen options should also count as unread even if they occur before the latest block/string. Again, possible, but with the other options currently available I'm not sure how great a need for it there is. It would also take Edge VN into external data territory which isn't something I really want for the asset--I wrote Edge Engine Filesystem for that. Storage is a highly personal thing for each project and I wouldn't want Edge VN writing mystery data to people's hard drives or creating extra files that would be better off merged into a single save.
 
Top