A study in visual novel engines

March 26th, 2008 by Erik Benerdal

I’ve mentioned before that I’m working on a visual novel maker in my spare time. At first the purpose was only to practice my programming skills and try to implement what I’ve learned while working at Ksatria. Lately I’ve been wondering what my competition really looks like. I know there are other engines out there and I became curious of how they work compared to my Novelty and other engines.

From what I can tell there are no other visual editors for making visual novels. Granted, VNs are extremely simplistic in terms of programming. All you need is a simple 2D graphics engine and some sort of scripting language to set it all in motion. Had I taken the same route with Novelty I would’ve been done by now. In fact all VN engines are essentially script language runtimes.

My main issue with this approach is that it doesn’t take non-programmers into account. Visual novels are really popular in the japanese sub culture. It’s a genre as big as any other video game genre. In the west there isn’t really a big market for them so most authors are most likely hobbyists. For something as simple as a VN a lot of these engines sure make it hard for beginners to get something up and running.

It’s really hard to get any hard facts on any of these engines because most of them are japanese developed. Here’s what I found.

Ren’py
http://www.renpy.org/

Ren’py stands out among the engines because it’s created by a western developer so it has english documentation and a healthy hobbyist community. It takes the same approach as everybody else by presenting the user with a scripting language, in this case python with custom libraries. It even has an IDE, but it’s just a text editor really. It has syntax highlighting but no auto-completion (Intellisense in Visual Studio). The text editor supports a number of different languages, which leaves me to believe it’s a modified version of some other open source software.

renpy_ide.png renpy_demo.jpg

NScripter/ONScripter
http://nscripter.insani.org/reference/

This one seems to be popular with some japanese VN companies. It wields it’s own proprietary scripting language, but there’s no IDE to speak of (notepad yay!). Just a compiler. Because of it’s popularity and the games I assume the language is competent enough, but I won’t dwell on reseaching the nuances of the language itself. In fact, I don’t really care. Forcing the user to use notepad or find their own text editor is inexcusable in this day and age. 

nscripter1.jpg nscripter3.jpg nscripter4.png

Blade engine
http://www.bladeengine.com/

This one is being promoted on DLSite.com, one of, if not the biggest retailer/publisher of visual novels. I don’t really have anything good to say about this one. Of course there’s no real IDE, only some HTML-hack that you can use. But at least notepad lets you change the font. The scripting language is just sad. At a first glance it looks horribly obfuscated and not very user friendly. You can tell it’s designed by a programmer for other programmers, but even then the design itself is quite amateuristic. The engine is free, but you need to pay $30 USD if you want to be able to use conditional if-statements. That’s just stupid.

blade_notepad.gif bladeide.jpg bladesample.jpg

Novelty

Let me round off this post by pointing out some of the main differences between these engines and my own.

Most obvious is that Novelty is a user-friendly WYSIWYG editor. It has an easy point-and-click interface with instant visual feedback. One of Novelty’s design goals was from the very beginning to not require any programming or scripting. Novelty still supports scripting (via Angelscript), but it’s more considered as a feature for power-users who want full control over their game and by no means a requirement. Novice users will still be able to make their own visual novels without writing a single line of code.

In all of the engines above, the coder has to manually call functions to draw objects on the screen. For example:

image eileen happy = "eileen_happy.png"
show eileen happy

In Novelty, a novel is made up of a series of pages. Each page has a scene. Instead of loading a texture file and asking the engine to draw it through code, Novelty will show you a list of all of the available assets. By clicking any of the assets it will be instantly created and placed in the current scene. Assets can either be imported into the editor or through an XML-interface. The latter might seem overly complicated, but this is another way for power-users and content creators to design complex multilayered objects using XML (see screen below). I also made an editor for designing objects with XML, because I wanted to give the same instant visual feedback as you get in the VN editor, while you’re typing the XML.

Here is the equivalent XML for the code above:

Another thing I want to take advantage of is the community aspect of making visual novels. Obviously you want to share your games with other people but what if you wanted to share your custom objects and characters. Because of the XML-based asset system, Novelty knows exactly how to build an object, how it should look and behave. There’s no code involved with presenting it in the game and one side effect of this is that this makes the assets very autonomous and easily shared. Users will be able to compile content packages and share them with friends. Artists who might not want to make their own games can still create characters and artwork for other people’s games.

Novelty main editor Break-out clone created with scripts, playing in the editor Novelty XML designer Visual novel playing as a stand-alone executable

Click to watch a video demonstration


24 Responses to “A study in visual novel engines”

Feed for this Entry
  1. 1

    Zareth Says

    Hi Scabbers! Remember me? And yes I’m just putting the comment here to say hi since I don’t really use ICQ anymore.

    Anyhow, hope you’re enjoying your work over in Singapore as you seem to look like in your latest photo.

  2. 2

    Erik Benerdal Says

    Yeah of course I remember ^^
    I’m not in Singapore anymore though. Working remotely.

  3. 3

    Pat Says

    Hey Erik, came across this site while searching. Its not often I’m this impressed by something, but this program your working on is amazing. Keep up the good work!!

  4. 4

    Erik Benerdal Says

    Thanks. I have a naturally tendency to overwork things and this project is another case of that. The original plan was only to do something simple that I could use privately but the truth is that this kind of tool simply doesn’t exists and there’s a huge need for it in the VN making community.

    It’s also a bit of a pride thing. I want to beat the competition :P

  5. 5

    canikizu Says

    I came across yours when searching for visual novel maker, too.
    Looks really awesome and potential.

    Looking forward to it from now on :)

    and thanks for the review of those vn makers :) .

  6. 6

    Erik Benerdal Says

    I’m glad you liked it. To be fair you should know that my position as “reviewer” is obviously biased. xD
    They’re not reviews as much as they are first impressions.

  7. 7

    Langknow Says

    Hey…

    So when are you releasing this program of yours?

    I’m getting excited.

  8. 8

    Erik Benerdal Says

    When I’ve implemented all the essential features and fixed all the bugs. Considering I can only work on Novelty on nights and weekends it’s going to take a few more months.

  9. 9

    wyvern Says

    Is it possible you could release a beta?

    I really can’t wait for it. I have been wanting to create a visual novel for awhile now and all the code of the others just gives me a headache.

  10. 10

    Erik Benerdal Says

    I will. I’m crawling ever closing to a releasable version.

  11. 11

    wyvern Says

    Yay!

    Will your program have the option of including an option for a player to choose his/her character name?

    Also, will it have the option to include the ability to have two or more main characters that you get to choose from?

    Finally, will it have the option of having a completely different path/visual novel open up if you complete all of the original paths? An example of this is Ever17 where you can’t play the final path to reveal everything until you play both main characters and complete all of their paths.

    There are other options that would be nice too that I have yet to see in a visual novel, like choosing your character’s appearance, at least the basics (hair, eye color. Of course, the designer would need the artwork, but the program would need to know to switch all the artwork to the appropriate image files in the game if the person say chooses red hair instead of brown.

  12. 12

    canikizu Says

    Really?
    Can’t wait to see it :D . I’m looking forward to it, too.

  13. 13

    Erik Benerdal Says

    wyvern: Yes to all of the above. Although not right away.
    The latter idea about customizing the characters is a very specific case that I won’t be hardcoding into the engine. However, you should be able to do it using scripts.

    I know I’m ranting about the problems with scripts in this post, but it’s there for advanced users who want to extend their games beyond the basics and make them unique. Besides, you can easily import scripts written by other people who might be better at programming.

  14. 14

    Root Beer King Says

    Wow, this is just what I was looking for! Too bad it isn’t out yet T_T ! Oh well, I can’t wait for the release of this! As I just recently decided to pull a “Welcome to the NHK”, and make my own eroge to hopefully sell and make a few dollar dollar bills ya’ll.

    I’m a very visual person, so all those coding based VN makers were not so good for me. I’m still gonna try my best to learn how to use one of them, but once again I’m really looking forward to the release of “Novelty” and I hope you can get it out soon.

  15. 15

    Erik Benerdal Says

    Shouldn’t be much longer now.
    I love that manga, btw.

  16. 16

    Tsukiyo Says

    I am very interested in trying out your engine! Recently, I’ve decided to try my hand at creating a visual novel, but as coding is not my forte, I’ve been forced to rely heavily on the capabilities of any programmers that happen to show an interest in my idea. This is exactly the sort of thing that I’ve been looking for!

    I’m looking forward to its release, and I’ll be sure to keep checking back here…^^

  17. 17

    Cluesev Says

    I also stumbled upon you program while searching for a visual novel engine. I must say compared to the others this seems so much easier to use. I have been taking programming for about a year and I still find using the others a pain. I’m not a great programmer but I’m not bad either I find your work impressive and inspiring . The need for a good VN engine has been around for a while its nice to see someone finely taking a shot at making one and its looking rather nice. keep up the great work I’m looking forward to your first release.

  18. 18

    Fate Says

    Cant wait fro the it. I came a cross it while looking for a VN maker. Really good idea it will help a lot of people who want to make some visual novels

  19. 19

    Mark Says

    Any chance this will be released for Linux as well?

    It would be nice, even if I do know how to program sufficiently to use the others without trouble. Some things just seem like they would be faster this way, and I like some of the motion effects you have (I haven’t seen them elsewhere: they’re quite nice).

    Now, if you don’t plan to issue it for Linux, will you at least be able to issue a player for Linux? I mean, something that allows Linux users to read/play visual novels made with it—not something to make them with, I mean.

    What about Macintosh?

  20. 20

    Erik Benerdal Says

    A Linux version is unlikely. Besides the fact that the graphics engine is built upon DirectX I simply don’t have any experience with any OS other than Windows.

    That said, the source code is available online and Novelty relies heavily on open formats, such as XML, so the possibility of a non-windows version is there. But I won’t make it.

  21. 21

    Tsukiyo Says

    Do you happen to have a time-frame in mind for Novelty’s release? Do you think that perhaps you’ll have a beta at least released before the end of the year, or shall I not start looking for it any earlier than next year, or…?

  22. 22

    Aerii Says

    Found this when looking for a visual novel engine on Google. One that didn’t confuse the heck out of me, preferrably. The closest thing to “coding” I’ve ever done was html so I didn’t understand what the heck I was doing when I tried to use Ren’py. Thank you for working on this project and for thinking of people like me!

  23. 23

    Erik Benerdal Says

    Tsukiyo: It’s closer than you think. I will make a first release soon.

  24. 24

    Erik Benerdal Says

Leave a Reply

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>