www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Project DVN - Visual Novel Engine

reply bauss <jacobbauss gmail.com> writes:
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.
Dec 12 2024
next sibling parent reply bauss <jacobbauss gmail.com> writes:
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.
Dec 14 2024
parent bauss <jacobbauss gmail.com> writes:
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.
Dec 15 2024
prev sibling next sibling parent reply bauss <jacobbauss gmail.com> writes:
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
Dec 16 2024
parent reply bauss <jacobbauss gmail.com> writes:
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
Dec 18 2024
parent bauss <jacobbauss gmail.com> writes:
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)
Dec 18 2024
prev sibling next sibling parent reply Steven Schveighoffer <schveiguy gmail.com> writes:
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
Dec 18 2024
parent reply bauss <jacobbauss gmail.com> writes:
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.
Dec 19 2024
parent reply Dennis <dkorpel gmail.com> writes:
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 ;) )
Dec 19 2024
parent bauss <jacobbauss gmail.com> writes:
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.
Dec 19 2024
prev sibling parent bauss <jacobbauss gmail.com> writes:
On Thursday, 12 December 2024 at 22:58:14 UTC, bauss wrote:
 ...
I think it's time for another update since a lot has happened since last time. We're now at a major version, all the way up at v1.0.7. Changelog since last post update: - Added click safe components and fire events for component - Added "hideDialogue" and "hideButtons" properties for scripting - Allowing X/Y positions in charPos when scripting - Added "renderGameViewOptionsFinished" and "renderGameViewTextFinished" events - Added video component - Added "onFinishedVideo" event - Added video to UI generator and allowed videos to go on repeat - Added setting to allow a custom start view - Added video loading view - Added comments to script files - Added "renderVideoLoadingView" event - Incorporated zid (ui lib) as dvn - Added the "renderGameViewOptionsStart" event - Allowing intro video to be skipped - Added "RawImage" component - Allowing images to be used as dialogue panel and name panel - Allowed raw image for buttons - "takeScreenshot" function and saving screenshot when saving game - Updated "load game" UI to include screenshots of saved games - Allow main menu items to be any component - Allowing "renderButtonImage" in ui generator - Added "renderLoadGameViewPrevLabel", "renderLoadGameViewNextLabel", and "renderLoadGameViewLoadEntry" events. - Added default text color setting - Added screenshot shortcut (s) - Added screenshot gallery - Added music setting for loading music and main music - Added ablity to add a video background for each main view - Added history view Documentation has also been moved to https://dvn-docs.readthedocs.io/en/latest/index.html Also merry early christmas to those who celebrate it.
Dec 23 2024