Ren'Py Interactive Director 1.0 Released

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Message
Author
User avatar
PyTom
Ren'Py Creator
Posts: 16088
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Ren'Py Interactive Director 1.0 Released

#1 Post by PyTom »

I'm happy to announce the release of the Ren'Py Interactive Director, a tool that I've been working on and off for about a year now, and I think it's ready for people to start using, at least for testing purposes so I can get some feedback. This is the code I demoed at Animefest 2017, and announced at Visual;Conference today. The interactive director is meant to make directing a game - the process of placing images and transitions into a game script that has already been written - easier. I think the interactive director is a best of both worlds solution, as it's a tool that displays the textual representation of what you are adding, while at the same time updating the game with near-instant feedback.

Here are a couple of obligatory screenshots:
screenshot-2016-117.png
screenshot-2016-116.png
The Ren'Py Interactive Director is free for non-commercial use, where commercial use includes things like kickstarters and patreon-funded games. (I want to make it available for commercial use, but I need to figure out how I'm going to do that.) The current version requires the latest nightly build of Ren'Py, which will become 6.99.12.3 when it is released a few days from now. You can download a demo of the ID for the Windows and Linux platforms at:

https://www.renpy.org/dl/id/

You can also see the source code (which isn't open source, since commercial use isn't permitted) at:

https://github.com/renpy/id

The github page also has a reasonably formatted README file that has the license in it and explains how to use things. As usual, I'm looking forward to seeing what you make with this. This is also the first release of a new project, so it might have bugs - please report those here so I can take care of things for you.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

AXYPB
Regular
Posts: 95
Joined: Thu Sep 04, 2014 3:04 am
Github: AXYPB
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#2 Post by AXYPB »

I am very interested in this project to aid in porting from other engines, but all of my uses would be for commercial products.

User avatar
Ertal77
Veteran
Posts: 322
Joined: Sat Feb 27, 2016 2:33 pm
Completed: A Hand in the Darkness, Chasing the Stars, My Burning Heart, Blood and Lust, Lurkers, Jolly Roger, The Remainder, The Manor, Night and Day
Projects: Deep in the Forest and Exes Assault!!
Organization: Ertal Games
Tumblr: ertalgames
itch: ertal-games
Location: Spain
Discord: Ertal#0394
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#3 Post by Ertal77 »

Thank you, Tom! I'm eager to try it asap!
Do you like BL games? Then join Ertal Games' Discord!

User avatar
trooper6
Lemma-Class Veteran
Posts: 3712
Joined: Sat Jul 09, 2011 10:33 pm
Projects: A Close Shave
Location: Medford, MA
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#4 Post by trooper6 »

Hi! How does this compare to akakyouryuu's 3D camera motion, Action Editor, Transform and Image Viewer cookbook recipe?
A Close Shave:
*Last Thing Done (Aug 17): Finished coding emotions and camera for 4/10 main labels.
*Currently Doing: Coding of emotions and camera for the labels--On 5/10
*First Next thing to do: Code in all CG and special animation stuff
*Next Next thing to do: Set up film animation
*Other Thing to Do: Do SFX and Score (maybe think about eye blinks?)
Check out My Clock Cookbook Recipe: http://lemmasoft.renai.us/forums/viewto ... 51&t=21978

User avatar
KomiTsuku
Eileen-Class Veteran
Posts: 1023
Joined: Mon Sep 22, 2008 11:32 pm
Completed: Dreams of the Skies, Anton's Vacation, Luka, The Halberd and The Tiger, Rising Angels, Pyrite Heart, Rising Angels: Reborn, The Halberd and The Fox, VN Tycoon, RA: Hope
Projects: Rising Angels
Organization: IDHAS Studios
IRC Nick: Komi
itch: idhas
Location: Somewhere
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#5 Post by KomiTsuku »

I'm quite enjoying the ID so far, but would it be possible to add a show button that only pulled character attribute tags instead of all images? With a lot of unique image names (something like 200) it is really hard to pick out the character tags.

User avatar
PyTom
Ren'Py Creator
Posts: 16088
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#6 Post by PyTom »

trooper6: I'm not sure. I suspect one place this works is that it edits the Ren'Py scripts and AST on the fly, without any sort of reloads.

komi: What do you mean? You can give it a list of background tags, and then those will only show up for scene statements, and not show statements. If the list of characters is small, we could probably write a small bit of python that works the other way - filters out the character tags to get the list of backgrounds.

everyone: It would be nice if some youtuber would do a demo of this, to see it in action.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
trooper6
Lemma-Class Veteran
Posts: 3712
Joined: Sat Jul 09, 2011 10:33 pm
Projects: A Close Shave
Location: Medford, MA
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#7 Post by trooper6 »

I'll look forward to testing it out once it becomes available for Mac users!
A Close Shave:
*Last Thing Done (Aug 17): Finished coding emotions and camera for 4/10 main labels.
*Currently Doing: Coding of emotions and camera for the labels--On 5/10
*First Next thing to do: Code in all CG and special animation stuff
*Next Next thing to do: Set up film animation
*Other Thing to Do: Do SFX and Score (maybe think about eye blinks?)
Check out My Clock Cookbook Recipe: http://lemmasoft.renai.us/forums/viewto ... 51&t=21978

User avatar
Imperf3kt
Lemma-Class Veteran
Posts: 3785
Joined: Mon Dec 14, 2015 5:05 am
itch: Imperf3kt
Location: Your monitor
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#8 Post by Imperf3kt »

I think I'll wait for a youtuber to showcase this.

Right now I don't get what this does.
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.

Current project: GGD Mentor

Twitter

User avatar
Divona
Miko-Class Veteran
Posts: 678
Joined: Sun Jun 05, 2016 8:29 pm
Completed: The Falconers: Moonlight
Organization: Bionic Penguin
itch: bionicpenguin
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#9 Post by Divona »

Imperf3kt wrote:I think I'll wait for a youtuber to showcase this.

Right now I don't get what this does.
There is a video of Pytom showcasing ID during Visual;Conference 2017. Those video are only available to the ticket holders right now, but should be available to the public in about a month or so.

What it does is that instead of typing in the code to add images in text editor, you do that visually on screen instead. It's like "why type when you can click". It also help a bit as you can see the result right on screen without the need to keep on hitting Shift+R to reload the script.

EDIT: OK. I've made a snippet from the presentation.

Completed:
Image

User avatar
trooper6
Lemma-Class Veteran
Posts: 3712
Joined: Sat Jul 09, 2011 10:33 pm
Projects: A Close Shave
Location: Medford, MA
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#10 Post by trooper6 »

Thanks for the video Divona! It is really different from akakyouryuu's work.
A Close Shave:
*Last Thing Done (Aug 17): Finished coding emotions and camera for 4/10 main labels.
*Currently Doing: Coding of emotions and camera for the labels--On 5/10
*First Next thing to do: Code in all CG and special animation stuff
*Next Next thing to do: Set up film animation
*Other Thing to Do: Do SFX and Score (maybe think about eye blinks?)
Check out My Clock Cookbook Recipe: http://lemmasoft.renai.us/forums/viewto ... 51&t=21978

User avatar
jack_norton
Lemma-Class Veteran
Posts: 4084
Joined: Mon Jul 21, 2008 5:41 pm
Completed: Too many! See my homepage
Projects: A lot! See www.winterwolves.com
Tumblr: winterwolvesgames
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#11 Post by jack_norton »

Looks interesting, I think for day to day coding using the "old way" will be faster (thanks to copy-pasting). For particular/custom movement, this tool could be very helpful instead :)
follow me on Image Image Image
computer games

MadEddy
Newbie
Posts: 4
Joined: Sat Jan 28, 2017 3:24 pm
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#12 Post by MadEddy »

Hello pytom.
(Note: My english isn't this good, sorry!)

I have regarding your ID some feedback in two parts for you. I am using ren`py 6.99.12.2.2029 with OS Kubuntu 16.04.1 .

1. Error
There is a possible bug or some special incompatibility in ID. I tested/played a little bit around with ID and wanted to try it with a game i am using currently. Its "Summertime Saga 0.10c", in alpha development. I dropped like described the id.rpy simply in the game folder. The ID text/button shows up and opens/closes, but there is only the "done" button. No other elements. The black screen with the "reloading script..." doesn't appear. Possible the game has a special setup or something similar, which blocks ID. :?:
As i dropped the game itself in the ID-1.0 folder it was the same problem.

My beforehand try with "the question" worked also not. After a click on the ID starter in-game "reloading script" screen appears and then i got errors:

Code: Select all

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00gltest.rpy", line 361, in <module>
    $ __gl_test()
  File "renpy/common/00gltest.rpy", line 287, in _m1_00gltest__gl_test
    _gl_performance_test()
  File "renpy/common/00gltest.rpy", line 304, in _gl_performance_test
    ui.interact(suppress_underlay=True, suppress_overlay=True)
  File "game/id.rpy", line 209, in interact
    show_director = interact_base()
  File "game/id.rpy", line 189, in interact_base
    change_action = ChangeStatement(lle, node)
  File "game/id.rpy", line 645, in __init__
    self.tag = node.imspec[0][0]
TypeError: 'NoneType' object has no attribute '__getitem__'

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "/home/olli/00start.rpyc", line 188, in script call
  File "/home/olli/00gltest.rpyc", line 361, in script
  File "/home/olli/Downloads/lager/renpy-6.99.12.2-sdk/renpy/ast.py", line 814, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/home/olli/Downloads/lager/renpy-6.99.12.2-sdk/renpy/python.py", line 1695, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/00gltest.rpy", line 361, in <module>
    $ __gl_test()
  File "renpy/common/00gltest.rpy", line 287, in _m1_00gltest__gl_test
    _gl_performance_test()
  File "renpy/common/00gltest.rpy", line 304, in _gl_performance_test
    ui.interact(suppress_underlay=True, suppress_overlay=True)
  File "/home/olli/Downloads/lager/renpy-6.99.12.2-sdk/renpy/ui.py", line 285, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "/home/olli/Downloads/lager/renpy-6.99.12.2-sdk/renpy/display/core.py", line 2485, in interact
    i()
  File "game/id.rpy", line 209, in interact
    show_director = interact_base()
  File "game/id.rpy", line 189, in interact_base
    change_action = ChangeStatement(lle, node)
  File "game/id.rpy", line 645, in __init__
    self.tag = node.imspec[0][0]
TypeError: 'NoneType' object has no attribute '__getitem__'

Linux-4.4.0-59-generic-x86_64-with-debian-stretch-sid
Ren'Py 6.99.12.2.2029
The Question 1.0
2. General Notes
I believe the ID is a very good idea and it looks promising. The in-game editing is something what`s missing in renpy and i see there much potential. I kine especially the clear, structured and easy design. :)
  • a) You should better describe the install/usage. Inexpertly users will have problems. (e.g. where to find the id.rpy)
    b) In the test project and SummertimeSaga(StS) appears only a the text line "Interactive Director". A real open-button(border, background) is missing.
    c) In StS the ID opener overlaps part of the game-gui. I don't think this is ideal. Possible a switch could be worked in, so the user can move the button to another window edge. Its for every game potentially another position thats wrong.
    d) I am not sure if the overlapping work-area of ID a good way is. If elements of interest are behind the slider, the users gets problems. Would it be possible to extent the window on the upside and position the work-area outside the game? I know, with the ability to grow in length its a problem. :?
    e) Describing tool-tips over the main elements of the work area could be useful. Beginners will not exactly know what a "show" or "tag" does. The tooltips should then have the option to be switched off.
OK. Thats all at the moment. Thanks for your work!

Greets

User avatar
Arowana
Miko-Class Veteran
Posts: 531
Joined: Thu May 31, 2012 11:17 pm
Completed: a2 ~a due~
Projects: AXIOM.01, The Pirate Mermaid
Organization: Variable X, Navigame
Tumblr: navigame-media
itch: navigame
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#13 Post by Arowana »

This looks super cool, PyTom! I really like the immediate updates without need for constant reloading. :D

Any chance of supporting variable changes for ConditionSwitch or interpolated LiveComposites (I think there are a fair number of people who use these instead of image attributes)?

I'd also be interested if you plan to support ATL blocks generated on the fly in addition to predefined transforms. One nice thing that akakyouryuu's image/transform viewer does is allowing you to manipulate the pos, anchor, zoom, rotate, etc. of an image until you can get it exactly how you want. Is this something the interactive director might also feature in the future?
Complete: a2 ~a due~ (music, language, love)
In progress: The Pirate Mermaid (fairytale otome)
On hold: AXIOM.01 (girl detective game)

Image

User avatar
PyTom
Ren'Py Creator
Posts: 16088
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#14 Post by PyTom »

MadEddy wrote: 1. Error
Thanks for the report. I'll try to guard against this.
  • a) You should better describe the install/usage. Inexpertly users will have problems. (e.g. where to find the id.rpy)
Fair enough.
b) In the test project and SummertimeSaga(StS) appears only a the text line "Interactive Director". A real open-button(border, background) is missing.
c) In StS the ID opener overlaps part of the game-gui. I don't think this is ideal. Possible a switch could be worked in, so the user can move the button to another window edge. Its for every game potentially another position thats wrong.


The button is styled the same way as buttons in the in-game quick menu. The idea is to make it subtle, so it stays out of your way when you're playing your game, and is unlikely to block anything important.

That being said, my thinking is that the default button is really just for people starting out. You can customize access to the director in two ways:

1. You can set director.button = False, and then bind the director.Start() action to something in your own gui.
2. You can leave director.button as True, and customize the director_button screen. (I'll document this shortly so people know it exists and is supported.)
d) I am not sure if the overlapping work-area of ID a good way is. If elements of interest are behind the slider, the users gets problems. Would it be possible to extent the window on the upside and position the work-area outside the game? I know, with the ability to grow in length its a problem. :?
Due to the way Ren'Py works, resizing the screen like this isn't something I plan to support. (What's more, on many computers, the game already takes up most of the screen.) We limit the overlapping to the top half of the screen, and the window should be a little transparent so you can lay things out properly even if the screen has been overlapped.
e) Describing tool-tips over the main elements of the work area could be useful. Beginners will not exactly know what a "show" or "tag" does. The tooltips should then have the option to be switched off.
I don't think the director is a replacement for textual Ren'Py, or the quickstart. I think the goal here is to make directing a game easier for someone who knows how it works. I don't want this to be like other GUI tools, where there's an abstraction that works up until a certain point, but once it breaks the creator has to start over from scratch.

Arowana wrote:This looks super cool, PyTom! I really like the immediate updates without need for constant reloading. :D

Any chance of supporting variable changes for ConditionSwitch or interpolated LiveComposites (I think there are a fair number of people who use these instead of image attributes)?
The answer is no. But what I plan to support is something I'm working on called AttributeImage, which is designed to replace the usual ConditionSwitch/LiveComposite combo with something that works with images and attributes. ConditionSwitch and DynamicImage make sense for things like a character's gender or hair color, that won't change over the course of the game. But using a variable to indicate things like emotion seems like a bad idea to me (since we can't predict the new image over a variable change), and so I'd like to replace that with something better.
I'd also be interested if you plan to support ATL blocks generated on the fly in addition to predefined transforms. One nice thing that akakyouryuu's image/transform viewer does is allowing you to manipulate the pos, anchor, zoom, rotate, etc. of an image until you can get it exactly how you want. Is this something the interactive director might also feature in the future?
Probably not. I think what's more likely is a separate (if perhaps integrated) Transform creator, which would let you define a new transform on the fly.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
Arowana
Miko-Class Veteran
Posts: 531
Joined: Thu May 31, 2012 11:17 pm
Completed: a2 ~a due~
Projects: AXIOM.01, The Pirate Mermaid
Organization: Variable X, Navigame
Tumblr: navigame-media
itch: navigame
Contact:

Re: Ren'Py Interactive Director 1.0 Released

#15 Post by Arowana »

PyTom wrote:The answer is no. But what I plan to support is something I'm working on called AttributeImage, which is designed to replace the usual ConditionSwitch/LiveComposite combo with something that works with images and attributes. ConditionSwitch and DynamicImage make sense for things like a character's gender or hair color, that won't change over the course of the game. But using a variable to indicate things like emotion seems like a bad idea to me (since we can't predict the new image over a variable change), and so I'd like to replace that with something better.
Oh nice, I always wondered about how to handle image prediction with ConditionSwitch. I look forward to hearing more about AttributeImage! Hopefully it won't be too hard to convert LiveComposite/ConditionSwitch combos to AttributeImages, because I use a lot of those. :lol:
Complete: a2 ~a due~ (music, language, love)
In progress: The Pirate Mermaid (fairytale otome)
On hold: AXIOM.01 (girl detective game)

Image

Post Reply

Who is online

Users browsing this forum: Google [Bot]