Are There Plans to Make Ren'Py More User-Friendly?

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
trooper6
Lemma-Class Veteran
Posts: 3712
Joined: Sat Jul 09, 2011 10:33 pm
Projects: A Close Shave
Location: Medford, MA
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#16 Post by trooper6 » Sat Jun 06, 2015 1:29 pm

SinnyROM wrote: I guess instead of the documentation being completely editable, maybe a good middle ground is having a page like the wiki cookbook be editable and have potential for multiple links to code and references for each feature.

Code: Select all

Ren'Py Cookbook References

Diary/journal system
- link to a cookbook forum thread
- another link to a forum thread
- link to Github repo

Point-and-click
- link
- link

...
This page is to be the first point of reference after the documentation, for instance a stickied topic at the top of the Ren'Py subforums. It can be publicly editable (to some extent) so that others can add their contributions. That way, only one page needs to be moderated for vandalism. If users can't find what they need there, they can move on to making threads with their questions. The page may become a little bloated and some kind of indexing will be needed along the way, but it's definitely more feasible than bringing back the entire wiki.
Two things in response:
1) I think an editable link/index page to useful posts in the cookbook/Questions & Answers section that also merges FAQs would be really great. There are so many great things in both of those threads and people don't always search, know what keywords to search for, etc. So often the same questions come up again and again and having a place where resources are collected could be awesome. That said, in a thread in the Renpy Development board someone asked PyTom why the wiki was abandoned and he said that it was a spam magnet that took way more time to maintain than it gave returns. Would this be the case for one single page? I don't know. But the idea is quite exciting!
2) I actually am not worried about malicious intent or vandalism. I'm more worried about well meaning people who don't actually know Renpy as well as they think they do making "helpful" posts...that will cause newbies to learn bad things rather than good things. I mean, I still regularly see people post up patchwork code that uses ui commands rather than screen language...things that are really outdated/inefficient, etc. Heck! I've done it myself when I was newer. I'm sure I still post code that could be a lot better than what I've come up with. I mean I'm learning things all the time that make me rethink code I've posted in the past. I've posted examples of classes that don't inherit from "object" because I didn't realize if you don't, those objects won't properly participated in saving and rollback...and I just learned that not too long ago!

Another thought. Some of the things in the cookbook are really old. Really such a project would need some expert coders to go through everything and see what is still relevant, what is outdated, what actually isn't good code, what is...and then review everything with major updates. It is doable...but would take 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

HiddenCreature
Regular
Posts: 178
Joined: Sat May 16, 2015 8:00 pm
Projects: Vampire: The New Birth
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#17 Post by HiddenCreature » Sat Jun 06, 2015 1:49 pm

I think the community should really consider recruiting volunteers to make a more in-depth Ren'Py tutorial game, or a series of instructional YouTube videos. The Ren'Py documentation is already written in pretty plain English, so it's easier to learn. But I know lots of people (myself included) are visual learners, and need some examples they can reference.

I think trooper had the right idea in finding easier ways to teach Ren'Py, rather than easier ways to use it.

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: Are There Plans to Make Ren'Py More User-Friendly?

#18 Post by trooper6 » Sat Jun 06, 2015 1:56 pm

HiddenCreature wrote: I think trooper had the right idea in finding easier ways to teach Ren'Py, rather than easier ways to use it.
Do you know what I think would be awesome (but I don't know how do code)?
A Renpy Tutorial Course like the sort that Code Academy does. It teaches you a concept then gives you an assignment. You have to enter in the proper code and then it checks your code to see if it was done properly.
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
SinnyROM
Regular
Posts: 166
Joined: Mon Jul 08, 2013 12:25 am
Projects: Blue Birth
Organization: Cosmic Static Games
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#19 Post by SinnyROM » Sat Jun 06, 2015 2:06 pm

trooper6 wrote:Two things in response:
1) I think an editable link/index page to useful posts in the cookbook/Questions & Answers section that also merges FAQs would be really great. There are so many great things in both of those threads and people don't always search, know what keywords to search for, etc. So often the same questions come up again and again and having a place where resources are collected could be awesome. That said, in a thread in the Renpy Development board someone asked PyTom why the wiki was abandoned and he said that it was a spam magnet that took way more time to maintain than it gave returns. Would this be the case for one single page? I don't know. But the idea is quite exciting!
2) I actually am not worried about malicious intent or vandalism. I'm more worried about well meaning people who don't actually know Renpy as well as they think they do making "helpful" posts...that will cause newbies to learn bad things rather than good things. I mean, I still regularly see people post up patchwork code that uses ui commands rather than screen language...things that are really outdated/inefficient, etc. Heck! I've done it myself when I was newer. I'm sure I still post code that could be a lot better than what I've come up with. I mean I'm learning things all the time that make me rethink code I've posted in the past. I've posted examples of classes that don't inherit from "object" because I didn't realize if you don't, those objects won't properly participated in saving and rollback...and I just learned that not too long ago!

Another thought. Some of the things in the cookbook are really old. Really such a project would need some expert coders to go through everything and see what is still relevant, what is outdated, what actually isn't good code, what is...and then review everything with major updates. It is doable...but would take work.
Glad to hear your thoughts about it! The more I think about it, the more I like it. I come across the same issues you mentioned, particularly finding the right keywords to search. Doing a Ctrl+F to find words on a single webpage is a lot more easier than through forum threads, even with the useful highlighting feature.

Old code will need a lot of pruning. Some would be easier to identify if it contains ui commands for instance, like you said, but the bulk of the work will be in updating and refactoring it. Sometimes I find myself wondering if I should go back and fix up my code or continue on until completion, and use those best practices in the next project instead. It's a huge task, I agree.
HiddenCreature wrote:I think the community should really consider recruiting volunteers to make a more in-depth Ren'Py tutorial game, or a series of instructional YouTube videos. The Ren'Py documentation is already written in pretty plain English, so it's easier to learn. But I know lots of people (myself included) are visual learners, and need some examples they can reference.

I think trooper had the right idea in finding easier ways to teach Ren'Py, rather than easier ways to use it.
The in-depth tutorial game is a great idea too since it offers code with a visual example. My only concern is that it'll encounter the same problem as the original tutorial game bundled with Ren'Py. Most questions asked can be answered by simply playing the game, but a lot of people don't realise it's there. I had the same issue at my workplace when instructions to operate a piece of equipment was located right where the equipment was, but so many people neglect to read it and end up with issues. If the tutorial game promoted enough however, it can work to be very useful, especially to implement the more complicated features not found in the Ren'Py one.

Videos are a hit and miss for me - I do like seeing someone else doing tutorials, but sometimes I want them to get to the point and show the code. It can be more helpful for others, I'm sure! The additional audio portion is also a plus.

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

Re: Are There Plans to Make Ren'Py More User-Friendly?

#20 Post by xela » Sat Jun 06, 2015 2:47 pm

What examples are needed exactly? I've been going over forums of RPG-Maker, Gamemaker, Unity, Qt and other engines, some are more powerful, more advanced but they do not seem to have better forum support or documentation than Ren'Py does.

There are some things that you just need coding and dev experience to use or understand. Even if there we add 1000 new examples of ATL, UDDs, Equipments/Stats, functions and classes of all kinds, we will not satisfy the demand because it will not help users to understand them (and chances of an advanced example to do exactly what the "user" needs are VERY slim). For the first year using Ren'Py (without any significant previous coding experience), I could find dozens examples of using different functions and classes Ren'Py offered but could not understand them and more importantly, how and when they should have been used.

Best way to learn how to code and figure out your development environment is to use it, create/find problems and tasks and solving them... There is a point where examples and tutorials become counter productive because to use them effectively and understand their code, one simply requires knowledge and experience that he/she might not have.

*So once again, what examples/tutorials are we lacking and what is there in Ren'Py that is poorly explained?
Like what we're doing? Support us at:
Image

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

Re: Are There Plans to Make Ren'Py More User-Friendly?

#21 Post by philat » Sat Jun 06, 2015 3:23 pm

I think the problem is that there are some pretty separate elements at work. Renpy script, and its associated languages like ATL or screen language, are relatively straightforward, I think, and the existing tutorials in the cookbook are pretty good. But to do anything particularly advanced, you will almost always run into python problems, and there's just no way to teach people how to do things in renpy, separate and apart from a basic understanding of python.

For instance, when I started out, I came across this code. http://www.renpy.org/wiki/renpy/doc/coo ... ource_code

The wiki goes out of its way to explain every. single. line. Didn't matter. I couldn't understand it. Because fundamentally, I didn't understand python classes and methods. Looking at it now, I can appreciate the amount of thought and effort that went into writing this tutorial, but it doesn't really help people who have no python (or similar coding language) experience. Another example is the lip flap/blink code that someone's just asked about -- good luck explaining that to a newcomer.

At the same time, what's the point of trying to explain/teach python in this forum when there are already other resources out there that are much better at teaching python, e.g. Codecademy or Learning Python the Hard Way?

I also echo that like 90% of the basic questions asked here could be solved by newcomers actually studying The Question and the Tutorial, so one thing might just be to sticky that...

ETA: I can appreciate that some people would prefer youtube tutorials, but my god, I hate video tutorials. The linear nature of videos and the fact that everything goes at the speed of the presenter rather than the learner, plus the Wadsworth constant (http://knowyourmeme.com/memes/the-wadsworth-constant)? That said, I know that's my own personal preference, so far be it from me to discourage others from making video tutorials. I just also think that there may be a correlation between an affinity for text and having achieved at least middling familiarity with renpy. ;)

HiddenCreature
Regular
Posts: 178
Joined: Sat May 16, 2015 8:00 pm
Projects: Vampire: The New Birth
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#22 Post by HiddenCreature » Sat Jun 06, 2015 3:53 pm

@trooper

Yeah, Code Academy is where I first learned the basics of Python, before trying to learn Ren'Py. The main difference we'd need is unlike the academy, we need to provide the solution to the answers. They only provide hints, and you have to find the solution in the forums (that's my only issue with it personally). Plus, it has the bonus of a more hands-on experience. Applying what you learn ensures you retain it better.

@philat

The point is people are trying to learn Ren'Py, not necessarily Python. Ren'Py doesn't utilize every possible feature Python has. So people here only want to learn as much Python that is relevant, to what they're trying to do for their novels.

If I want to learn how to show images and make basic dialogue, I can either read the Ren'Py quickstart guide which is right to the point. Or I can wait a few lessons on Code Academy before I learn how to make say statements.

EDIT: I just realized, since Code Academy does allow you to make your own courses, a Ren'Py tutorial similar to their approach is probably more doable than we think. The only downside is no images, so they'd have to copy and paste their code and use the Ren'Py launcher.

Onishion
Veteran
Posts: 295
Joined: Mon Apr 20, 2015 10:36 am
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#23 Post by Onishion » Sat Jun 06, 2015 4:40 pm

My suggestion would be to have a place where users can suggest documentation examples, like write them up but not make them immediately public, and then some of the more trusted heads can double check them for functionality and safety before officially importing them into the documentation. I think this would be the right balance between safe, and the editors not having to do a ton of the work.
What examples are needed exactly? I've been going over forums of RPG-Maker, Gamemaker, Unity, Qt and other engines, some are more powerful, more advanced but they do not seem to have better forum support or documentation than Ren'Py does.
Well, I'll give an example. If you go to the ATL and transform page, you look up under "choice statement," and it describes the element, and this gives this example:

Code: Select all

image eileen random:
    choice:
        "eileen happy"
    choice:
        "eileen vhappy"
    choice:
        "eileen concerned"

    pause 1.0
    repeat
Now I can understand how that works. That makes sense to me. Then I look under "Event Statement":

"
Event Statement

The event statement is a simple statement that causes an event with the given name to be produced.

atl_event ::= "event" name

When an event is produced inside a block, the block is checked to see if an event handler for the given name exists. If it does, control is transferred to the event handler. Otherwise, the event propagates to any containing event handler."

I have no clue what this does, and I don't even know how I'm meant to type out a line of code to access it. The "atl_event ::= "event" name" makes no sense to me.

Examples make it really easy for me to learn something, when you give a bit of code that shows off the various core features of a given expression, ideally with some commenting to explain what each line is doing and what each outside variable and other expression is doing there. I know some of the more serious programmers can learn straight from the raw documentation, but it's like one of those magic eye posters to me without some practical examples.

I do think there could also be some better organization of the documentation, maybe some redundancy to it. Like I think there should be an entire page devoted to "things you can use to make character sprites," that include all the possibilities of straight images, live composites, contains, etc. and explaining exactly what the strengths and weaknesses are with each, which is more efficient or more effective under what circumstances. I also think there should be one devoted to condition checking, one that includes all the things like if/elif/else statements, "choice," "conditionswitch," etc. all in one place. Right now those things are spread all over the documentation in specific segments. Show all the various ways that you can check and compare variables all in a single location so that if I want to check a variable, I can easily find the best way to do it in that given instance. It really does seem like at least every tenth question on here is "how can I compare this to that during this sort of procedure?" I've figured out a lot of ways over the past few months, but I'm constantly stumbling onto some slightly more efficient way of checking or comparing things.

HiddenCreature
Regular
Posts: 178
Joined: Sat May 16, 2015 8:00 pm
Projects: Vampire: The New Birth
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#24 Post by HiddenCreature » Sat Jun 06, 2015 4:57 pm

This thread turned out to be more extensive than I thought. Clearly, there's room for better organizing/presenting Ren'Py's information, so people can more efficiently learn it.

I think the most practical first step is to make an official survey for Ren'Py users; what's their biggest concern, what would they like to see improved or replaced, possible suggestions, etc.

And then work from there, based on their answers. Maybe a new tutorial game, maybe instructional videos, or maybe new formatting to the Ren'Py documentation.

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: Are There Plans to Make Ren'Py More User-Friendly?

#25 Post by trooper6 » Sat Jun 06, 2015 5:22 pm

HiddenCreature wrote: @philat

The point is people are trying to learn Ren'Py, not necessarily Python. Ren'Py doesn't utilize every possible feature Python has. So people here only want to learn as much Python that is relevant, to what they're trying to do for their novels.

If I want to learn how to show images and make basic dialogue, I can either read the Ren'Py quickstart guide which is right to the point. Or I can wait a few lessons on Code Academy before I learn how to make say statements.
If people want to make a combat system, they are going to have to learn some Python, whether they want to or not. But some people don't actually want to learn, they just want code that works without learning how to make it...or even checking the documentation. So many people just grab some code they found somewhere without knowing how it works and just plug it into their games...then come to the message board when it doesn't work asking for someone to fix it for them. Again, without checking documentation or trying to learn the code. That isn't the fault of Ren'py not being user friendly. That is a clash of expectation. They want plug-n-play. In which case...I think there are other VN languages that might be better suited...languages where you don't have to know any code at all (theoretically, but I'm skeptical of that).

People sometimes barely know how to make a say statement and they want to know how to make a Inventory system and combat system and dress up game, etc right out of the gate. That isn't the fault of Renpy not being user friendly, that is people wanting to do things way out of their knowledge base without wanting to learn the steps in between.

One of the questions I see over and over again is for an inventory system. As if it is the most difficult thing in the world and Renpy is user unfriendly for not explaining it. But an inventory system can be dead easy. At its most basic it is just:

Code: Select all

$ backpack = set()
$backpack.add("Rope")
$backpack.add("Sword")
$packpack.add("Health Potion")
But a number of folks haven't done that work to understand what an int or a string or a set is (which is Python) and complain Renpy is user unfriendly.

Should the Renpy tutorial explain to people the basics of Python? Explain how to make classes and functions? Explain what a string it? When the CodeAcademy does all of that really well already? I don't know. Maybe? But even if people did, would people actually read it?

So, maybe there needs to be tutorials that are extremely basic like what I did in response to the thread "Explain to me like I'm 5: Inventory System"
http://lemmasoft.renai.us/forums/viewto ... =inventory
I haven't had time to put that in the cookbook yet...but I will at the end of the month after I finish my tenure packet.

Look over that thread and note the sorts of errors being made. Some of them are about not understanding the basics of Python. Some of them are about copying code without understanding what it does. Some of them are about not understanding flow of code. Some are about spelling errors. Some of it is about not having learned how to problem solve and think through what they want in steps (flow charting) to figure out what they need to do. None of that is really about Renpy.

When I wrote that series of posts, I had time (was procrastinating) and didn't mind doing it. I'm planning on doing more of those when I have time. But I can imagine a lot of experienced coders don't want to make tutorials like that. (I'm thinking of doing a tutorial for screen language elements in the future, because I have fun doing it). But even if I did it, would be people read it? There seem to be quite a large number of people who don't actually want to read tutorials, they don't search the message boards, they just want their game to do whatever they want it to do without having to read anything.

But a larger issues seems to be not thinking methodically from a to b. Not recognizing the way that there is often many ways to get an answer depending on what you want to do...but you have to know what you want to do.

Let's take an example of what I mean.
Someone will post to the Questions section something like: "I'm brand new to Renpy, I want to create a turn-based combat system like in this AAA game I played, can someone show me how to do that, with working code that I could put in my game? Renpy is not user-friendly because it doesn't have a tutorial on how to do that!"

Woah! Um...there are a thousand different ways to make a turn-based combat system. How do you want your combat system to work? I mean, specifically? People ask and they haven't answered that basic question yet. If they built a plain language flow chart of how they wanted combat to work, they could probably figure it out themselves--assuming they know how to made a class, a function, and use numbers...which the CodeAcademy course will teach them,

Have I done a combat system yet? Not really. I've done some basic, basic menu based things to explain concepts to folks in the message boards. Yet, I don't think the actual coding part for something more complex would be that difficult. But it is the conceptualization of the system *which has nothing to do with coding yet* which takes time. Something most people asking haven't done.

But were I to make a detailed combat system (and one day I will) I'd have to start by working it conceptually.

Okay. I want players to have hit points. Do I want hit locations? Do I want hit points per hit location or damage thresholds per hit location?
Do I want crippling rules? If a person has a limb crippled, what game effect to I want that to have? Do I want there to be negative effects if you are under 1/2 your hit points? Under 1/3?

Do I want bleeding rules? Do I want stun or knockout? How do I want to do death? Automatically at 0hp? or at -HP?
Do I want non-lethal ways of disposing of enemies?
Do I want options to involve attacking only or do I want also defense options?
Do I want this to be on a map and use facing and a distance? Do I want weapon lengths? Or do I want this to me more abstract?
Do I want players to have fatigue points? What would they use them for? Magic? Extra effort in combat?
Do I want magic? How would that work?
Do I want people to be able to use non-combat skills like Intimidate or Fast Talk?
Do I want movement?
How do I want to resolve attacks and defenses? Straight up comparison of attack vs. attack? attack vs. defense? Do I want a die roll? 3d6 for a nice bell curve? 1d20 for...not a nice bell curve? Do I want contested rolls? Or no contested rolls?
Do I want the player to have team mates? Do I want the team mates to do their own thing (which I'd have to program) or do I want the player to be able to control the team mates?

There are a lot of questions...and they have to be answered before the coding can even start. This is almost never done. Same thing with inventory. People ask about how to make an inventory system...but, again, there are conceptual questions not answered.

Do you just want a list of things you have on your person? That's easy. See above.
Do you also want to track the cost of those things and how much money you have?
Do you want to be able to buy and/or things at stores? Do you want to the price to fluctuate based on factors like scarcity/surplus? Or Haggling skill?
Do you want to track encumbrance? If you do then you need to track weight...and how much a person can carry. Do you want to not allow someone to carry more than their weight limit? Do you want to have penalties for carrying too much? What sort of penalties? Do you want levels of encumbrance penalty?
Do you want to track the carrying capacity of each container so that they can't fit more that so many pounds in a backpack or in a pouch?
Do you want to track where on the body a person is carrying things--and then limit items per carrying location?
Do you want to track how much the gold coins weigh?
Do you want to track if something was stolen or not?

You can make an inventory dead simple:

Code: Select all

$ backpack = set()
$backpack.add("Rope")
$backpack.add("Sword")
$packpack.add("Health Potion")
Or it can be really complex. But before the coding is worried about the system has to be conceptualized. If it is fully conceptualized I find the coding is relatively easy. But people often don't take the time to conceptualize. It is all rush, rush, rush. Is that a problem of Ren'py not being user friendly? No.

So how to teach people to slow down, read things, conceptualize, and break things down into smaller pieces?

All of that said, I do agree with Onishion that there could be more examples in the documentation. I mean when I was working on the Bar Tutorial Like I'm a 5 year old (which I haven't released yet because I want to do more on it) I decided to use every element documented about bars I could find. I got everything working except for really seeing how I could create complicated custom BarValues--Like a bar that you can adjust manually, but that also is animated when it adds or subtracts numbers some other way. And I asked about that one thing and no one could explain how to do it. So...what is the point of making your own custom BarValue if I can't do anything besides reproduce the already defined BarValues (like Animated Value, etc)? And example would have been nice. But if I figure it out...I'll make that example!
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

Onishion
Veteran
Posts: 295
Joined: Mon Apr 20, 2015 10:36 am
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#26 Post by Onishion » Sat Jun 06, 2015 5:44 pm

And btw, I will say this about a tutorial game, it might really help newcomers, if they realize it's there and try it, but better reference materials would be better, to my mind, because a tutorial game is all about cramming everything into your head at once, more of a primer, whereas if I'm writing some segment, and know that I want to do something but can't figure out exactly how, I don't want to run through a tutorial, I just want to load up some page that explains in an understandable way how to do the thing I want.
One of the questions I see over and over again is for an inventory system. As if it is the most difficult thing in the world and Renpy is user unfriendly for not explaining it. But an inventory system can be dead easy. At its most basic it is just:
Yeah, but as someone who wrote my own inventory mostly from scratch, a really functional inventory system can be pretty complicated, when you get into checking how many of an item is in there, displaying the inventory to the player in some clean manner, etc. I was completely lost on that one until I went to Python.org and went through their tutorial process on how lists work, and I'm sure there are still better ways I could have done it.
Should the Renpy tutorial explain to people the basics of Python? Explain how to make classes and functions? Explain what a string it? When the CodeAcademy does all of that really well already? I don't know. Maybe? But even if people did, would people actually read it?
I think it probably should, especially given how many novice programmers the game attracts, or it should at least hotlink to the relevant python.org pages.

When I wrote that series of posts, I had time (was procrastinating) and didn't mind doing it. I'm planning on doing more of those when I have time. But I can imagine a lot of experienced coders don't want to make tutorials like that. (I'm thinking of doing a tutorial for screen language elements in the future, because I have fun doing it). But even if I did it, would be people read it? There seem to be quite a large number of people who don't actually want to read tutorials, they don't search the message boards, they just want their game to do whatever they want it to do without having to read anything.
Another thing to keep in mind is that tutorials work best if they are listed cleanly on the Renpy site. My process when I hit a wall is to 1. go to Renpy.org and run a search for words that I think might have an answer for me (sometimes I don't even know what words I need through). 2. Come here and search on the forum for the same, but there's a lot on here and it can sometimes be hard to narrow down the exact response I'd need. 3. Ask directly. Still though, if you don't know what you don't know, it can be hard to find the information yourself, you don't know how to phrase your question in a way that a search engine can give you useful results. ;)

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: Are There Plans to Make Ren'Py More User-Friendly?

#27 Post by trooper6 » Sat Jun 06, 2015 5:56 pm

Onishion wrote:
Should the Renpy tutorial explain to people the basics of Python? Explain how to make classes and functions? Explain what a string it? When the CodeAcademy does all of that really well already? I don't know. Maybe? But even if people did, would people actually read it?
I think it probably should, especially given how many novice programmers the game attracts, or it should at least hotlink to the relevant python.org pages.
Maybe the Renpy tutorials should teach people Python. I don't know. I think the CodeAcademy course is the best thing...maybe it should be hotlines...as well as hotlines to the python.org pages. I just don't know.

ETA: I think another thing to think about is something you mentioned here. Renpy does attract movie programmers. It also attracts some really, really young people--12 years old, etc. Who may not have some of the basic experience with computers that older people have. Maybe not even all of the reading skills that oder people have. I mean, I was a strong reader at 12...but a stronger reader at 17, you know?

So should there be Renpy for Kids tutorials? Should there be tutorials aimed at people who don't exactly know how to download programs from the internet but really want to learn how to code? Maybe.

But I think that might actually be better off as a separate project. A very specifically: "Introduction to Computer Programming through Renpy" Something that explains concepts like Objects and things like that. I don't know.
Another thing to keep in mind is that tutorials work best if they are listed cleanly on the Renpy site. My process when I hit a wall is to 1. go to Renpy.org and run a search for words that I think might have an answer for me (sometimes I don't even know what words I need through). 2. Come here and search on the forum for the same, but there's a lot on here and it can sometimes be hard to narrow down the exact response I'd need. 3. Ask directly. Still though, if you don't know what you don't know, it can be hard to find the information yourself, you don't know how to phrase your question in a way that a search engine can give you useful results. ;)
This is one of the reasons I really like SinnyROM's suggestion of a page that lists under general categories, links to relevant cookbook threads, message board answer threads, etc that deal with frequently asked questions. Basically a new FAQ page with links to threads.

The FAQs I see over and over?
How do I make it so the player can't skip past my animation?
How do I make a combat system?
How do I make a day planner?
How do I make an inventory?
How do I have an affection point stat?
How do I make a bar?
How do I make a screen?
How do I compare two numbers? Three numbers?
How do I do the Phoenix Write beeps?
How do I make a cell phone?

I am sure there are others...those are the ones I recall seeing over and over. Some of those questions are Ren'py questions. Quite a few of them are Python questions.
I new FAQ page would probably be good--with links to resources.
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
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#28 Post by xela » Sat Jun 06, 2015 7:20 pm

Onishion wrote:Then I look under "Event Statement":

"
Event Statement

The event statement is a simple statement that causes an event with the given name to be produced.

atl_event ::= "event" name

When an event is produced inside a block, the block is checked to see if an event handler for the given name exists. If it does, control is transferred to the event handler. Otherwise, the event propagates to any containing event handler."
You prolly doesn't understand it because it doesn't correctly describe what the event statement actually does :)

*One note here: I think this was never finished properly, it should do what is described here, basically:

Code: Select all

transform meow():
    on my_event:
        #-ATL Instructions
    ...
    ...
    ...
    event my_event # passes the instruction to the on_event block.
this is what the documentation states.

But in practice it works only from inside of some precoded events like show/hover and etc.

It's been discussed and is quite easy to find on the forum...
Onishion wrote:I have no clue what this does, and I don't even know how I'm meant to type out a line of code to access it. The "atl_event ::= "event" name" makes no sense to me.
This is very close to suggested dev guidelines set out for python developers by creators of the language. Not really sure why you're having issues here.


===
Barring the event statement, there are plenty of examples of ATL all over the forum, Tutorial and the cookbook. It's impossible to write out every possible combination... you will not be able to use ATL effectively without a LOT of practice, no matter how many of those examples you'll read.

I'll give you an example:

Asceai knows Python and Ren'Py REALLY well.

When asked about how to place a bunch of displayable in a circle around a specific set of coordinates, he suggested this:

http://lemmasoft.renai.us/forums/viewto ... le#p313971

which worked, but he quite successfully reinvented the wheel... Same thing can be done with 6 lines of ATL without any calculations (+ the obvious iteration over the list). Two extra lines of script and you'll have the buttons making circles around the coordinate :)

*He is (or was due to being away for a while) one of the most knowledgeable and experienced people in Q&A section, and yet, how to do the same with ATL was not apparent to him.

===
Another example, couple of weeks ago, I was asked to help figuring out how a game similar to this:

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

in Ren'Py. I wrote some code that did the trick but was a bit clumsy so I went on IRC and asked PyTom if he had any ideas on how to use ATL inside of a CDD without my:

Code: Select all

renpy.show()
renpy.restart_interaction()
nonsense.

His answer was: Don't use ATL, calculate the path manually, which wasn't hard with linear path but once again, felt like reinventing the wheel.

And then it hit me... why not use At.render() inside of your own CDD's render and blit it. And it worked perfectly!
===

So it's not just that someone with 1000+ posts with almost exceptional knowledge of Python and Ren'Py sees the most convenient way, it's sometimes not immediately clear to Ren'Pys developer what a good way is to make something unconventional.

My point is that almost everything that can be explained in Ren'Py with ease and can be understood by a normal user, is already explained really well in multiple sources. Advanced stuff is close to impossible to explain and just has to be learned the hard way.
Like what we're doing? Support us at:
Image

Onishion
Veteran
Posts: 295
Joined: Mon Apr 20, 2015 10:36 am
Contact:

Re: Are There Plans to Make Ren'Py More User-Friendly?

#29 Post by Onishion » Sat Jun 06, 2015 7:54 pm

You prolly doesn't understand it because it doesn't correctly describe what the event statement actually does :)
That might be part of it. ;) Seriously though, that sort of description, with the hard syntax for how an expression works, doesn't usually mean a lot to me. I don't usually know what I'm supposed to leave as-is, and what I'm supposed to change to make it work for me. I don't know which words are specific to that expression and which are arbitrary placeholders. An example tends to make that more apparent.
This is very close to suggested dev guidelines set out for python developers by creators of the language. Not really sure why you're having issues here.
Because I'm not very good as a python coder. ;) I mean, that's the real divide here, for people that are experienced programmers and are familiar with how programming in general works, and especially for people who already know the ins and outs of python, I'm sure the Renpy documentation is plenty, but for people who have a limited knowledge of programming, and are learning python as they go, they don't really have the "decoder ring" to make those bare documentations legible, while an example can be more easily understood. I think your example of how the event statement works makes a lot more sense to me, although admittedly I'm still not exactly sure where I'd find a use for it.

I'm not saying this would solve everything or stop all questions, but I do think it could help solve some of the more common and simple ones.

As for ATL, which I was spending a good bit of time messing with recently, it really wouldn't hurt it someone came up with some simple examples for how to move things in common patterns, along with documentation as to what each line was doing, and how it could be tweaked or added to other elements. I'm still trying to figure out why a multi-layered Contained animation causes one layer to work fine and return to a default position when I switch from the animated to the non-animated version, but the other layer to freeze in place when stopped rather than return to its default position like it's supposed to. ;)
My point is that almost everything that can be explained in Ren'Py with ease and can be understood by a normal user, is already explained really well in multiple sources. Advanced stuff is close to impossible to explain and just has to be learned the hard way.
True, I think my position in all this is that there are just a few common lessons that, while people might be able to find them buried in some forum thread already, it would be more convenient if they were right there in the official documentation too.

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

Re: Are There Plans to Make Ren'Py More User-Friendly?

#30 Post by xela » Sat Jun 06, 2015 8:16 pm

Onishion wrote:As for ATL, which I was spending a good bit of time messing with recently, it really wouldn't hurt it someone came up with some simple examples for how to move things in common patterns, along with documentation as to what each line was doing, and how it could be tweaked or added to other elements.
But it would be useless?!? Two or more of any displayable with different initial positions and provided the exact same movement instructions will move in a common pattern :)

There is nothing to document here with dozens examples all over the forums, tutorial and a lot of open sourced games.
Onishion wrote:I'm still trying to figure out why a multi-layered Contained animation causes one layer to work fine and return to a default position when I switch from the animated to the non-animated version, but the other layer to freeze in place when stopped rather than return to its default position like it's supposed to. ;)
It sounds like one of the displayable is instantiated and used for both, still and animated version while the other has two separate instances for each or Ren'Py is handing it that way for some reason.
Onishion wrote:True, I think my position in all this is that there are just a few common lessons that, while people might be able to find them buried in some forum thread already, it would be more convenient if they were right there in the official documentation too.
Maybe... it would take a lot of effort and I am not quite sure if the rewards warrant that.
Like what we're doing? Support us at:
Image

Post Reply

Who is online

Users browsing this forum: Google [Bot], Ocelot, zyric