What would be the best way to approach this using Ren'py?

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.
Post Reply
Message
Author
User avatar
Dan_Tsukasa
Newbie
Posts: 14
Joined: Wed Jul 15, 2015 2:14 pm
Contact:

What would be the best way to approach this using Ren'py?

#1 Post by Dan_Tsukasa » Wed Jul 15, 2015 2:53 pm

Hi Guys,

I'm new to Ren'py as of a few hours ago so naturally I've still got plenty to learn, I have in the past used a number of game engines such as unity and unreal both personally and professionally, but now I thought it was time to make something of my own. For my idea Ren'py seems to be the perfect choice, however I just wanted to run the idea by the forums first, well, the mechanic at least.

Just to see if Ren'py really is the best tool for this idea, using unity I'd have to code everything from scratch but Ren'py has a number of functions built in that I'd be using regularly, I mainly want to know if my idea would require me constantly wrestling against the engine itself in order to work, which is of course something nobody wants happening if an engine needs bending backwards to do what you want I wonder if in that case it'd be easier to use something like Unity.

[youtube]https://youtu.be/9Cy7E76mBL0?t=3m57s[/youtube]

My idea is somewhat similar to the video above, however interactive, characters talk via speech bubbles (ala comic book style) and ask eachother questions 1 question at a time, you, the player are asked questions and you'd select your answer from a list inside the speech bubble itself (not the standard Visual novel bottom of the screen).

When you answer the other character replies based on your answer, the logic of the choices itself isn't complex, its just the visual way of showing things I'm unsure if Ren'py will support without a lot of extra code (or just simply using premade speech bubbles for things, which would become an issue for lists).

Characters would be almost constantly animating, but in the same style as the video above, likely with a few overlays, such as the way one guy put down his coffee cup, or the screen split in 2.

I don't imagine the engine couldn't handle this, since its not at all intense, I'm more so unsure if its a wise choice for me to use Renpy for this project as for the most part it sounds easier to use than unity or unreal when it comes to coding, and what presets are already built in that I could take advantage of.

I hope thats enough of an explanation for anyone, if it needs more detailing or something doesn't quite make sense to you, please let me know and I'll detail as best I can. This all makes perfect sense to me because its my idea, it might not be as readable for someone unfamiliar with the concept.

Thankyou.

philat
Eileen-Class Veteran
Posts: 1853
Joined: Wed Dec 04, 2013 12:33 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#2 Post by philat » Wed Jul 15, 2015 3:29 pm

Renpy is built largely for a static textbox, and it's possible to do the style you describe but not easily. It would mostly involve customizing the renpy engine itself. There are some examples you can find if you comb the forums, e.g., http://lemmasoft.renai.us/forums/viewto ... =8&t=26505

The Detail, which has a similar style to what you seem to want, was built on Unity, if I'm not mistaken.

https://www.youtube.com/watch?v=ypi8oAIqkdU

As a piece of unsolicited advice, the choices in text bubbles concept seems weird to me, but that's just me. :P

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: What would be the best way to approach this using Ren'py

#3 Post by xela » Wed Jul 15, 2015 4:56 pm

Depends on how pictures and animations are setup and called. This is not something Ren'Py does out of the box but you will be able to use a lot of simple scripts like SL/ATL that come with Ren'Py to make life easier.
Like what we're doing? Support us at:
Image

User avatar
Dan_Tsukasa
Newbie
Posts: 14
Joined: Wed Jul 15, 2015 2:14 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#4 Post by Dan_Tsukasa » Wed Jul 15, 2015 6:06 pm

philat wrote:Renpy is built largely for a static textbox, and it's possible to do the style you describe but not easily. It would mostly involve customizing the renpy engine itself. There are some examples you can find if you comb the forums, e.g., http://lemmasoft.renai.us/forums/viewto ... =8&t=26505

The Detail, which has a similar style to what you seem to want, was built on Unity, if I'm not mistaken.
As a piece of unsolicited advice, the choices in text bubbles concept seems weird to me, but that's just me. :P
Thank you for the response.

Yeah the text visibility thing I see as being the biggest issue honestly, everything else is literally just sliding pictures, but the text box thing could be the decider. Multiple branching, and dialogue is what ren'py does best which is why I'm considering using. If there's a way for me to set the dialogue box position and size depending on what's said and when then I could use that, have a small dialogue box and just have the image with the text bubble underneath.

Do you imagine for example that scene working better if there was standard visual novel dialogue then. Visually I don't see that being as appealing for the visual style I'm after. But I will experiment when I begin of course.

philat
Eileen-Class Veteran
Posts: 1853
Joined: Wed Dec 04, 2013 12:33 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#5 Post by philat » Wed Jul 15, 2015 6:35 pm

The thing is, it's not out of the realm of possibility to have the speech bubble thing, but I can't imagine any way to do it that would retain renpy's core strength, which is simplicity of scripting.

Speech bubbles are inherently kind of difficult -- they don't scale well (e.g., it's not simply a matter of 'here is this one box that will have a fixed width but get taller if there are more lines' since you probably want to vary both the width/height of the bubble, center text, possibly split lines at a finer level of detail to look better, etc.), you have to have the little squiggly part pointing in different directions depending on where it's placed, etc. One sort of intermediate point might be the approach taken in Coming Out on Top (http://lemmasoft.renai.us/forums/viewto ... 11&t=29722 ) although as you can see it's still a very different approach from The Detail or the MGS video you linked.

Having just a rectangular text box move around would be enough of a headache, but for speech bubbles it would mean specifying a LOT of things -- where it should go, what size it should be, is it going to be a regular speech bubble or one of those spiky ones that denote yelling, etc. -- which would mean that the core simplicity of renpy, i.e., writing

Code: Select all

e "Welcome to renpy."
e "Yay, simplicity!"
would have to be sacrificed, probably for some solution using custom-defined screens or characters, and possibly tinkering with renpy's innards.

Which, again, isn't to say that it's impossible. For all I know, The Detail required a shitload of coding on top of vanilla Unity, although I think there's a VN engine available in Unity that is provides similar dialogue options.

If you're not worried about the complexity, my suggestion would be to a) study The Question and the tutorial so you understand what renpy script, ATL, and screen language actually are, and b) read the thread I linked above for ideas on how to have multiple text boxes in different places. Keep in mind that the link above relates to having multiple text boxes (i.e., using renpy script), but if you really want to take finer manual control of presentation and don't care about scripting simplicity, you might even just not use renpy script and instead show screens that take strings and positions as parameters.

User avatar
PyTom
Ren'Py Creator
Posts: 15893
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: What would be the best way to approach this using Ren'py

#6 Post by PyTom » Wed Jul 15, 2015 11:19 pm

The Megatokyo people have a working implementation of bubble textboxes for Ren'Py. You might want to consider contacting them (especially TheSHADOW on #renpy irc, who I believe coded it).
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
"Silly and fun things are important." - Elon Musk
Software > Drama • https://www.patreon.com/renpytom

User avatar
Dan_Tsukasa
Newbie
Posts: 14
Joined: Wed Jul 15, 2015 2:14 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#7 Post by Dan_Tsukasa » Thu Jul 16, 2015 6:33 am

Thanks for the reply guys.

I'll try to get ahold of TheSHAD0W via IRC then and see what approach they've taken.

Looking at their website I can't tell if the text bubbles move about the screen or if they're only in 1 of 2 positions and sizes just yet.

My next question is more regarding the sliding panels, and panels appearing atop one another.

I was searching around to see if perhaps Spine had been in some way intergrated with Ren'py but it appears not (outside of 1 users C implimentation, which sounded interesting)

I imagine calling upon a spine animation would be a lot easier than manually defining the position of animated objects using ATL, and likely work out in more easily readable, and manageable code.
But I'm certainly not experienced enough (especially with C) to implement something like this myself.

So far it sounds like, to a certain degree I'd be wrestling regularly against what the engine expects me to do as a user, essentially having to write most of my idea in ATL, the idea isn't quite an interactive manga, but it somewhere along those same lines.

philat
Eileen-Class Veteran
Posts: 1853
Joined: Wed Dec 04, 2013 12:33 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#8 Post by philat » Thu Jul 16, 2015 10:46 am

I don't know what Spine integrated code would look like (although just from looking at the website, it appears there's a python module for pygame that might be adapted to renpy, although I'm not a programmer, so who knows), but ATL is pretty simple. It also takes parameters, so using the code is pretty clean. You would have to sort of manually calculate the positions, I suppose, but wouldn't that be true in any other system as well?

Code: Select all

transform xslide(start, finish, delay): # move from start to finish in delay seconds
    xalign start
    linear delay xalign finish

label start:
    show image at xslide(0.0, 1.0, 1.0)

User avatar
Dan_Tsukasa
Newbie
Posts: 14
Joined: Wed Jul 15, 2015 2:14 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#9 Post by Dan_Tsukasa » Thu Jul 16, 2015 11:40 am

Hey Philat,

After speaking with The Shadow (of megatokyo programmer fame) and discussion with him really helped, it looks like Ren'py is a great choice for this project.

In regards to Spine, if it were integrated (though I don't see that happening, but it'd certainly be wiser and cheaper than integrating Live2D due to license prices) then all the animation would be done in spine itself, as opposed to manually inputting the positions via code, instead such an integration would be able to play the data from the spine file, and so it'd play based on my spine animation which is hand placed as I mentioned.

I'd have a number of events and I think using ATL I'd be able to get a lot of them done without much difficulty, only more specific animated segments might require more detail but I could re-evaluate those anyway.

User avatar
PyTom
Ren'Py Creator
Posts: 15893
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: What would be the best way to approach this using Ren'py

#10 Post by PyTom » Thu Jul 16, 2015 6:09 pm

I'm strongly considering implementing spine. It's finding the time to do it that's the problem.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
"Silly and fun things are important." - Elon Musk
Software > Drama • https://www.patreon.com/renpytom

User avatar
Dan_Tsukasa
Newbie
Posts: 14
Joined: Wed Jul 15, 2015 2:14 pm
Contact:

Re: What would be the best way to approach this using Ren'py

#11 Post by Dan_Tsukasa » Fri Jul 17, 2015 8:20 am

PyTom wrote:I'm strongly considering implementing spine. It's finding the time to do it that's the problem.
Hi Tom, that sounds pretty cool.

How do you envision it working exactly? People simply calling on visual data (animations, static images etc) from a file spine spits out? Or more just supporting a particular thing or 2 about it?

I've used it a fair bit with unity and I can say that supporting the standard stuff is a lot easier than supporting the more advanced stuff such as the meshes and the weight painting etc.

If you're interested I have (as do all spine owners) 2 licenses for Spine, 1 I use myself and another thats currently doing nothing, I'd be more than happy to share it with you whilst you run tests and the like, just let me know and I'll send over the key for you.

I'm really excited to start this project in Renpy, but I know I'm not going to have any time to work on it for the next month or so, instead I'll be using that time to finish writing up the hundred or so dialogue branches the game requires.

TheSHAD0W also gave me a useful plugin for Renpy that enables visualisation of branches and events as a simple and editable flow chart, which is no doubt going to help me in future.

crimsonnight
Veteran
Posts: 298
Joined: Fri Apr 20, 2012 4:44 am
Contact:

Re: What would be the best way to approach this using Ren'py

#12 Post by crimsonnight » Sun Aug 02, 2015 1:07 pm

I'm currently working on a sequel to my visual novel and am at the stage of creating the character models. I have asked the artist I'm working with to create the image in a way that will work with Spine so it would be great if full functionality is implemented at some point - would massively help with the overall file size too. We have a pro license and are happy to help out in any way we can :)
alwaysthesamebluesky.com

Post Reply

Who is online

Users browsing this forum: No registered users