Thread overview
Project DVN - Visual Novel Engine
Dec 12
bauss
Dec 14
bauss
5 days ago
bauss
4 days ago
bauss
2 days ago
bauss
2 days ago
bauss
2 days ago
bauss
2 days ago
Dennis
1 day ago
bauss
December 12

Project DVN is a free open-source visual novel engine written in D.

It's in early-development phase right now, but has most basic features already such as dialogue rendering with text/options, characters, images, animations, music and sound effects.

It uses SDL2 bindings through derelict.

The plan is to eventually have a fully-fletched user-friendly engine. Right now it's still a little technical to use, but in the future it'll be better.

A website will eventually be made as well with guides/tutorials etc.

For now there's just an example for building on Github.

There's much more to come. This is just version 0.0.2

Dub: https://code.dlang.org/packages/dvn
Github: https://github.com/ProjectDVN/dvn

Preview: https://i.imgur.com/F28Y9Sr.png

If you have any issues or questions feel free to ask or create an issue on Github.

December 14

On Thursday, 12 December 2024 at 22:58:14 UTC, bauss wrote:

>

...

Version 0.0.4 has just been released.

Since 0.0.2 and 0.0.4 the following has been done:

  • Added an "Act View" used to display before an act begins.
    Preview: https://i.imgur.com/AQp0nBn.png

  • Saves now contain background image and music, thus you don't have to specify it for every scene in your scripts.

  • Character names aren't dependent on characters anymore and thus names can be displayed without a character is being displayed.

5 days ago

On Saturday, 14 December 2024 at 12:06:13 UTC, bauss wrote:

>

On Thursday, 12 December 2024 at 22:58:14 UTC, bauss wrote:

>

...

Version 0.0.4 has just been released.

Since 0.0.2 and 0.0.4 the following has been done:

  • Added an "Act View" used to display before an act begins.
    Preview: https://i.imgur.com/AQp0nBn.png

  • Saves now contain background image and music, thus you don't have to specify it for every scene in your scripts.

  • Character names aren't dependent on characters anymore and thus names can be displayed without a character is being displayed.

We're now at version 0.0.9 and here are the change logs since 0.0.4

  • Added dynamic message level. Allowing messages to be received dynamically N ticks instead of hardcoded 42 ticks.
  • Fixed music not playing after leaving settings.
  • Added default character name colors
  • Fixed background loading order
  • Added color settings for dialogue panel and name panel
  • Added events - see https://github.com/ProjectDVN/dvn?tab=readme-ov-file#events

Events are basically functions that can be called to do different things with the engine.

This avoids having to modify the source code of the engine to do certain things.

Example:

public final class Events : DvnEvents
{
	import zid;
	import dvn.views.gameview;

	public:
	final:
	override void renderGameViewCharacterName(SceneCharacterName characterName, Label label, Panel panel)
	{
		panel.position = IntVector(150, 150); // The name panel will always be displayed at 150x150
	}
}

For a full list of events please see the link above.

4 days ago

On Thursday, 12 December 2024 at 22:58:14 UTC, bauss wrote:

>

Dub: https://code.dlang.org/packages/dvn
Github: https://github.com/ProjectDVN/dvn

Preview: https://i.imgur.com/F28Y9Sr.png

I've now added a wiki page and alongside it a guide on creating your first visual novel:

https://github.com/ProjectDVN/dvn/wiki/Creating-your-first-visual-novel

2 days ago

On Monday, 16 December 2024 at 23:07:28 UTC, bauss wrote:

>

I've now added a wiki page and alongside it a guide on creating your first visual novel:

https://github.com/ProjectDVN/dvn/wiki/Creating-your-first-visual-novel

Updated link that works: https://github.com/ProjectDVN/dvn/wiki/2.-Creating-your-first-visual-novel

Also just released version 0.0.20 and since last update these are the changes added:

  • Added a new event for dropdown components in the settings view
  • Added a "runDVN" function that you should call from your main function
  • Multiple saves now possible
  • Added dynamic text for back labels
  • Added event for saving games
  • Allowing SPACE to be used for skipping dialogues
  • Added Left-CTRL as dialogue skip key
  • Removed ENTER as a dialogue skip key
  • Added auto skip button
  • Added meta object to settings that allows custom settings/data to be loaded/saved.
  • Added checkboxes to the settings view
  • Added dynamic button text to settings
  • Added meta object to save files
  • Added function to get current save id
  • Updated dub.json copyright
  • Added labels to scripts
  • Added "renderGameViewLabel" event
  • Allowed animations to be used in the UI generator
  • Added ability to change text font in the script files
  • Added "renderMainMenuView" event
2 days ago

On Wednesday, 18 December 2024 at 18:56:06 UTC, bauss wrote:

>

...

Sorry for the spam! Got some additional updates as we've reached v0.1.0 - the first minor version of Project DVN.

Here are the changelogs:

  • Added "loadingViews" event
  • Added custom views
  • Resource file structure simplified
  • Added dialogue history
  • Added additional character positions

The reason for a minor version now is that Project DVN has reach somewhat stability in terms of development. It's not yet ready for a major version however as there are still things to develop, rewrite and fix. (Copied from the release notes of v0.1.0)

2 days ago

Just want to say, while I don't intend to use this package, since I'm not interested in this genre, it's awesome to see something like this show up!

These are the kinds of little additions to the ecosystem that help move D forward.

Nice work!

-Steve

2 days ago

On Thursday, 19 December 2024 at 04:21:19 UTC, Steven Schveighoffer wrote:

>

Just want to say, while I don't intend to use this package, since I'm not interested in this genre, it's awesome to see something like this show up!

These are the kinds of little additions to the ecosystem that help move D forward.

Nice work!

-Steve

Thanks a lot! I really appreciate it.

2 days ago

On Thursday, 19 December 2024 at 09:56:00 UTC, bauss wrote:

>

Thanks a lot! I really appreciate it.

Like Steve, not my genre either, but I'm still interested: Is there a game in the works using this engine? And how does this differ from other engines, such as Ren'Py (other than using a superior language of course ;) )

1 day ago

On Thursday, 19 December 2024 at 17:04:07 UTC, Dennis wrote:

>

On Thursday, 19 December 2024 at 09:56:00 UTC, bauss wrote:

>

Thanks a lot! I really appreciate it.

Is there a game in the works using this engine?

Yes, but it's still in the very early stage of development.

>

And how does this differ from other engines, such as Ren'Py (other than using a superior language of course ;) )

It uses much less of a scripting language and scripts are written in a format much like ini.

Renpy:


    s "Sure, but what's a \"visual novel?\""

menu:

    "It's a videogame.":
        jump game

    "It's an interactive book.":
        jump book

label game:

    m "It's a kind of videogame you can play on your computer or a console."

    jump marry

label book:

    m "It's like an interactive book that you can read on a computer or a console."

    jump marry

label marry:

    "And so, we become a visual novel creating duo."

Project DVN:

[main]
text:menu=Sure, but what's a visual novel?

[menu]
option:game=It's a videogame.
option:book=It's an interactive book.

[game]
text:marry=It's a kind of videogame you can play on your computer or a console.

[book]
text:marry=It's like an interactive book that you can read on a computer or a console.

[marry]
text:end=And so, we become a visual novel creating duo.

The above examples should be doing identical things in both engines, but highlights the difference.

It differs in a lot of other things too such as how resources are used, UI etc. of course, but much like renpy then everything is mostly customizable and you can do pretty much anything; there aren't many limitations.

But I also gotta admit my knowledge of renpy is limited and I've only played with it a little bit.