First of all, thanks you for using Novelty.
The idea for Novelty sprung out of my own desires to create something fun but relatively simple on my spare time. I thought a visual novel would fit that bill nicely, as I also enjoy making art and drawings.
Thus Novelty started out as a small side project of mine in 2007. I have previously worked on other games and something I noticed early on was the benefits of having a really good editor. As a matter of fact, a lot of my work with games has revolved around building editors and engines.
As I started putting together my game I did some research on other visual novel engines only to find that there really aren't many available. The ones that does exists usually relies heavily on a programmer's model where the user is expected to know or learn a complicated scripting language. Naturally, some are worse than others but overall I sensed a lack of user friendliness despite a surpisingly large hobbyist community.
With this in mind I set out to build an object oriented WYSIWYG editor for making visual novels that didn't require a lick of programming experience. What came out of that was Novelty.
As I'm typing this it has been almost two years since I started and my "simple" project has obviously grown out of its original shoes. The first alpha version was released in July 2008 and I've been updating the engine and tools ever since.
- Erik Benerdal, Software engineer and hobbyist.
Object oriented design
This is the single most important difference between Novelty and other visual novel engines.
In most other engines, the user is manually instructing the engine what to draw on the screen, often through some sort of scripting language. Print this, load that and draw it at these coordinates, etc. This is fine if you are an exprienced programmer and prefer that way of working, but it is deterring to everyone else.
You might wonder what "object oriented" really means. It essentially means that everything in Novelty is an object. Place an object in the scene and it stays there; no need to explain to the engine how to render it. There are different types of objects: image objects, text objects, video objects, etc. They all behave slightly different from one another but share some key properties such as position, size, color, etc.
In an object oriented engine such as Novelty, objects can be made up of other objects. This means that you can compose complex objects by combining a few simple parts.
Fig. 2: Using assets in a scene
Because of Novelty's generic object model, all objects need to be designed in advance. Think of it as making a "blueprint" that Novelty's graphics engine can use to render your object.
The way to create this blueprint is with a markup language called NoveltyML. It's very straight-forward and easy to use; not unlike HTML which is used to design web pages. Once you have designed an object, you never need to touch its markup again. All objects are stored in a library and can be retrieved any number of times. Another benefit of this system is that objects can be easily shared between two Novelty users.
While the syntax is easy to learn, Novelty still has wizards for loading images, fonts and sounds and they will produce the NoveltyML automatically. In case you are curious on designing your own objects, the easiest way to learn is by reading the NoveltyML reference or the content creation documentation.