How did you learn game programming ?

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Solitaire
Prole
Posts: 12
Joined: Mon Jul 29, 2013 1:50 am

How did you learn game programming ?

Post by Solitaire »

After a myriad of attempts and fails on making 2D games, I recently asked myself a question : How do other people make such good games, while I'm barely able to make a character jump. When I glance at games like Limbo, Super Meat Boy and The Binding of Isaac, I just wonder how did the people behind these "masterpieces" learn game programming ?

So, I'm asking you about your own experience : Did you learn by yourself things like collision detection, jumps and all that stuff, or did you follow tutorial from A to Z, and then inspired from them ?

I really need some evidence that I'm not a dumb good-to-nothing and worthless programmer and that I can really improve myself...

So, could you please relate about your own experience, or about other people's experiences ?
And could you give me some tutorial and sources about game developping ?
User avatar
Davidobot
Party member
Posts: 1226
Joined: Sat Mar 31, 2012 5:18 am
Location: Oxford, UK
Contact:

Re: How did you learn game programming ?

Post by Davidobot »

Solitaire wrote:After a myriad of attempts and fails on making 2D games, I recently asked myself a question : How do other people make such good games, while I'm barely able to make a character jump. When I glance at games like Limbo, Super Meat Boy and The Binding of Isaac, I just wonder how did the people behind these "masterpieces" learn game programming ?
Well, good artists, talent, experience and lots and lots of time.
So, I'm asking you about your own experience : Did you learn by yourself things like collision detection, jumps and all that stuff, or did you follow tutorial from A to Z, and then inspired from them ?
Well, I did follow some tutorials but most collisions and jumps come just from me laying out the problem step by step until I find a solution, then comes the optimising.
I really need some evidence that I'm not a dumb good-to-nothing and worthless programmer and that I can really improve myself...
I believe people that have common sense and can think logically can become programmers, never give up! :)
]So, could you please relate about your own experience, or about other people's experiences ?
And could you give me some tutorial and sources about game developping ?
Well there is http://gamedev.net/
And then there is also tigsource.
Also, the wiki is a good source of tutorials as well as YouTube.
PM me on here or elsewhere if you'd like to discuss porting your game to Nintendo Switch via mazette!
personal page and a raycaster
User avatar
master both
Party member
Posts: 262
Joined: Tue Nov 08, 2011 12:39 am
Location: Chile

Re: How did you learn game programming ?

Post by master both »

What I do is looking into others code, for example when i wanted to do collisions, I searched for the simplest platformers in the project area and see how did they deal with it. Apart from this there are threads for every problem you can think of and almost everyone is resolved.
Solitaire
Prole
Posts: 12
Joined: Mon Jul 29, 2013 1:50 am

Re: How did you learn game programming ?

Post by Solitaire »

Well, I did follow some tutorials but most collisions and jumps come just from me laying out the problem step by step until I find a solution, then comes the optimising.
Hell, when I try to do this, I always fail and think of myself as the dumbest programmer ever. How long does it take you to resolve a problem ? And do you have some exemples of games you made ?
User avatar
Davidobot
Party member
Posts: 1226
Joined: Sat Mar 31, 2012 5:18 am
Location: Oxford, UK
Contact:

Re: How did you learn game programming ?

Post by Davidobot »

Solitaire wrote:
Well, I did follow some tutorials but most collisions and jumps come just from me laying out the problem step by step until I find a solution, then comes the optimising.
Hell, when I try to do this, I always fail and think of myself as the dumbest programmer ever. How long does it take you to resolve a problem ? And do you have some exemples of games you made ?
Well a very complicated problem might take up to 1-2 hours, a simple one, well, maye 20 minutes.
Here is a list of all my demos/projects, the newest at the top: http://love2d.org/forums/search.php?key ... mit=Search
PM me on here or elsewhere if you'd like to discuss porting your game to Nintendo Switch via mazette!
personal page and a raycaster
Solitaire
Prole
Posts: 12
Joined: Mon Jul 29, 2013 1:50 am

Re: How did you learn game programming ?

Post by Solitaire »

Well a very complicated problem might take up to 1-2 hours, a simple one, well, maye 20 minutes.
Here is a list of all my demos/projects, the newest at the top: search.php?keywords=&terms=all&author=*Davidobot&fid%5B%5D=5&sc=1&sf=firstpost&sr=topics&sk=t&sd=d&st=0&ch=300&t=0&submit=Search
Wow... I'm jealous, now... :cry: Since when are you programming ? You learned it alone or is this your job ?
User avatar
Eamonn
Party member
Posts: 550
Joined: Sat May 04, 2013 1:29 pm
Location: Ireland

Re: How did you learn game programming ?

Post by Eamonn »

I've given a couple of people advice on how to continue. So, here's my advice:

You're being WAYYYYYYY too hard on yourself. I did not follow a tutorial on A-Z. I kind of followed a tutorial that led me from A-C, C-E, E-F, F-J, and I'm still far from Z. I don't know what anyone has got to Z yet, assuming they're not a developer.

Game development takes time. For instance, it took almost 3 years to make Portal I believe. Why do you think there's such a gap between games? In my experience, there's usually 2-5 years of a gap between games. Usually, it's 3. That's probably because they give the game a year or so to see how much popularity it gets, what the community thinks, get their team together, brainstorm ideas, etc. Then about 2 years for the actual game. This is not accurate, it's just kind of what I've came up with. Feel free to insult be for it being wrong, but it's basically what I've thought for years. Keep in mind a company like VALVe have teams of THOUSANDS, maybe even more! All these people are highly trained and have got degrees in the stuff.

You must remember that after you complete a tutorial you wont be an instant game developer. For example, let's look at Minecraft. Notch didn't make Minecraft overnight, he didn't learn Java or LWJGL overnight. He started programming when he was 9. He was around 29-30 when Minecraft was created(He's 34 now, Minecraft was made in 2009 -- 4 years ago. He would have been either coming 30 or was already 30). So, he'd been coding for about 20 years. 21, assuming he was 30. He probably would have went to a school to learn Java or read plenty of books on it. He would know a lot of advanced math and have very good knowledge of Game Design and Development. So, it's not like Minecraft was a fun little simple game he made as a first "Hello World" project. I'm sure there was a lot of failed projects, sleepless nights, facepalm moments, etc involved in the development of Minecraft. Minecraft could have been the product of 1,000,000 failed 3D games! Who knows? So, it might take 999,999 projects for you to get your 1,000,000th one right. Just keep trying.

So, what I did(and I still do this) was start work on a project I know is going to be difficult. Something I know that at the time of beginning it it's going to be almost too difficult. You might not get it right, but you can ask here. There'll always be at least one person ready to help. I know I've got inspiration from about 5 people, and I've helped about 3. So, they're advice is being modified, along with my own personal experience, to help you to help others, and so that person can help the other, and so on. Right now, you might think you'll never be able to help someone, but trust me, you will. I remember thinking that, and I'm helping a lot of people now. You'll still ask questions, but you'll probably notice that as you learn, what you have to ask get's less and less. Maybe you'll be in the middle of writing a thread for help, and you'll think of the answer. If you think the project is too hard make a simpler game, and keep doing that. Then, when you get the simplest one done, go to the one above it, and so on, until you get that perfect game you wanted.

As for resources for help. I'll leave links at the bottom of the reply. Some might just be shameless plugs to my own content, but I think it could help :awesome:

So, I learned from reading, asking, talking, failed projects, sleepless nights, tears and others. If you start a game, but half way through it you don't know what to do and you give up on it, I'll guarantee you'll have learned something from that failed project that will help you with your first project.

Just remember: We all have to start somewhere. I'm sure some of the moderators or the developers of LÖVE had to start somewhere. If they had have given up on their first failed game, we wouldn't have LÖVE. So, when you see people making these huge games, just remember that they had to start somewhere. They were once like you: Beginning and lost. Not knowing how or where to begin.

You know, I had my first game made in less than a month. But, that was when I found LÖVE. I spent about 3 years trying to find a good framework/language. It went like this:

Python
HTML, CSS, JavaScript, jQuery, jQueryUI
Python
Ruby
C++
Lua
Ruby
Lua
HTML5, CSS, JavaScript
Java
Xtend
Python
Java
Python
Lua

That was a rough, semi-order list of what languages I learned. I learned more, such as Squirrel and C, but I'm not sure what order it was in. I spent 3 years trying to find the right way to make a game. To be honest, I had no idea about the fundamentals of game development. I had no idea what a game loop was! LÖVE is awesome. It's just perfect in every way. So, I spent 3 years of my life trying to learn how to make a game. One of my biggest problems what that I looked at comparisons between languages. DO NOT PAY ATTENTION TO THEM. Find a language, no matter slow or fast, and if you like it, use it. If you don't, use a different language. I like Java, but it's apparently "Slow". If it's slow, why does Android run smoothly? Python's slow, but Toontown was written in it! So, ignore comparisons. And don't pay attention to people saying "If you can't use W engine with X language, what makes you think you'll be able to do Y engine with Z language?", because it's crap. You might be more comfortable in another language, and therefore could be able to do more.

I relate to you big time. You are being a little harsh though. "I really need some evidence that I'm not a dumb good-to-nothing and worthless programmer and that I can really improve myself...": Game programming or not, you're not a 'dumb good-to-nothing'! Game development might not be you're strongest skill, but you can exercise it. You might not be good at playing games, but the more you play, the better you get. In other words: The more you code and the more you learn and the more you succeed and the more you fail, the better you get. Failing is part of learning, in anything. When you were a baby, and you were learning how to walk, you would have fell countless times, but in the end, you learned how to walk, didn't you? If you had a theory of mind or were able to talk, you might have said you were bad at it and you wouldn't have been able to do it. So, just keep trying, and you'll get it eventually!

Now, I remember someone on this forum said to me that there is only so much you can tutorial-ise. But, people can help. Just because there isn't a tutorial on something doesn't mean no one knows how to do it. To be honest, I learn a lot from helping people. For example, if I look at someone else's .love, they might have something in there I didn't know about. So, I'll learn from that, and in turn help them. So it's an endless cycle of helping. Just remember: When asking for help, always attach a .love, if there is one.

If you have a Skype, add me and we can chat. Please, don't be so hard on yourself :megagrin: You'll get it all right in the end.

All I can really do is offer help, inspire you the best I can, and wish you the best of luck. Now, GO MAKE SOME GAMES, BOY!!!!! :ultrahappy: :ultrahappy: :ultrahappy: :ultrahappy: :ultrahappy:

Best of luck to you! Below are a lot of, if not all of the links that helped me. I'll leave a note beside any link that is my own tutorial/guide. There will even be some that didn't help me, but I know helped a lot of people.

Useful links:

http://www.niksula.hut.fi/~hkankaan/Hom ... avity.html
http://www.youtube.com/watch?v=7uUlOAyQsn4
http://www.youtube.com/watch?v=KxGRhd_iWuE
http://www.youtube.com/playlist?list=PL ... re=mh_lolz -- My LÖVE series, still more to come!
http://www.youtube.com/playlist?list=PL ... re=mh_lolz -- My Lua series, still more to come!
http://www.youtube.com/user/sonic2kk -- My channel, where you can find some other programming stuff!
http://www.explodingrabbit.com/forum/en ... al-01.669/
http://www.youtube.com/playlist?list=PL330ECD07BD7118CC
http://www.youtube.com/watch?v=vr1VpNkhJrA
http://www.youtube.com/watch?v=6ZBAxKoJ ... B05A624D91
http://www.love2d.org/
http://www.love2d.org/wiki/Main_Page
http://www.love2d.org/forums
http://www.love2d.org/wiki/Getting_Started
http://www.lua.org/pil/
http://lua-users.org/wiki/TutorialDirectory
http://www.lua.org/manual/5.1/
http://www.love2d.org/wiki/Category:Tutorials
viewtopic.php?f=5&t=8447

Have a great day! :D
"In those quiet moments, you come into my mind" - Liam Reilly
Solitaire
Prole
Posts: 12
Joined: Mon Jul 29, 2013 1:50 am

Re: How did you learn game programming ?

Post by Solitaire »

Eamonn wrote:I've given a couple of people advice on how to continue. So, here's my advice:

You're being WAYYYYYYY too hard on yourself. I did not follow a tutorial on A-Z. I kind of followed a tutorial that led me from A-C, C-E, E-F, F-J, and I'm still far from Z. I don't know what anyone has got to Z yet, assuming they're not a developer.

Game development takes time. For instance, it took almost 3 years to make Portal I believe. Why do you think there's such a gap between games? In my experience, there's usually 2-5 years of a gap between games. Usually, it's 3. That's probably because they give the game a year or so to see how much popularity it gets, what the community thinks, get their team together, brainstorm ideas, etc. Then about 2 years for the actual game. This is not accurate, it's just kind of what I've came up with. Feel free to insult be for it being wrong, but it's basically what I've thought for years. Keep in mind a company like VALVe have teams of THOUSANDS, maybe even more! All these people are highly trained and have got degrees in the stuff.

You must remember that after you complete a tutorial you wont be an instant game developer. For example, let's look at Minecraft. Notch didn't make Minecraft overnight, he didn't learn Java or LWJGL overnight. He started programming when he was 9. He was around 29-30 when Minecraft was created(He's 34 now, Minecraft was made in 2009 -- 4 years ago. He would have been either coming 30 or was already 30). So, he'd been coding for about 20 years. 21, assuming he was 30. He probably would have went to a school to learn Java or read plenty of books on it. He would know a lot of advanced math and have very good knowledge of Game Design and Development. So, it's not like Minecraft was a fun little simple game he made as a first "Hello World" project. I'm sure there was a lot of failed projects, sleepless nights, facepalm moments, etc involved in the development of Minecraft. Minecraft could have been the product of 1,000,000 failed 3D games! Who knows? So, it might take 999,999 projects for you to get your 1,000,000th one right. Just keep trying.

So, what I did(and I still do this) was start work on a project I know is going to be difficult. Something I know that at the time of beginning it it's going to be almost too difficult. You might not get it right, but you can ask here. There'll always be at least one person ready to help. I know I've got inspiration from about 5 people, and I've helped about 3. So, they're advice is being modified, along with my own personal experience, to help you to help others, and so that person can help the other, and so on. Right now, you might think you'll never be able to help someone, but trust me, you will. I remember thinking that, and I'm helping a lot of people now. You'll still ask questions, but you'll probably notice that as you learn, what you have to ask get's less and less. Maybe you'll be in the middle of writing a thread for help, and you'll think of the answer. If you think the project is too hard make a simpler game, and keep doing that. Then, when you get the simplest one done, go to the one above it, and so on, until you get that perfect game you wanted.

As for resources for help. I'll leave links at the bottom of the reply. Some might just be shameless plugs to my own content, but I think it could help :awesome:

So, I learned from reading, asking, talking, failed projects, sleepless nights, tears and others. If you start a game, but half way through it you don't know what to do and you give up on it, I'll guarantee you'll have learned something from that failed project that will help you with your first project.

Just remember: We all have to start somewhere. I'm sure some of the moderators or the developers of LÖVE had to start somewhere. If they had have given up on their first failed game, we wouldn't have LÖVE. So, when you see people making these huge games, just remember that they had to start somewhere. They were once like you: Beginning and lost. Not knowing how or where to begin.

You know, I had my first game made in less than a month. But, that was when I found LÖVE. I spent about 3 years trying to find a good framework/language. It went like this:

Python
HTML, CSS, JavaScript, jQuery, jQueryUI
Python
Ruby
C++
Lua
Ruby
Lua
HTML5, CSS, JavaScript
Java
Xtend
Python
Java
Python
Lua

That was a rough, semi-order list of what languages I learned. I learned more, such as Squirrel and C, but I'm not sure what order it was in. I spent 3 years trying to find the right way to make a game. To be honest, I had no idea about the fundamentals of game development. I had no idea what a game loop was! LÖVE is awesome. It's just perfect in every way. So, I spent 3 years of my life trying to learn how to make a game. One of my biggest problems what that I looked at comparisons between languages. DO NOT PAY ATTENTION TO THEM. Find a language, no matter slow or fast, and if you like it, use it. If you don't, use a different language. I like Java, but it's apparently "Slow". If it's slow, why does Android run smoothly? Python's slow, but Toontown was written in it! So, ignore comparisons. And don't pay attention to people saying "If you can't use W engine with X language, what makes you think you'll be able to do Y engine with Z language?", because it's crap. You might be more comfortable in another language, and therefore could be able to do more.

I relate to you big time. You are being a little harsh though. "I really need some evidence that I'm not a dumb good-to-nothing and worthless programmer and that I can really improve myself...": Game programming or not, you're not a 'dumb good-to-nothing'! Game development might not be you're strongest skill, but you can exercise it. You might not be good at playing games, but the more you play, the better you get. In other words: The more you code and the more you learn and the more you succeed and the more you fail, the better you get. Failing is part of learning, in anything. When you were a baby, and you were learning how to walk, you would have fell countless times, but in the end, you learned how to walk, didn't you? If you had a theory of mind or were able to talk, you might have said you were bad at it and you wouldn't have been able to do it. So, just keep trying, and you'll get it eventually!

Now, I remember someone on this forum said to me that there is only so much you can tutorial-ise. But, people can help. Just because there isn't a tutorial on something doesn't mean no one knows how to do it. To be honest, I learn a lot from helping people. For example, if I look at someone else's .love, they might have something in there I didn't know about. So, I'll learn from that, and in turn help them. So it's an endless cycle of helping. Just remember: When asking for help, always attach a .love, if there is one.

If you have a Skype, add me and we can chat. Please, don't be so hard on yourself :megagrin: You'll get it all right in the end.

All I can really do is offer help, inspire you the best I can, and wish you the best of luck. Now, GO MAKE SOME GAMES, BOY!!!!! :ultrahappy: :ultrahappy: :ultrahappy: :ultrahappy: :ultrahappy:

Best of luck to you! Below are a lot of, if not all of the links that helped me. I'll leave a note beside any link that is my own tutorial/guide. There will even be some that didn't help me, but I know helped a lot of people.

Useful links:

http://www.niksula.hut.fi/~hkankaan/Hom ... avity.html
http://www.youtube.com/watch?v=7uUlOAyQsn4
http://www.youtube.com/watch?v=KxGRhd_iWuE
http://www.youtube.com/playlist?list=PL ... re=mh_lolz -- My LÖVE series, still more to come!
http://www.youtube.com/playlist?list=PL ... re=mh_lolz -- My Lua series, still more to come!
http://www.youtube.com/user/sonic2kk -- My channel, where you can find some other programming stuff!
http://www.explodingrabbit.com/forum/en ... al-01.669/
http://www.youtube.com/playlist?list=PL330ECD07BD7118CC
http://www.youtube.com/watch?v=vr1VpNkhJrA
http://www.youtube.com/watch?v=6ZBAxKoJ ... B05A624D91
http://www.love2d.org/
http://www.love2d.org/wiki/Main_Page
http://www.love2d.org/forums
http://www.love2d.org/wiki/Getting_Started
http://www.lua.org/pil/
http://lua-users.org/wiki/TutorialDirectory
http://www.lua.org/manual/5.1/
http://www.love2d.org/wiki/Category:Tutorials
viewtopic.php?f=5&t=8447

Have a great day! :D
I LÖVE you, man... Ok, it was foolish :brows: ... But thanks, really, for the help, it emboldens me... I'll try to use the ressources the best that I can... By the way, my skype is "wunderlechieur" (You didn't gave yours, so, if you could add me, just in case...)
User avatar
DaedalusYoung
Party member
Posts: 413
Joined: Sun Jul 14, 2013 8:04 pm

Re: How did you learn game programming ?

Post by DaedalusYoung »

I don't like tutorials on programming, they always make too many assumptions on the viewer's/reader's knowledge. Also, they follow a programming style I am not familiar with or I do not like.

I also don't look at other people's code, I would have to know the entire code to understand how it works, and I can't get through it, no matter how well organized it is set up, it's still too messy.

I look at function lists of the language. I want to have a clear overview of what functions there are for, for example, string manipulation. Then I know the building blocks I have. I then think about what I want and what functions I could use for that. Figuring out which building blocks you need in which order is often plain logic.
User avatar
Davidobot
Party member
Posts: 1226
Joined: Sat Mar 31, 2012 5:18 am
Location: Oxford, UK
Contact:

Re: How did you learn game programming ?

Post by Davidobot »

Solitaire wrote:
Well a very complicated problem might take up to 1-2 hours, a simple one, well, maye 20 minutes.
Here is a list of all my demos/projects, the newest at the top: search.php?keywords=&terms=all&author=*Davidobot&fid%5B%5D=5&sc=1&sf=firstpost&sr=topics&sk=t&sd=d&st=0&ch=300&t=0&submit=Search
Wow... I'm jealous, now... :cry: Since when are you programming ? You learned it alone or is this your job ?
I have been programming for 2-3 years now. I learnt it alone, having a job that has to do with programming would be awesome!
PM me on here or elsewhere if you'd like to discuss porting your game to Nintendo Switch via mazette!
personal page and a raycaster
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests