Guides for new developers.

89tasker

Member
Jun 4, 2017
383
782
Is there a guide for new developers?

I constantly see many posters wanting to make new games, but many don't know how to start. Is there a guide on this site to help me (and others like me) who want to start development?

For example, what is the best engine to use for beginners with no programming knowledge?
 

captainJugs

Newbie
Jun 7, 2017
63
88
I don't remember seeing a guide here, but it is such a grey area with so many different paths you could take.

I think a new developer needs to
1. Decide what type of game he/she wants to make. Keep it simple and don't be not too ambitious.
2. Find a suitable game engine to suit the game.
3. Do lots of tutorials!

Another path would be to work with others, having someone do the artwork, story, or programming.
Maybe a collaborative project page on this site??
 

89tasker

Member
Jun 4, 2017
383
782
I've gone through the threads and people here seem to think Ren'py is the place to start.

Then you look at the beginners' manual for that engine (and youtube tutorials) and it's gibberish. The guide is written for coders. The introduction mentions scripts, logic lines, blocks, etc...like a beginner is supposed to know what those phrases mean. It's like trying to teach someone how to write in Russian by talking to them in Russian.

Is there actually a "start" here point or is the consensus in the community that "if you don't know, I can't help you."
 

captainJugs

Newbie
Jun 7, 2017
63
88
I've never used Ren'py but i know the pain of poorly documented software!

gamefromscratch.com covers lots of different engines, even ones that work more visually than code.
And has pretty good getting started section.

Edit

Link
 
Last edited:

89tasker

Member
Jun 4, 2017
383
782
I've never used Ren'py but i know the pain of poorly documented software!
gamefromscratch.com covers lots of different engines, even ones that work more visually than code.
And has pretty good getting started section.
Edit
Link
I've gone through a lot of "beginner's guides" and there is always one constant: they go from being simple to complicated really fast. Usually by neglecting to explain steps they forgot only coders know how to do.

example:
You don't have permission to view the spoiler content. Log in or register now.

I like that guide.
And since Renp'y has a foundation in the Python programming language, I also found this:
 

captainJugs

Newbie
Jun 7, 2017
63
88
Coder: That's how you build a boat from scratch.
Me: wtf?!
lol, I do know what your saying, I'm learning Blender (3d modelling) at the moment and it feels the same way.

Is Ren'py development all done in code? If so I can see how getting started would be a steep learning curve.
Python is a good language to learn, it was the first language my Uni introduced to all the new programming students. And was a good basis for learning other languages. Just stick with it and it'll all start to make sense.

I use Unity and i'm loving it, it allows you to create something visually. You just drag and drop 2d/3d models into a scene, add some lights and camera... then add coded scripts to make it all work. While I have a programming background i've had to learn about 3d modelling, texturing and lighting and it has taken me months to get my head around it.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,191
For me, the guide you're looking for don't exist because it can't exist.

Take cooking by example. There isn't a site where you can learn how to cook, from scratch without a single knowledge in cooking, a full luxurious wedding dinner for 100. For to achieve this you must start by learning the basis of cooking, the technical words and concepts, and so on. Then when it's done, why not the said wedding dinner.
It's the same for game development. It's not coding, it's a particular form of coding. You don't write a game like you write a client-server application or a multimedia player. If someone try to learn a a coding language, its paradigms and concepts, coding paradigms and concepts, gaming paradigms and concepts, a game engine paradigms and concepts, all in one, I'm not sure that this person will still want to do it after the first day.
Not only it's too many information, but the explanation would be full of digressions. Just an example, the possible few first lesson of the guide you search, let's say for ren'py :

[ren'py is a suit of lines of code]
[oops, must say that a line of code is]
[oops, must talk about instructions, functions and variables]
[oops, must talk about the immutability of python variables]
[alright, back to the difference between instructions, functions and variables]
[back to the line of code]
[oops, must talk about python paradigm for code formatting]
[back to the line of code again]
[congratulation, after ten pages you know that ren'py is a suit of lines of code]

Obviously it's cartoonish, but not untrue. I said it, it's like learning how to cook. If you don't know how to correctly cook fishes, don't expect to be able to cook a whole stingray for the wedding of your son. You still can try, but... well, take a look at the games here and the number of bugs in some of them.

So, first identify the language used by the game engine you want to learn, and learn this language. There's tons of sites for this, from total novice to already confirmed coder. Then, after two/three weeks you'll know enough and can switch to the game engine particularities and language variations. It will take more time before your "hello, world" code in unity/ren'py/whatever, but it will also save you a lot of time. This just because now you don't just know what to do, but also why you do it. And when you know "why", then "how" is never far away.
 
  • Like
Reactions: Zenathos815

89tasker

Member
Jun 4, 2017
383
782
For me, the guide you're looking for don't exist because it can't exist.

[congratulation, after ten pages you know that ren'py is a suit of lines of code]
The first person to write those ten pages (and the thousands after it) will be a millionaire.

The coding world is a language without a dictionary. I bet people were saying the same thing to Webster. "what? an entire book just explaining the meaning of words? but.. but... don't you have to know words already to read it?"
You don't have permission to view the spoiler content. Log in or register now.

A general question: how do coders learn how to do it if it can't be taught without already knowing it?
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,191
A general question: how do coders learn how to do it if it can't be taught without already knowing it?
Because, unlike what you said, it's not a world without dictionaries, there's even in this world. My first program was in Logo in the middle of the 80's ; basically, you wrote instructions that will move a turtle in the screen for to draw what's in your mind. Honestly I don't remember the title of the book I read at this time, but it was something like, "Logo for full noobiez brats who don't even know what a keyboard is, lol !". And there's still books like this, and even now sites like this.

This said, what you seem to fail to understand, is that all this is NOT about coding ; and it's probably because English isn't my natural language so, sometimes, I fail to correctly express my thoughts.
Take ren'py by example. It's NOT a programming language, it's a game engine ; the son of a programming language and a descriptive language. And it's the same for Unity, Game Maker and the others. Even the more descriptive ones, like Unity can be, need knowledge in coding if you want to go further than the basis.
Have a look at and . In both I tried to explain the problem as clearly as possible, but they talk about two radically different topics ; and still they both talk about ren'py. In a way, in the first I talk about painting, and in the second I talk about mechanical. Because it's what a game engine is: a tool for to create mechanical painting.

What you search is a doc which teach you about mechanical and in the same time about painting... Isn't it asking too much ? The doc you're looking for must have these three parts :
1) You know nothing about coding, so I'll teach you coding.
2) You know nothing about python, so I'll teach you python.
3) Alright, now I can teach you ren'py.
Now the question is, why do you expect for the same person to wrote all the parts ?
There's already tons of pages which cover the parts 1 and 2, why write about them again ? Especially since the fact that you are able to teach about a game engine doesn't mean that you know enough for to teach about the language it use, and even more about coding.
I probably can teach a lot about ren'py, but don't expect me to teach you about python. I learned enough for to use it with ren'py, and even for to mess with it, but that's all. As for coding, I said it, I started more than 30 years ago. My knowledge is valid but outdated, plus I'm a Perl guy, I love my unlimited freedom and now have a lot of really bad habits ; especially seen by a python user. But still, yes, I can teach about ren'py.
And it's the same for anybody. The guys behind the Unreal engine are great coders, but I'm sure that they'll suck as much as me if they attempt to teach about coding. Still they can teach you all you want about their engine.

There's no shortcut, you can't learn about a game engine without first learning about coding and about the programming language used by the game engine. That's all. I'm sorry if it don't reach your expectation, but it's like that, it's just not possible do to all the parts in the same time.
 

junkanon

Newbie
Aug 13, 2016
85
124
how do coders learn how to do it if it can't be taught without already knowing it?
From a person that's majoring in Computer Science and that has worked with gaming before: You do what you're told until you understand what the fuck you've done.

There are a lot of leaps of faith in the common approach to teaching coding, and it happens because the alternative is both boring and overwhelming. To know how some things are done in a language is kind of easy, you just copy/paste some lines and it's ready. To know why those lines work is a completely different thing, because the reasons come from a train of thought that's being developed since Ada Lovelace wrote an algorithm, before computers existed. Therefore people usually make you do stuff and then, when you have some more theory under your belt, they explain some of the stuff used. Somethings are never explained and you have to find out why they work for yourself, if you really want to.

Game developing (well done and optimized, etc) is hard because:
- Those who want to learn how to code must learn a particular way of thinking, and this way of thinking isn't natural to most people. It takes logic and problem-solving to a whole new level. It's about breaking a thought in a series of steps that the computer need to follow for it to work.

- Those who want to learn how to code games must learn how to take that way of thinking to a very complex environment, where people do thing you don't expect with reasons you can't understand messing with variables you didn't think were possible to tinker with, learning how to deal with simulating physics, dealing with images, sounds, etc, and using other people's codes (well documented or not). It's hard, defying and sometimes frustating. But it can be done, with patience and hard work, and the results pay off.

There's a guy that's writting a whole game in C, from the very beginning. He is building his engines, debugger tools, etc. He started in 2014. we're in 2017 and he isn't done yet. is his website.
 
  • Like
Reactions: Zenathos815

89tasker

Member
Jun 4, 2017
383
782
1) You know nothing about coding, so I'll teach you coding..
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.
 
D

dogk22

Guest
Guest
I'd recommend Python (Renpy language), the best to start programming right now imo.

Read. Learn. Read. Learn. Read a lot.







Not only that, Python is the future.



 
Jan 11, 2017
467
935
@dogk22 is python easier than java? I tried java (know the beginner stuff) and got many tutorials(books,vids) but can't bring myself to touch them,maybe python will take less time to learn and not get "boring".
 
D

dogk22

Guest
Guest
I can tell based on my experiences that Python is more easy and faster to learn than Java for novice programmers - and Python it's one of the most powerful programming languages out there.
 

pcg50

Member
Jul 3, 2017
328
593
Man i wasted my summer doing nothing could had learned python , maybe next year i will bookmark this
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,191
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.
Oh... Yeah, no. I understand now why nobody understood your question.

I'll try to explain you the misunderstanding, but first a warning : I'll take shortcut, and not always stick to the strict reality. What I'll say is the truth, but it seem for me that explaining the problem is, here at least, better that detailing explicitly the concept.
So, let's go with the points you listed as example :

- What are libraries ?
Er... libraries for which language and, first what kind of libraries ?
For C/C++/C# (and other but there's the most know), libraries are the parts of the language which aren't strictly instructions of this language. "If something = that", is an instruction, but "open( this file )" isn't. The last one is a function of the C libraries. It's fully a part of the official ANSI C language, but not an instruction. These libraries are always in binary form, and you'll find (almost always) natively in every OS.
But C/C++/C# also have user defined libraries. It's the same thing, and still a different thing. The same, because like the standard ANSI C libraries, they extend the language by adding functions which will do the thing for you. Mostly you find them in source format, and they are directly include inside your future binary program... Oh, have I forgot to say that the standard ANSI C libraries can also be include directly inside your future binary... or not, it depend.
Now there's libraries for other languages. Perl, Python, etc., all have their libraries. But they aren't named libraries, and while they are the same than these for C, they also are different.

- What's with using underscore so much?
Er.. here again, in which language ? Oh, and first, used, but where ?
_myVariable and my_variable are two way to use the underscore, and the reasons are completely different. The second one is just a way to write the names of variables, function, whatever can be named. It's a convention, but with no importance. Some write myVariable (camelCase), other MyVariable (PascalCase), and some my_variable (snake_case), but it change absolutely nothing ; really, nothing at all.
The first one, it's different. Well, in fact it's also a convention, but still it's different. Well, in fact Python is the only language where it's different, but still it's different, trust me... More seriously. With modern language came the concept of "objects" and later "private variables" ; where "private" is related to the object, which mean that they literally can't be used outside of the object.
Languages defined before this time evolved and included the notion of objects, but can't include the "private" thing. So, coders came to a convention. A variable/fonction/whatever starting with an underscore is private. Because of the way the language work, they can be used outside of the object, but the leading underscore mean, "warning, this is a private variable. Don't fuck with it ! In fact, forget that it exist, this isn't the variable you're looking for !"
But, like I said, this is "except with Python". Python kept the convention, but work a little differently when the variable have a leading underscore. The variable can be used outside of the object, but aren't always shown and, if I remember correctly, aren't exported outside of a module (the Python form of library, except that a library can be other thing than a module).
Python also add the double leading underscore, which have yet another meaning and don't work exactly like variable with a single leading underscore ; while they still can be used outside of the object. It also add the double leading and double trailing underscore, which is yet another thing.

- What does # do?
This one is easy, it's the way to mark a comment. Some language (C/C++ by example) use another way to mark a comment, but I don't know a language which have another use for the "#"... Well, speaking about it, something deep in my memory tell me that there's one which use it as variable (?) introducer, but I'm not sure.

- Why so many indentations?
Er... in which language ? No, I'll answer directly because I understood this one : Because Python users are insane :D
There's some language, Python is one of them, where indentation have a major importance, while most of the language don't care at all about them.
Here's a example of a basic function, firstly in Perl (voluntary not indented):
Code:
sub addition()
{
my res = 0
foreach( @_ )
{ res += $_; }
return a + b;
}
then in Python :
Code:
def addition( *args ):
    res = 0
    for i in args:
        res += i
    return a + b
In both example you have two blocs (an ensemble of code lines that form a single entity, but this ensemble can be a single line). In Perl, the bloc are started by a "{" and ended by a "}". In Python, you mark a bloc the ":" at the end of the line which introduce this bloc, and the bloc itself is all the line with a higher indentation that this line ; note that all the lines of a bloc MUST have exactly the same indentation.


- Is WHITESPACE the same as a regular space ?
Yes, but no, but still yes.
A regular space is one of the few whitespace, also name white characters. Another well know whitespace is the tabulation. So, in most of the language, tabulation and space are the same thing, but not in Python. In Python they are forbidden for indentation of the code.
In fact it come for a problem with a long, long history. Some people indent their code with space, some other with tabulation, and these people can work on the same code. As long as the tabulation is of 8 spaces, all is great, the space indented lines and tabulation indented ones are at the same level. But if suddenly a new coder start to work for the project, and have a tabulation of 5 spaces, the lines aren't indented anymore.
But the reason why they are forbidden in Python code is not aesthetic. It's just that what's the difference between two tabulation and 8 spaces ? Are they the same indentation or not ? Like it's the indentation which define the blocs, you need a strong knowledge here ; so, no tabulation.

And, voila, I answered your question. But I think that you feel more confuse now that after my answers. The misunderstanding is that you think that, generally speaking, "all the language are the same" ; by example, a library is a library whatever the language. In the same times, coders know that each language is unique, even those which seem the same.
Sorry again, but there's no way to escape it, you'll need to learn a programming language :D Don't worry, what "library" mean, why's the meaning of "#", and so on, all these questions will have their answer in the doc you'll choose. It's mandatory since the answer isn't the same for each language.


Edit: My god, my poor english skills :( I corrected the most obvious errors, sorry for the one I left.
 
Last edited:

polywog

Forum Fanatic
May 19, 2017
4,065
6,295
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
 
  • Like
Reactions: TyronTheButcher

junkanon

Newbie
Aug 13, 2016
85
124
@dogk22 is python easier than java?
Usually yes, and the tutorials are more recent and more newbie-oriented.

I never imagined i'd get this much resistance from the simple question of "where do you start?"
The easiest way to learn the thought behind programming is through a language of your choice. Any language can do the trick, really, the thought process is the important part. That said, Python is as good a starting language as any, with the added bonus of Ren'py being written in Python.

To offer a more substantial help, I liked the course from Udacity. It's kind of long, but the teacher is pretty good, and he explains a lot of stuff that happens behind the scenes. Also, the code you write during the course is actually useful, I used some of the stuff to write scripts for my daily job. Note: I'm talking about and linking the Open Course, which is free, not the Nanodegree, which is paid.
 

greyelf

Well-Known Member
Nov 16, 2016
1,088
817
I would suggest that a new game developer doesn't start with learning to code within whatever engine they choose to use, and that they instead focus on designing the type of game they want and what core functionality it will have.
eg.
1. What type of game? eg. Sim (like Fresh Start), 3D Story (like DMD), RPG with graphics (like pick one)
2. What values will need to be tracked?

Next I would suggest using software to plot out at least a first draft of the story-line(s) and the scenes, this can be added to after the actual code phase of the development has commenced.
I personally find using a mind-mapping tool (like Twine) can help with this part of the development because they allow you to: write the script; block out the scenes; display the graphics; and track the value of each variable as the story progresses.

Once at least some of both the core functionality and story design has been done you will have a better idea of what type of game engine you will need, and can start learn how to use that engine.
 

OhWee

Forum Fanatic
Modder
Game Developer
Jun 17, 2017
5,882
29,892
OK, so I'll share my experience learning RenPy.

I found a game I liked (in this case Lab Rats), but had the urge to mod it. So I studied script.rpy for that game for a bit to find my way around the code (most people are 'archiving' their games after they work on them. Vren hasn't been doing this. If you see .rpa files in the game folder, Unren.bat can extract the files for you).

Anyways, after playing around with the code for a bit (and saving often and backing up older files so I had fallback points), I changed/added the stuff I wanted.

My point here is that, if you look at how others are scripting their RenPy games, this can give you much more useful insight than the RenPy cookbooks. Basic storytelling in RenPy actually isn't very hard, but if you are trying to do more complex interactions with variables and such, that's where the difficulty creeps in. Fortunately, for a basic story you may not need to get very complex.

I use notepad2 for editing, although there are some nice RenPy script editors out there as well. And you really don't need to know a lot about Python to use RenPy, although it helps, especially if you are getting 'fancy' with your code.

And RenPy comes with a simple story/module called 'The Question', which you can use as a starting point to code your story. Of course, if you want to do more advanced things like changing the look and feel of the interface, that's more involved, but you can work on that stuff once you've become comfortable with the basic coding procedures in RenPy.

Some things that RenPy talks about in the basic cookbooks you may not actually need. An example being the 'emotion states' thing, where you track the emotional state of a character, and their graphic changes based on this state. This is a cool thing, but is not something that a lot of RenPy game writers use. They usually just set up the pose and facial expression they need in their renders.

I hope that you find this useful. RenPy can be a lot easier to use than it looks like from the outside, and looking at good examples can be very helpful in giving you insight as to how everything works.

And don't be afraid to ask questions. The Lemmasoft forum is specifically set up to help people understand RenPy, although the people that answer you may 'talk over your head' sometimes. Google is also your friend in this regard (Just put RenPy and then your question into the search parameter).

----

As for graphics, that's a whole other story. There are other threads that discuss the pros and cons r.e. which method/software to use for this, so I won't recap that here. I went the Daz route...
 
Last edited:
  • Like
Reactions: Not Me