Skip to main content

VNS (Visual Novel Script), a universal scripting language for creating scripts for visual novel games.

Project description

Visual Novel Script

Visual Novel Script, short for VNS, is a universal scripting language created with the goal of creating a language that allows visual novel developers to write once and compile everywhere, across different platforms, game libraries, and programming languages.

VNS provides a number of features that make it easy to create visual novels, such as:

  • A simple and easy-to-learn syntax
  • Support for branching dialogue and choices
  • Support for music and sound effects

Unlike Ren'py, writing visual novel script is more like writing a story instead of a program, and the developers also have the choice to create their own implementation.

How it started:

The development of the VNS can be traced all the way back to the initial stages of Linpg's development. During this period, the team faced the challenge of finding an efficient method to store the dialogue. Each conversation required the storage of multiple variables, including the narrator, the actual dialogue content, associated character images, ambient background music, and various other components:

Ultimately, the team opted for a design inspired by doubly linked list, but implemented using dictionary (HashMap for Java forks). This approach not only facilitated easier access to the data but also streamlined the saving process, enabling compatibility with formats like JSON or YAML. This method preserved readability while efficiently managing the dialogue. Today, the current system closely resembles our initial design, with only a few subtle refinements:

compiler: ...
dialogues:
  dialog1:
    head:
      background_image: bg1.jpg
      background_music: bgm1.mp3
      character_images:
      - alice.png
      contents:
      - Hello
      narrator: Alice
      next:
        target: ~01
        type: default
      previous: null
    ~01:
      background_image: bg1.jpg
      background_music: bgm1.mp3
      character_images:
      - alice.png
      contents:
      - Can you hear me?
      narrator: Alice
      next:
        target: ~02
        type: default
      previous: head
    ~02:
    ...
  dialog2:
    ...
  ...
id: 1
language: English

Although the overall data is easy to read, it is somewhat inconvenient to write. We came up with a dedicated dialogue editor to resolve the issue, but it's still a bit of a hassle. That is the reason why we begin to inquire about the possibility of simplifying the process.

Would it be possible to make it feel like we're writing the dialogue in a Microsoft Word document? Thus, VNS is born.

Example:

Here is a simple example of a VNS script:

[id]1
[language]English

[section]dialog_example

[bgi]bg1.png
[display]character1.png character2.png

Mabel:
- Hello my name is Mabel!
- How are you doing today!

[hide]character1.png

Dipper:
- Hi Mabel! I'm doing well, thanks for asking.

This script would display the background image bg1.png and the character images character1.png and character2.png. Mabel would then say "Hello my name is Mabel!" and "How are you doing today!". Next, character1.png would be hidden and Dipper would say "Hi Mabel! I'm doing well, thanks for asking." Finally, the script would end.

Wiki:

If you would like to learn more about VNS, please visit vsn.wiki.

License:

VNS is licensed under LGPL(GNU Lesser General Public License)-2.1-or-later.

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pyvns-2.3-cp312-cp312-win_amd64.whl (413.4 kB view details)

Uploaded CPython 3.12 Windows x86-64

pyvns-2.3-cp312-cp312-manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12

pyvns-2.3-cp311-cp311-win_amd64.whl (412.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

pyvns-2.3-cp311-cp311-manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11

pyvns-2.3-cp310-cp310-win_amd64.whl (411.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

pyvns-2.3-cp310-cp310-manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10

File details

Details for the file pyvns-2.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyvns-2.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 413.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for pyvns-2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 90c0368755a20e883c7c8f10caf33d9b4f32a1d0c84d868cbd5c1a89232d5dda
MD5 8870f7cee140d874c2360efbf8789aef
BLAKE2b-256 7c1eba2d4e000d377b0122261c7363c1b4afc60c9baca5c0c8a533bd3bb08ba8

See more details on using hashes here.

File details

Details for the file pyvns-2.3-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvns-2.3-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bdeea1406cdd97616883c7073d5c01a9e613998d9b29a053d872d2a524d4f42
MD5 97562d741b4dd00474976f1d12197d93
BLAKE2b-256 61f8c23721e4375496513b8054e493fdd6d75aac6735dededfb521466f17ddcf

See more details on using hashes here.

File details

Details for the file pyvns-2.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyvns-2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 412.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for pyvns-2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c94f76b8142785a1173e1819b83d107bf49f7a23ccfa9a109518d2a7f699f744
MD5 45c435413000a26d3e1008c413506ef5
BLAKE2b-256 cd54a5a5a30a0108139caf720ab831d4acea3b12e96daf31eeda026ab5672823

See more details on using hashes here.

File details

Details for the file pyvns-2.3-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvns-2.3-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7126c45f05a8663d15995023f6ebd2e8725d5d9b8c602b12a5cf20d845825e45
MD5 56d2ca109acb451f695dac6a95f0db16
BLAKE2b-256 c4b2a3b064e9c1318d8517064140b7a47b12167baf0ea1b122ee7bf7e2f62652

See more details on using hashes here.

File details

Details for the file pyvns-2.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyvns-2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 411.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for pyvns-2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 baae3f1121b1ce899243611f64b9960a644bacfd6b63aa400e0a02a8fdcff424
MD5 087ff0c853d4ccac49a773aaa6f7649f
BLAKE2b-256 901887ff0abbc98f9bee1cc88ade5ad8cc5c475d0d0e4196973a55b51e17c653

See more details on using hashes here.

File details

Details for the file pyvns-2.3-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvns-2.3-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8135076154ece9c3abf7309a926a2ab85c4e596cc0b75d8a7481b7ed5dbd4491
MD5 62d9fd58621e7acfd2c1ef8237fce2a5
BLAKE2b-256 644bc2c6c1066dc859cffe5ec87bc7ce6152eba99d852eab9ebc58c473db8aee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page