Page 1 of 2

How exactly should I learn

Posted: Sun Aug 06, 2017 10:10 pm
by HolicGlide
Hello, Im an ultra noob in programming and just started learning .lua, which is around 2 weeks total of rewatching tutorials/doing my homework from my programmer-friend (who doesn't know anything about lua) like "make a program to solve me (some) equation". After I convinced myself that my language knowledge is enough to make a simple platformer game, I found the game engine I like - love2d.
And I have a problem right now. I don't know how to approach the learning process. I made a text-game based on another person's tutorial and I don't like it because I used a reference (even though I thought-out how scripts worked on my own and happy with that at least).
Here's the example:
Right now I'm trying to give animation of walking to my character and I'm lowkey depressed. I'm gonna make a sprite sheet (easy), understand "real quick" how exactly to use quads (hard), decide if I look for additional help when I'll get stuck (VERY HARD) while not being able to think of a way to make my character change to idle animation, or make him turn different directions and "blah-blah ugly code", I already know A LOT of things I'm gonna try are not going to work. :ultraglee:
  • I think I'm stupid (or bad memory, I can't remember/use things if I don't understand/get explained on how they work)
    I don't know if it's healthy to watch tutorials or look for hints if you're stuck
    Even though I may be a little slow in brain, I want to be able to think of things on my own
    I'm afraid that spending time on "inventing bicycle" like learning how to (make/do) (simple/obvious) things is just a waste of time and is going to wear me out. Or am I just making an excuse for my laziness?
I learned that programming is all about "finding solutions" which gives you a great life experience, but is it worth the time and efforts? Will it educate me better? I can't find an answer on my own so I decided to ask you, people who probably went through something like that.
Am I being too proud? Should I just copy-paste some codes in my first projects? Is it okay as far as I relatively understand it? I really think it's not.
Am I stressing too much over easy things? Being too negative or paranoid? I'm used to put emotions in everything I do.
Again, I'm NOT looking for short-cuts but I thought maybe I should? Is that how someone in my place would act and it would be a correct path?
Halp please. Wrote so much only to explain the situation and my view-point better, sorry if it looks annoying.

Re: How exactly should I learn

Posted: Mon Aug 07, 2017 2:41 am
by TheMajesticMagikarp
Hi! Welcome to the Love2d Forum and Community!
Making a platformer in Love2d is not a simple task. The best thing to do when starting out programming is to learn the concepts and practice making simpler games/projects then leading up to making a platformer game. I would suggest using another game engine (such as game maker) which includes many tools that make it easier to make a platformer.
If you choose to continue to make a platformer on Love2d, my advise is it is okay to look at other people's work and learn from it.(P.S. There are many libraries that help with more complex programming).
Sometimes it is okay to copy and paste code and sometimes it isn't it really depends on the manner you do it. If you are just doing it for yourself and don't plan on making profit from the game it is probably okay.
Try taking small steps and don't get frustrated if something is too hard. If you get stuck on something for long, go program something that is easy and look for creative twists to improve.
Good Luck on your journey and keep creating and striving for the best!

Re: How exactly should I learn

Posted: Mon Aug 07, 2017 9:16 am
by Vrx8
you dont have bad memories, memorizing stuff on new game engine is hard.. if you never make games before and the fact that you just started to learn programming, i think love2d is a bad engine to start with

Re: How exactly should I learn

Posted: Mon Aug 07, 2017 11:16 am
by partnano
From my experience, when beginning something relatively new for myself, I like to look at as many tutorials and reference materials I can get my hands on. Usually I'll do a few of those tutorials through (without just copy and pasting), so I get a base model in my head of the thing I want to do. I'm okay with having tutorial code as my base and modifying it until it does what I want.

So you want to do a platformer? Break it down into smaller problems, like animation, like physics, like input, etc. Look up tutorials for all those smaller things, maybe even look up tutorials for really simple platformers (that aren't even really games). Soon enough you will have a base of understanding of things you need for projects on which you can just build on. Don't worry too much about 'doing things your own way', that'll happen completely on it's own.

Oh, and the most important part: Have fun! Coding and game development is an art form. I like to compare it to drawing: at first, you'll need to learn the basic concepts, play around with them, sometimes even in stupid ways and sooner than you know it, you'll make big, stunning pictures! :)

Re: How exactly should I learn

Posted: Mon Aug 07, 2017 3:27 pm
by HolicGlide
Nevermind, quads is easy. I'm having fun when getting wanted results, just was wondering how people go through this themselves.
I'm not going back or switching to another engines for now, I need to become :crazy: hokage.
Okay, if I'll get stuck I won't be afraid of copying code until I absorb it's power and be able to change it.

Re: How exactly should I learn

Posted: Mon Aug 07, 2017 3:58 pm
by partnano
There will be challenges, and even years into coding and gamedev I still have those "wtf, why does it do that?" moments. They are part of the fun. If you don't understand something, or are not quite sure of something, just play around with it until it makes sense! And if it still doesn't make sense, we as a community are always willing to help!

Re: How exactly should I learn

Posted: Mon Aug 07, 2017 4:21 pm
by HolicGlide
I know, it's all about solving riddles. That's why I didn't like that I'll have to look in other people's codes. I guess you have to find some weird balance. Thank you very much.

Re: How exactly should I learn

Posted: Thu Aug 17, 2017 3:44 pm
by fairenough
Here is a tutorial that really helped me wrap my brain around Lua/Love:

The thing is, there is no one answer to any of this stuff.

For example, when it came time to do collisions detection, I looked around. It looked like the one built into Love was overkill for what I was doing, but the bump library was too simplistic. So I found the HC library instead and am now learning that.

You have to HAVE TO stand on the shoulders of geniuses if you want to get anything done at first. Unwillingness to use what other people have done before is a slippery slope that leads to you writing games in Assembly code. I mean all programming languages are just things written by people to make it easier to write programs. So what's a framework on top of a language? (Love) What's a framework on top of that framework? (HC, hump, etc).

Use the tools at your disposal. At some point if you keep going, you'll end up at a point where, for example, the collision detection of HC is not meeting your needs, and THEN you can worry about writing your own damn physics engine. Right now, do what you can with what you have! :)

Oh, and keep your projects small at first. Don't be like "for my first game I'm going to create the new Symphony of the Night!" Build up to that.

EDIT: And other people's code is fine as long as 1) you're not selling it and 2) you're interested in expanding on it. I mention that second part because you can, for example, get someone's code for the player character. This is great. But then you start thinking "man, it'd be cool if he could double jump" or "what if she could wall-slide?" (just to use platformer ideas). That's when you dig into the code and really start learning the ins and outs of it: because you have to start bending it to your will. haha

Re: How exactly should I learn

Posted: Thu Aug 17, 2017 11:48 pm
by Lafolie
Stick with it and don't give up. Programming is a fickle mistress; at times you will feel like a god and at others you'll want to tear your hair out. When you've got something working show your friends. There's no better feeling than seeing someone enjoy a thing you created.

When it comes to learning and searching for solutions you'll find that as you build your skills you'll develop a better vocabulary for the subject. This is one of the most essential things in my experience. Knowing the lingo will improve your google fu and communication skills. Every time you hear a new term give it a quick look into. Even if you don't spend hours researching it just being aware of things will go a long way in the long run, and when the time comes that you need to learn or ask about a concept you'll have a much easier time no matter how vague your understanding might be.

Re: How exactly should I learn

Posted: Sat Aug 19, 2017 7:17 pm
by mmx256

I'm a noob in your forums, I even don't know Lua. I'm a Java web application backend developer, at the moment learning game development in Java. But guys, your community looks so great that I couldn't stay on the side unregistered. Thinking about learning game development in LOVE.

Even though it is too late to answer, and all the guys above said really good things and advices, I would like to add one more. More "psychology" driven answer. Because sometimes people get stuck because of their fears, doubts and assumptions.

To the topic starter: it is funny but the way You think looks similar to mine. I always do a lot of thinking, self-analytics, meta-thinking (thinking about my thinking process and the way I do it) etc. People say that I have "Woe from Wit". So... Your questions and doubts are all grown on the ground of not knowing what You are dealing with. You want to develop games, but you are totally unaware of everything: what to do, how to do, when... It is really awesome feeling, a foretaste of upcoming knowledge which will make You able to create something. And it is fine, because You will do something great.

All the stuff like "do I do things in a right way", "do I need or do not need something", "why can't I do that awesome thing like the other guys do", "to be or not to be" are just symptoms of unawareness, Your personal caution and Your self-analysis. A little more than a year ago I was thinking that more experienced programmers around me know some sort of magic or have "the answer to the most important question of the Universe" and I even didn't know which question. And I felt that the answer gave them power to do awesome things that I could not even think about. But this is gone. Now I can do a lot more, and I know how to find information and do something new for me. This feeling is awesome motivation in the beginning of your path, but it will go away after mastering a piece of fundamental things. You just feel that something changes inside and Your "level" goes up.

Don't worry, "magic" will not be gone, but You will know that all the magic is understandable and repeatable. This means that You will be one of those mysterious people that make computers do such a great thing like running a game. A tiny world created out of Your personal imagination, a part of Your personal world and You soul, where other people can live for a while.

A short version of my post: after getting to know a critical mass of things You will get rid of doubts and will be moving like a professional. Just code a lot, make game clones, then implement Your own ideas. This will build up You experience. An experience is not something that You can just learn from a book. And You will feel how to do right, when to copy-paste, when to invent a bicycle and so on...


I would advice You to wait with development of a platformer game. It's too complicated for a beginner. Yes, probably it IS possible to make a game having so little experience, but You will be just stalking jungle with a match. It's like trying to ride a bike when You just learned how to stay on Your feet. So You know now how to make a text-based game? Okay, make another one (something like Hunt the Wumpus, maybe just in a 2D space 8 x 8 cells), but relying more on Your experience rather than on copy-pasting. Think about Your ideas, plan implementations, check reference information if You need, and build that game more independently than the first one.

Then You can choose a simple graphical game, I would suggest Snake rather than Tetris, because in my opinion Tetris has more caveats and sharp corners. Snake is very straightforward. Don't make super-cool graphics or other complicated things. Let the snake be made out of squares, do the possibly minimal feature set. When core game is done, implement menu and other nice-to-haves. Then make another game that is more complicated (Space Invaders, Breakout). Learn things by demand. Break large problems into smaller pieces.

Half joke:
And... don't use game-making software. It is not the true way, You will not be proud of yourself.

Sorry for my English, I'm working on it.