Adventure/Visual Novel Framework!

NionNion Posts: 6Member
edited December 2016 in Resources
Hi! I have been working on a visual novel/adventure game engine within Godot.

Basically, using a simple API, you can setup 'clickables' that you can click/tap to:
* start dialogue/conversation with characters that have different 'thumbnails'
* show a choice & run a callback function with the result
* show an overlay ('photo') during a dialogue
You would use Godot's built in functionality to change scenes, add music, etc.

Get it from GitHub:  (clone or click on 'download zip')

I have made sure the API is as simple as possible, and you can learn it in a couple of minutes by looking at code examples on the Github readme.

I am not an 'expert' Godot developer so feedback is very, very welcome & dear to my heart. It is still under development and I plan to keep maintaining & expanding the project in every way possible.

Also, don't get turned away by my bad art in the template scene! These are just placeholders.

API example:
#### Reference (anywhere in the template scene)

onready var g = get_tree().get_root().get_node('GameManager')

#### Add the Characters & thier thumbnails

g.charThumbDict['Harold Finch'] = preload('res://assets/sample/s_Finch.png')
g.charThumbDict['Clime'] = preload('res://assets/sample/s_Clime.png')
#...for each character...

#### Add a dialogue (conversations that can characters have)

g.dialogue('Clime', "Hi! I am Clime, and this is something I'm saying!", 0)
g.dialogue('Harold Finch', 'Hey Clime, nice to meet you!', 0)
g.dialogue('Clime', 'Do you prefer cats or dogs?', 0)

#### Add a choice (choice the player has to make that influence game flow)
g.choice(['I prefer cats!', 'I prefer dogs!'], '_ch_catsOrDogs', self, 0)

var lovesCatsOrDogs = '' #so we can use the selection later

func _ch_catsOrDogs(selection):
  if selection == 0:
    lovesCatsOrDogs = 'cats'
    g.dialogue('Clime', 'Oh, so you prefer cats I see...', 0)
  elif selection == 1:
    lovesCatsOrDogs = 'dogs'
    g.dialogue('Clime', 'Dogs it is!', 0)
  g.dialogue('Clime' 'Prefer any species?', 0)
  g.choice(['Not really...', 'O yes!'], '_ch_speciesPref', self, 0)

func _ch_speciesPref(selection):
  #...and so on...

#### Add a mid-conversation photo'res://assets/sample/samplePhoto.png', false, 0)
var preloadedPhoto = preload('res://assets/sample/samplePhoto.png'), true, 0)


Tags :


  • BishopBishop Posts: 216Member
    Hi,nice work,thanks...keep up on it!...very useful G:
  • SslaxxSslaxx Posts: 8Member
    Tried looking at places like for free artwork/sprites/etc?<br /><br />Also, be aware the repo has changed! is the correct one.
  • NionNion Posts: 6Member
    @Sslaxx  yes, sorry about that, edited the link. The other link is a full framework I'm working on that uses this API. Will definitely check out opengameart. Thanks again!
  • Trueq00uTrueq00u Posts: 1Member
    edited January 2017

    The Qudware link is now 404. Is something similar out there?

    Apologies, this was written last month but got caught in the filter until now. The original post has already been updated.

  • thejhawkthejhawk Posts: 1Member

    Hi, thanks for this. I'm new to Godot, and I had a question: how would I hide the viewshield after a piece of dialogue?

  • JohynJohyn Posts: 16Member

    Hello, seems nice, but I can't edit or import it, as there's no selectable file in the project manager... What am I doin wrong?

  • MegalomaniakMegalomaniak Posts: 452Admin

    @Johyn said:
    What am I doin wrong?

    Looking at the repo. it looks too old to have been updated/compatible with godot 3. or are you using godot 2?

  • JohynJohyn Posts: 16Member

    Nops, usin the 3. So that the why. Thxs for your coment. :)

Sign In or Register to comment.