Learning

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Post Reply
Santos
Party member
Posts: 384
Joined: Sat Oct 22, 2011 7:37 am

Learning

Post by Santos »

Hi all! ^^

There are a few related questions I've been wanting to ask...

First, a question for experienced programmers: how did you become an experienced programmer? What/why/where/when/how did you learn? What guided your path? What do you do during a day, programming-wise? (This is pretty personal question! If you'd like to discuss this privately, we could do so PM styles.)

Second: Tutorials. Do you go through tutorials? Did you go through tutorials? Do you like tutorials? Do you like video tutorials, or text tutorials, or interactive tutorials, or do you have a favourite structure or style? Is there a stage when someone is simply beyond tutorials, and they no longer could be useful? Do you wish there were tutorials at your level? I sometimes feel there are fewer game development related tutorials than I would expect, do you think this too? Do you know why? Any favourite tutorials outside of LÖVE? *Insert every other possible question with the word "tutorial" in it here.*

Third: It seems there are three things you need to learn in order to make games with LÖVE:
  1. Lua
  2. LÖVE
  3. Everything else
What is everything else and how would be a good way to go about learning it? Of course, all games are different, but would it be possible to compile a list of, say, 90% of the things used in a game for 90% of games? Would it be possible to "map out" the terrain of game development? Has this been attempted?

Questions! :ultrahappy:
User avatar
easy82
Party member
Posts: 184
Joined: Thu Apr 18, 2013 10:46 pm
Location: Hungary

Re: Learning

Post by easy82 »

Hi!

My short answers to your many questions:

1. In my opinion, to be an experienced programmer is a matter of: time, practicing and dedication.
As a sidenote, I don't really regard myself as an experienced programmer, but I code for 20 years by now.

2. Yes, tutorials are useful, they make the learning process quicker and also helps you to decide weather you like the library at all or not. One thing I'm usually missing is that they show off the easy parts but there are no intermediate or advanced level tutorials. That would show how much potential the library has.

3. Lua, LÖVE, and everything else for me is: planning, code structuring, design patterns, drawing (raster, vector art), animating, modelling, rendering, making music, game design, lots of testing and debugging, studying, searching for answers and solutions...

The best way to learn it is to do it, actually. :)

Cheers,
easy
User avatar
kikito
Inner party member
Posts: 3153
Joined: Sat Oct 03, 2009 5:22 pm
Location: Madrid, Spain
Contact:

Re: Learning

Post by kikito »

Santos wrote:how did you become an experienced programmer?
A great start for learning anything is learning how to ask questions properly: short version & extended version. Some of the advices on those links would have helped you make your post a bit better (so you would have had better, faster answers).
Santos wrote:What/why/where/when/how did you learn?
Programming is actually a quite extense field. Try everything twice, and see what picks your interest. Then go deeply into those parts. I, for example, like high-level programming - handling pure abstractions with code. I don't enjoy concerning myself too much with low-level details, such as execution speed, or how much memory the machine is consuming. My little brother is just the opposite (he programs linux kernel drivers for custom hardware, which is somethingI would not stand).
Santos wrote:What guided your path?
As I've said, the field of programming is a huge body of knowledge. It's humanly impossible to know everything about it. You must be prepared to never stop learning, in your entire life. If you ever think you know everything that is to know, you will be wrong. It's an open question; you can't simply answer it with a "yes" or "no" (or 42). Choose what you like, and start walking.
Santos wrote:What do you do during a day, programming-wise?
I do web programming in ruby on rails. It's a good life, and leaves me time to do game programming stuff as a hobby. The life of a full-time video game programmer is too stressful for me. Their days are long, and their working lives are short (also, the pay isn't great).
Santos wrote:... lots of things about tutorials ...
I'm going to leave you work a bit on this one by yourself. I consider that part of the "do your homework before asking" thing, referenced in the "how to ask" links above. Please don't be mad. I think you will learn more by looking for them yourself.

But I'll give you a hint: the forum has a search link, and the wiki has a tutorials section. I'll also include a link to my tile-based tutorial, which is not on those lists.
Santos wrote:What is everything else and how would be a good way to go about learning it?
I don't really know what you expect to get as an answer to that. The way you have written it, the only possible way to answer is "everything done in games which is not Lua or LÖVE" :). The 90% of an infinite set of possibilities is still infinite (even 1% is).
When I write def I mean function.
User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Learning

Post by bartbes »

Santos wrote: First, a question for experienced programmers: how did you become an experienced programmer?
Let's just get this out of the way, "experienced" has no meaning other than a lot of time spent with it, so by spending a lot of time programming.
That said, if you're looking for "good" programmers, I don't think anyone can objectively call himself good, skilled perhaps.
Santos wrote: What/why/where/when/how did you learn?
I think I first started programming in qbasic, and I made a small tic-tac-toe game, this can't have been much later than '98, and, with short intermissions, I have programmed ever since. A good thing about those old systems is that they were what I refer to as 'poke-able', it's easy to just poke at it and see what things do, and I still consider it very interesting to this very day. Another good thing is that those days there were proper manuals. I had two big paper manuals (and no, or limited internet access), one about qbasic, and one about ms-dos, and I coded. Whether the code was any good? Probably not, but I had fun, and what's more important than that?
Afterwards I have followed some basic tutorials to get me started with programming languages, more specifically, with c++, but really, I've never been much of a tutorial guy. Again, this goes back to 'pokeability', I just like to get a programmatic stick out every once in a while and poke at everything in an environment, and, as probably everyone will say, programming is all about experience, so I poked a lot, a I poked thoroughly, until I saw what was going on,
and what the results of my actions were.
Of course nowadays I am studying CS at uni, and I'm really enjoying learning about the fundamentals and the theory behind computers, algorithms and, of course, programming.
Santos wrote:What do you do during a day, programming-wise?
Well, mostly uni assignments, at the moment, and last weekend I participated in the Ludum Dare. I also spend a lot of time reading the internet about programming and related subjects, especially if it's something outside of my area of expertise, because I feel it's really important I know a bit of everything, because just knowing different perspectives makes you better working on things from your perspective.
But more importantly, not a day goes by where I don't think about code, whether it's just a mental challenge along the lines of "This is an interesting idea, how would I do this?", or something I'm working on at the moment, or something completely different I came across and am now thinking about, like a piece of software I discovered that day.
Santos wrote:Do you go through tutorials? Did you go through tutorials? Do you like tutorials? Do you like video tutorials, or text tutorials, or interactive tutorials, or do you have a favourite structure or style?
As mentioned before, I have gone through a couple of tutorials, but not many, I like exploring things on my own. I do, however, prefer text tutorials over interactive tutorials and moreso over video tutorials. The beauty of text tutorials is that you can go through in your own pace, write your own tests, look at the examples, play with them a bit, etc. I make my (plain) text tutorials interactive, in the way I want/need.
That said, nowadays I usually go straight for reference manuals, since I feel I know enough about how things work in general that reading through more is a waste. Also, this is where kikito's message comes in about asking the right questions, if I do find something I don't know about, I often know what to look for, either in more extensive documentation, or elsewhere on the internet.
Santos wrote: Third: It seems there are three things you need to learn in order to make games with LÖVE:
Only one, having fun. The rest (hopefully) follows.
Though one of the more interesting things for me is the architecture, just having a properly architectured game makes everything so much smoother and easier.
Santos
Party member
Posts: 384
Joined: Sat Oct 22, 2011 7:37 am

Re: Learning

Post by Santos »

Thank you all for the responses! :awesome:

easy82, thank you! I don't think I'd ever considered that tutorials could be used to help you decide whether you like something or not, and I do agree about the seeming lack of intermediate and advanced tutorials. It's made me think about tutorials with the purpose of demonstrating how a library works and all the things it can do.

kikito, thank you, I'm delighted you challenged my questions! :ultraglee: And thanks for your personal responses, it's really interesting to me, and you make a lot of sense.

I must say though, I kept these questions vague on purpose, and I tried not to include my "homework" or my own opinions, lest I influence peoples responses! I must also say that your tile-based game tutorial is fantastic, you really went the extra mile to include information about Lua too which is great, and one of the things which really enlightened me was how the tiles were stored as a string... I thought "huh... you can store information in the most natural way for you... and then your program can convert it into the most natural way for it to use... !" Also, Lua Missions broadened what I think a tutorial can be! :)

"Everything done in games which is not Lua or LÖVE" is indeed the only answer! :ultrahappy: And yet, is it reeeeeally infinite? Maybe it's infinity minus one! :ultraglee:

Just imagine listing, for all of the, let's say, 2D games made in the last *some number* years, which over *some number* people have played, all of the "things"... the mathematical ideas, the tools, the design patterns, the language features, the algorithms, etc. ... this would be like, thousands of things! And then... compiling a list, so that, for *some number* out of 10 of these games, this list covers *some number* percent of the things on their lists... and then organising it in a meaningful way... and then describing ways of becoming accustomed to these things...

It would be impossible! :o But would it be impossible, in italics? I am unsure. This is kind of a thought experiment. And also I'm kind of completely serious/insane.

bartbes, thank you, your response is really interesting, and surprising too! I got a lot from your post. A computer and two big paper manuals about QBasic and MS-DOS and no internet sounds... heavenly. I really like the way you approach things.

"Only one, having fun." :neko:
User avatar
Lafolie
Inner party member
Posts: 809
Joined: Tue Apr 05, 2011 2:59 pm
Location: SR388
Contact:

Re: Learning

Post by Lafolie »

Santos wrote:"Everything done in games which is not Lua or LÖVE" is indeed the only answer! :ultrahappy: And yet, is it reeeeeally infinite? Maybe it's infinity minus one! :ultraglee:
Hey, that's still infinity though. :monocle:

And do bear in mind that compiling a list of 'all löve games' would be somewhat inconclusive because you'd only be rounding up the small percentage of games that see the light of day. Well, I assume it's small, conjecture really, but going off of my lua project dir, only a few make the cut.
Do you recognise when the world won't stop for you? Or when the days don't care what you've got to do? When the weight's too tough to lift up, what do you? Don't let them choose for you, that's on you.
Santos
Party member
Posts: 384
Joined: Sat Oct 22, 2011 7:37 am

Re: Learning

Post by Santos »

Oh... well... infinity minus two then? :ultraglee:

I wasn't talking about just LÖVE games by the way, I was talking about aaaall games! But, it was kind of more like a thought experiment. Actually, perhaps a better way to convey what I'm thinking about...

Imagine game development is a land, which had a map. Of course its frontiers are unexplored, some areas of it are now uninhabited, and many fine details would be lost in a map. But what would this map look like? And the travel guide? The Lonely Planet Game Development Travel Guide? :ultraglee:
User avatar
Lafolie
Inner party member
Posts: 809
Joined: Tue Apr 05, 2011 2:59 pm
Location: SR388
Contact:

Re: Learning

Post by Lafolie »

I imagine it would have three predominant landmasses: Beta Land, Frontier Land and Capital Land.

Beta Land is a kingdom of dense florae and paradisiacal temperates populated by games that are tech demos, young engines, concepts, prototypes e.t.c. They are incomplete, scrapped, experiments or premises for other games. Beta Land is wild, lush and thriving with thrashing entities and mulch.

Frontier Land is a vast, varied landscape of games that extends into a large expanse of unexplored estate. This place is made up of games that build upon their predecessors, pushing boundaries, trying new things and re-defining the idea of what a game or a particular type of game is or should (could?) be. Frontier Land is as fickle as it is large. Its sprawling canvas features arid mesas, warm sands, ebbing rivers and pale mountains with pearl crowns, surrounded by verdant oceans of life. No-one knows the true span of Frontier Land, and it is impossible to map in its entirety.

Capital Land is a central location within the world. All roads can trace a path to this land of towering constructions and monolithic icons. Ruled by oligarchy, fueled by numbers, this polluted, densely populated land is more than tolerable for some. It houses games that suit a purpose, whose being is derivative from spreadsheets, charts and board meetings. Amongst the dystopia, however, there are many honest figures and beliefs, some of whom come from the Frontier & Beta Lands, some of whom immigrate there.

[edit]
Oh, Capital Land also has a large refuge dump where "finished" games that are just plain broken or incoherent or too intoxicated to function are sent. (Think Big Rigs).

As a whole, if you were to 'zoom out' and view the Lands thus far you would see patterns and trends in architecture, uniform contours over areas and seamless transitions from one habitat to another.
Do you recognise when the world won't stop for you? Or when the days don't care what you've got to do? When the weight's too tough to lift up, what do you? Don't let them choose for you, that's on you.
Santos
Party member
Posts: 384
Joined: Sat Oct 22, 2011 7:37 am

Re: Learning

Post by Santos »

That is awesome. :ultrahappy:
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 3 guests