Guides for new developers.

Not Me

Newbie
Jun 23, 2017
16
13
Part 1 is what I've been asking for.... Everyone seems to be pushing straight into languages. We need to find a guide to build the foundation first. What are libraries? tools? What's with using underscore so much? What does # do? Why so many indentations? Is WHITESPACE the same as a regular space ?

I never imagined i'd get this much resistance from the simple question of "where do you start?"

It's like trying to get into a secret society.

89 -- ok, here is my short version of how to get started:

1. Install Ren'Py. You should be able to find a number of YouTube tutorials on how to do it. If you get stuck on one of them, watch someone else's. After you see a few different ways to tackle it, you'll get it done.
2. Watch a number of Ren'Py basics tutorials. Find ones that at least think they are for the basics, the simpler the better. Same idea though -- as you watch one person's idea of what's basic, you will get stuck. Always. Expect it, don't worry about it. When that happens, don't get frustrated (again, expect it), and try watching someone else's. After seeing similar stuff from a few different sources, you will find the answer to whatever got you stuck before.
3. Download someone's game and see how it's built. For this, I'd recommend Vren's LabRats, because he is very public about making sure that all the pieces are available (none hidden or compiled) so that anyone who wants can learn from his game. I'd actually recommend contacting him to download an earlier version if possible, as his coding gets more complex as he learns more (which is cool!).
4. Remember that this is the kind of thing that a decent number of people make a living at and get paid for. You're jumping in a pretty deep pool. Doesn't mean you can't learn to swim -- of course you can! But it does mean that to get good at it, there are tons of things to learn.

TL; DR -- it takes time, and persistence.
 

Zenathos815

Newbie
Jul 26, 2017
49
23
@anne O'nymous Not gonna lie, I think I have learned more about Ren'Py here than I did from their own documentation.

Anywho, I think the cooking analogy is pretty spot on, reason being you have people that can burn water and you have people that can weave delicacies from roughly the same ingredients as hamburger helper (my american is showing)

The trouble with coding and in the context of the analogy is that there is no application for the learner to understand. Like some people learn to cook in order to be able to eat, some people enjoy it but there is an analogue way of figuring out what works and what doesn't, if you mess up it tastes bad, if you succeed it is amazing. To a degree coding can be the same but it isn't as natural for most people to figure it out. I find myself learning the most by example like picking through others' code and I am a bit of a brute force person who will try again repeatedly until I get what I want to happen or I get an error message that I can decipher. Thats not as easy as figuring out what tastes bad and what tastes good most of the time.

Now the biggest thing I have learned with all the different languages that I "know" is that it is easier when you have someone actually there who knows what they are doing. When I learned PHP I was totally frustrated with it, then I had an engineer who works with PHP explain it to me and ironically related it to python and I started to kinda get it. It's hard to get that from books and forums, and even I still suck at pretty much most of the languages I know. The biggest thing about guides and forums is usually the knowledge is passed down by those who already know to a point that it becomes hard to relate tho the one who doesn't know. That's why adults think children are simply stupid. Unfortunately being self taught means jacking it up so much that you have a cataloged list of things you know for a fact don't work or til you get something so janky that you post it and everyone points it out and some guy tells you 5 ways to do the same thing better. Maybe your best bet is to trade notes with noobs that might have figured out an element or two that you have not and vice versa. Keep trying and keep asking, the day that you blame the guides and give up is the day that the code wins and cackles at you as you walk away.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
9,953
14,552
The biggest thing about guides and forums is usually the knowledge is passed down by those who already know to a point that it becomes hard to relate tho the one who doesn't know.
In fact the problem is more psychosomething than anything else. Take what I said about '#' in my previous answer. I said that it seemed, at this time, that perhaps there was a language where '#' is used as variable prefix... Yeah, of course there's one ! It's Perl, my favorite language, the language I massively used during the twentish last years ! $#array is the last index of an array.
If I had had to address this last index in a code yesterday, I'm sure that I wouldn't had a single hesitation. But just talking about the subject and it become a, "well perhaps that, who can really say, but I'm not really sure".
Anyone figure out this problem the first time they try to help the bratstheir children doing their homework ; "wow, take it easy ! I'll help you, but first remember me, what's a verb ?". The more we use something, the more it stop to be knowledge for to become just a part of us. When using our native language we don't pass our time stating that, "here's the verb, and here's the subject", like we learned in school. We just do it. But when come the time to explain it, well it's not this easy.
And the same apply for any knowledge. The more a thing is near to the basis, the easier it's to forget about it and let the reader with a big, "so what's this exactly ?". That's why, when given the choice between two authors for a subject, I choose the one who's (or was) teacher. He don't have a better knowledge, but he past time with students, and after hearing so many, "but what about that", he tend to forget less things.
 
  • Like
Reactions: Zenathos815

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
9,953
14,552
This is great (10 hours)
Oh, just looking the start and an important thing crossed my mind. There's two versions of python, the 2.x and the 3.x.
While they are the same language, they aren't the same, er... language. There's few, but significant, differences between the two versions. So, even if the basis of the language are the same, using a doc/tuto for Python 3.x is not the good solution since ren'py use Python 2.x. You'll learn the basis, but quickly be confused because the result isn't exactly what shown in the doc. Or, worse, you'll not been able to understand why it don't work.

One example:
Code:
if not isinstance( variable, str ):
  variable = ""
A classical, you validate that the variable have the right type, and force a default value else. Learning Python 3.x, you'll think that it's 100% correct. Using it with ren'py, it will never work.
The difference is in the meaning of "str". For Python 3.x, it mean "all kind of strings", but for Python 2.x, it mean "ASCII strings only". And like ren'py tend to code all the strings of your game in unicode...
So, at the end, your code is technically correct, every single documentations talking about Python 3.x say that it's how you must do it. But it will never work with ren'py, because a string in unicode isn't an ASCII string. And you'll start a two hours search in both your code, the doc, stackoverflow and ren'py source code, before understanding why it don't work...
 
Jan 21, 2017
65
42
To make good games you need...

a writer(s)
an editor
an artist(s)
a coder
a social media troll who spams your game everywhere, and does not respond to critics
pretty much what my 3dsmax/maya/3d graphics Professor in College(and everyone in those courses...and every company that does it) said or will say..Biggest problem with learning any engine, is the language. And when starting off a first game, I have to completely agree with the person I'm quoting, cause working in a team to start with, is the best way to hands on actually learn what you're trying to start off with.
 

Balladiasm

Newbie
Aug 16, 2017
94
119
Hijacking the thread, currently learning ren'py and looking through Vren Lab rats and Deviant Discories from Jan the Spider (both make their codes public),i notice that Vren use init python and Jan use ren'py normal init, my question is: it is possible to use both in one script? because at some point i notice there some code easier to be written with python,and vice versa
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
9,953
14,552
(both make their codes public)
All ren'py games have their code public, but not all are legally freely reusable. It's not because a game is distributed with only rpa archive and rpyc files, that the author haven't put his code in public domain. In the same time, distributing unarchived rpy files doesn't mean that the author have put the code in public domain.


it is possible to use both in one script?
Yes. There's even the, too underrated, possibility to define your own ren'py statements.
 

Abadonna

Newbie
Sep 26, 2017
37
288
Main advice - start with something small. The smaller the better actually.
Tools are not so important, but art is. So I would recommend to find some money for a good artist.
Profit! :)
 

docclox

Active Member
Game Developer
Aug 20, 2016
562
562
For anyone thinking about learning Ren'Py:

Download the SDK and run it. There are two "games" that come with the software. One of them, "The Question" is a very simple, bare bones VN that illustrates you how to do narrative text, dialogue, choices and how to show character and background art. The source code is there and for the most part it's no harder than it would be if you were writing a script for someone else to code.

The other game is called Tutorial and is just a huge grab-bag of tricks with the games narrator describing more advanced things you might want to do, doing them and explaining how it works.

If you want to do an open-world sandbox, rpg, trainer game with advanced AI you're still going to have a learning curve. But if you want to tell a story, and maybe track a few stats, Ren'Py is about as easy as it gets.

[edit]

*ahem* SDK not SKD. As in .
 

RomanHume

Sommelier of Pussy & Purveyor of Porn
Game Developer
Jan 5, 2018
2,390
13,336
I know this thread has gone kind of stale, but I thought I would share my experience.

When I began my AS in computer programming several years ago the first language we were taught was Python. The book we studied from was . The book was so good that if I read the book the night before, I knew everything the teacher was going to cover the next day. It contained perfect step by step instructions that detailed what you were doing and why.

Once you learn one language, it's a breeze learning others because the logic doesn't change. From Python we easily transitioned into C++, Java, R, etc. That's the beauty of programming, once you understand how the logic works, control structures, decision trees, objects, etc, it is the same for every language. All you learn is new syntax, where to put periods and colons.

Now I haven't used python in years, but when I picked up Ren'py it all came back and everything about Ren'py, from the internal structure to the interface made perfect sense. And all because of that single book. Hope it helps. Ciao!