Learning programming well

Started by
22 comments, last by alh420 8 years, 11 months ago

Hi,

I am pretty new to programming. I have some Java and some VB skills, but just some. I am planning to learn programming not just for a crap game. I want to learn programming with the aim of programming a nice game. I am 15 and I am also thinking of doing programming as a job when I am some older ;)

So I thought of learning a nice language, I think this will be C#, but for a 3d Game I think I need a game engine, too for a 3d game. I am thinking of Unity, but I am not sure if this isnt a waste of time? I dont think I will will need that any time later again... just some experience I get might be good. But creating 3d games without a gaming engine isnt really possible, right?
So summarized my questions are:

-Do I need a game engine and wich is a good one for not just learing for wasting time?

-How do I learn a programming language well? With a book? Internet tutorials? And is a big book "enough"? I think there is much experience I need too, but I dont think a book is enough, but there is mostly just one book, and how should I know, what book to use next, for a good connection to my knowledge I got from the other book?

Thank you for any answers :)

Advertisement

http://www.gamedev.net/page/reference/faq.php/_/for-beginners-r1

And never stop coding.

"Don't gain the world and lose your soul. Wisdom is better than silver or gold." - Bob Marley

But creating 3d games without a gaming engine isnt really possible, right?

Wrong. You can make 3D games without "engines" like Unity. It will take you a lot more time to learn how, though. Unity provides you a solid foundation on which you can build a lot of your own gameplay code without having to deal with annoying stuff like basic rendering fundamentals and all that.

Unity would be a good choice, especially if you're going to learn C# as well. It's not a waste of time.

You learn programming languages well by practicing with them; building programs, writing code, debugging problems. Books and internet resources can and will help (just like some can and will hurt, because they are bad resources), but your practical experience is going to be the big factor once you get beyond learning the basics of a language.

You learn programming languages well by practicing with them; building programs, writing code, debugging problems. Books and internet resources can and will help (just like some can and will hurt, because they are bad resources), but your practical experience is going to be the big factor once you get beyond learning the basics of a language.

So I wanted to start with a book. But then, after reading and coding with a book, how should I know what to do next? Should I just go in the internet and try to find exercises for my level?

So I think I will start learning C#, then learning more modelling (I already started using Blender and I think ist good, because I can export it to Unity...), and then I learn how to work with Unity.

I think this isnt a bad plan, right? :D

Honestly for me, I never liked using an engine to make games. Because I want to learn what is happening behind the scene. I want to learn the ins and outs of graphics programming. Using an engine to make a game does not really help me learn the depth of graphics programming that much. That is why I prefer diving into DirectX or OpenGL right away. However I feel like diving into OpenGL or DirectX right away has a very very steep learning curve, especially if you have never programmed a game before. That is why when I first tried to make a game, I used a friendly easy library like SFML, XNA, MonoGame, SDL, Allegro etc... After I learned the basics of those libraries I dove right into DirectX which made learning the API much easier.

of course if you don't care about programming much and you just want to make a game or become a game designer then using an existing engine is not a bad idea at all. It's actually better to use an engine because the time it would take you to code everything from scratch is a lot harder and longer.

But then, after reading and coding with a book, how should I know what to do next? Should I just go in the internet and try to find exercises for my level?

No. Before you even finish the book, start making little programs and games to test the concepts you're learning about in the book. They'll probably only be simple text-based things to start. That's fine. It's the practice that's important, not the product.

Once you get to the end of the book or finish it, try making a simple game.

We have been answering pretty much this exact question a couple of times, even today, in other topics - so you might want to look there. :)

Too many projects; too much time

Hi,

I am pretty new to programming. I have some Java and some VB skills, but just some. I am planning to learn programming not just for a crap game. I want to learn programming with the aim of programming a nice game. I am 15 and I am also thinking of doing programming as a job when I am some older ;)

So I thought of learning a nice language, I think this will be C#, but for a 3d Game I think I need a game engine, too for a 3d game. I am thinking of Unity, but I am not sure if this isnt a waste of time? I dont think I will will need that any time later again... just some experience I get might be good. But creating 3d games without a gaming engine isnt really possible, right?
So summarized my questions are:

-Do I need a game engine and wich is a good one for not just learing for wasting time?

-How do I learn a programming language well? With a book? Internet tutorials? And is a big book "enough"? I think there is much experience I need too, but I dont think a book is enough, but there is mostly just one book, and how should I know, what book to use next, for a good connection to my knowledge I got from the other book?

Thank you for any answers smile.png

Hey smile.png

Welcome to GameDev! Just for background, I'm 14, not that far off from you.

I first started with C#, and managed to get the basics of programming down (Or so I think tongue.png ) letting me move onto C++. So far, after moving to C++, I can say it feels different... It's not harder, I actually think it might be a bit easier, but it's definitely different. Expanding on your Java skills might also be a good idea. Also, this year/next year, AP Computer Science is a good class to have. It'll also teach some programming. Anyhow, if you make games with C#, Monogame is a good choice. Unity will have WAAAY too much stuff for a complete newbie. Monogame is easiest to use with Visual Studio (Get Visual Studio Community edition, it's full and free: Here's the download

You seem to think 3D games are easy, similar to what I thought when I started. They're not, especially with Monogame, or your own engine. As for books, don't buy any now. Look at these tutorials and see if C# is something you want. If you do, I can recommend this book. It's on Amazon and also comes in a PDF version (Same price as physical book)

Don't put full faith in my advice, I'm still naive and nowhere near the experience of other members like Josh Petrie. Listen to him and other competent people happy.png

What will you make?

But creating 3d games without a gaming engine isnt really possible, right?

-Do I need a game engine

This doesn’t make sense. How did they make great games before there were engines? Of course you can make 3D games without game engines.

wich is a good one

You are 15. You learn very easily as your brain continues to develop until you are 25.
This is specifically the time in your life where you should be doing the hard work and walking the tough path. Falling back onto an engine at a young age is literally just throwing away your potential.
I am a game-engine programmer because I was making all my games from scratch even before I was your age. Difficulty and learning curves are irrelevant at this point in your life, and you only do yourself a disservice by taking “easy” routes.
Refer also to FantasyVII’s reply, as it is exactly what you should be doing at your age. This is the time when you learn the in’s and out’s of the technology.

not just learing for wasting time

Learning is never a waste of time. Unless you’re studying liberal arts, fine arts, or philosophy. But any learning related to programming is never a waste of time.

-How do I learn a programming language well?

By programming.

I think there is much experience I need too,

So start programming and get that experience.

So I wanted to start with a book.

No, you want to start with coding. Books are secondary but can be applied at the same time.
Once again you don’t seem to understand how to maximize your youthful potential. Once again you are doing a disservice to yourself by thinking in terms of, “Do this, and then do that.”
Yes, you need to learn to walk before you can run, but using 1 arm to hold a book doesn’t prevent you from crawling, walking, or running. There is absolutely no reason you should not be doing these things simultaneously, if you even read a book at all, which again is secondary. The top priority is always coding.

Should I just go in the internet and try to find exercises for my level?

Why don’t you just make your own “exercises”?
Instead of asking if you should try to find exercises, why don’t you understand that everything you do is a learning experience and in some way beneficial?
You don’t need to ask before looking for exercises, just go do it.

Why do you need someone holding your hand at every single step of the way?

A normal growing programmer:
“Hmm, I want to program better. I might be able to do Pac-Man now.
Okay, that was fun. I bet I could do Tetris now.
That was fun. I am curious about exercises, so let’s look online for some.
Hmm, I didn’t do as well as I thought. I have more to learn about inheritance, so next I will make a top-down shooter like 1942 and try to incorporate inheritance better.
That was fun, but the way I handled the enemy AI was terrible, plus I think I am ready to do fancier graphics for my next project.”


Some of your questions are okay to ask, such as which is a good engine or book, but some of your questions are worrisome. The only reason a normal growing programmer asks, “What should I do?”, is when he or she either has a total inspiration block (but still generally knows what to do next) or can’t decide between doing this next or that.
The normal programmer simply does whatever he or she wants, always looking for a project to challenge him- or her- self in some new way and works on fixing past mistakes from previous projects. There is literally absolutely no reason he or she would ask, “Should I look online for exercises?”. He or she will simply do it if and when he or she wants. It is all part of the learning process, so just do what you want. It’s even more completely pointless to ask if you should do online exercises given that in the time it took you to ask and get a reply, you could have already done tons of exercises online.



As long as you are programming you are doing it right.
This is your programming journey and it is up to you to make it. It is your decision what project to pursue next, whether to read a book, whether to look online for exercises, etc.
And just because you are doing 1 it doesn’t mean you can’t do the others. Why would doing a personal project stop you from also reading a book and trying out some exercises?


Get programming and forget everything else. Take advantage of your youthful brain while you have it. This is the time when you buckle down and kick programming in its ass.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Pacman is actually a really cool project, by the way..

http://gameinternals.com/post/2072558330/understanding-pac-man-ghost-behavior

Too many projects; too much time

This topic is closed to new replies.

Advertisement