Jump to content
  • Advertisement
Sign in to follow this  
Mingebag404

Need help starting out

This topic is 3612 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have been interested in game design for a long time now, but never really knew where to start. I tried out different "Make your own game without writing a single line of code" programs, namely RPGMaker, FPS Creator, Multimedia Fusion 2 and Reality Factory. All of which ended in my giving up because they all felt gimmicky and unrewarding, and I wasn't learning much of anything. I realize now that impressive programs don't just materialize with the click of a button and that it requires patience. With that said, I am looking to start programming but have no idea where to start. I know threads like this are littered all over the place but I hear so many different answers that I didn't know what to pick, so I am going to try and be as specific as possible. In the few tutorials on different languages that I have read, they seem to just slowly give you the code bit by bit and tell you to copy-paste it, never stopping to explain what exactly it means/how it works/why it works. Can anybody please recommend a good language for a beginner and point me in the right direction on where to learn it? While I would prefer to not spend a lot of money, I am open to the idea of buying a good book. Thanks.

Share this post


Link to post
Share on other sites
Advertisement
Quote:
With that said, I am looking to start programming but have no idea where to start. I know threads like this are littered all over the place but I hear so many different answers that I didn't know what to pick
Out of many recommendations, you want to know what is the “best” recommendation. The correct one. The right answer. There isn’t one, and if you keep looking for the right answer, you’ll never get anywhere. Pick a choice, and learn.

Quote:
In the few tutorials on different languages that I have read, they seem to just slowly give you the code bit by bit and tell you to copy-paste it, never stopping to explain what exactly it means/how it works/why it works.
What tutorials did these happen to be?

Quote:
Can anybody please recommend a good language for a beginner and point me in the right direction on where to learn it?
You’ve just repeated the question you saw in previous threads. What makes you think you’ll get a different answer by starting yet another? I’ll summarize the general consensus. Picking from the lot of Python, C#, and Java is an excellent move. Picking C or C++, although popular languages, is a bad idea.

And remember that a book won’t spell out everything for you. You learn by doing. A book is just there as one source of information, not the one stop resource for learning.

Share this post


Link to post
Share on other sites
This.

I realized later that my High School's AP Computer Science A program covered this book in whole. If you can truly learn from this sort of a setting, I would recommend it. Otherwise, take some sort of Computer Science course. Whether it be an AP class at High School if that fits your age, a class at your college, or even one at a local community college.

A one year college course is actually equivalent to AP Computer Science AB (the second year computer science program at High School).

Share this post


Link to post
Share on other sites
I highly recomend C++ since it puts the developer in a position where he has to learn about the underlying hardware. It's got a bad wrap, but that's only because people don't know how to use it correctly.... it's like the difference between a formula 1 car and a an automatic sedan. Sure you'll learn how to program with other high level languages like Java or C#... but that's about it... they are designed to abstract the programmer from the hardware and even the OS... with game programming you better know your hardware... you better know what a bus is, what's the difference between PCI, AGP, PCIe and PCIX... what CPU cache really does and how to take advantage of it... if you want to write a spreadsheet app, learn Java or C#, if you want to learn how to write high-performance games, learn C++. JMHO.

vetroXL

Share this post


Link to post
Share on other sites
I learned C++ through a few books.. the one that comes to mind is type and learn C... it really explained pointer well.... then I went on to Object Oriented Programming with C++...

Share this post


Link to post
Share on other sites
Quote:
Original post by vetroXL
I highly recomend C++ since it puts the developer in a position where he has to learn about the underlying hardware.

Not really.

Quote:

It's got a bad wrap, but that's only because people don't know how to use it correctly....

Not really. My own observation on this forum is that the developers who know C++ best are least likely to recommend it to beginners.

Quote:

it's like the difference between a formula 1 car and a an automatic sedan.

These analogies are dangerous.

Quote:

Sure you'll learn how to program with other high level languages like Java or C#... but that's about it... they are designed to abstract the programmer from the hardware and even the OS...

That is a good thing.

Quote:

with game programming you better know your hardware...

Depends. For those games with graphics that melt your eyes and awesome physics, sure. A beginner won't be writing such a game, not straight away.

Quote:

you better know what a bus is, what's the difference between PCI, AGP, PCIe and PCIX... what CPU cache really does and how to take advantage of it...

These are important details - but C++ doesn't help. If you want to interact with a graphics card efficiently in Java, C# or C++ you need the same understanding.

Quote:
if you want to write a spreadsheet app, learn Java or C#, if you want to learn how to write high-performance games, learn C++.

Use the right tool for the job. C# and Java are more than capable of being used for making fun games.

C++ is faster - this is massive understatement that glosses over many things. In order to get C++ to perform at the rates most people assume it takes a huge amount of effort. You need a deep understanding of how C++ works. It is not trivial, it doesn't come for free.

Don't trust artificial benchmarks.

Share this post


Link to post
Share on other sites
Quote:
Original post by vetroXL
they are designed to abstract the programmer from the hardware and even the OS...

As is C++.

Quote:
Original post by vetroXL
with game programming you better know your hardware... you better know what a bus is, what's the difference between PCI, AGP, PCIe and PCIX... what CPU cache really does and how to take advantage of it...

And none of these concepts manifest themselves in C++.

Share this post


Link to post
Share on other sites
3D commercial games of have been written with Java, Python, and C++, to further what rip-off said. Do not choose to learn C++ just because its "faster". If you ever get to the point that you need the speed of C++, then you won't be posting on here for help.

It's also not as if faster speed is inherent to C++, because it isn't. I am experimenting with 3D programming right now. I have a basic landscape, and three trees, yet I get about 25 FPS. With WoW and CoD2, on medium performance settings, I can get 30-40 FPS. Even though there is obviously a greater magnitude of calculations and drawing with these two games, I can get greater frame rates than my simple five hundred lines of code.

Share this post


Link to post
Share on other sites
Sorry, I was not clear on my post.

My intention was to let the poster know that if one needed to get down to the intimate level of the hardware in code, C++ is the way to go... and most high performance applications do need this access... I have written some CODECs, and I would not recomend writing a High performance CODEC in Java or C#...

Why is the analogy of F1-vs-Auto-Sedan dangerouse? In order to get the maximum performance out of an F1 car you have to spend lots of time, doing tests and tweaking the settings of the car... if you want to do this with an auto-sedan, you have to hack-into the cars computer, and even then you're limited to what you can tweak....

In C++ it's the same thing... it takes time to get the maximum performance out of the code( as is with other languages ).... you can get access to SIMD if you need it, you can out-optimize the compiler if you're into that sort of thing by writing inline assembly... can you write inline byte code in Java? I can pass-by-copy, pointer or reference depending on my needs... I can use C++ templates to let the compiler generate the code for me as it's needed.... I can use I/O completion ports which is a windows api feature( maybe in C# too ).... Java has alot of features, but correct me if i'm wrong, it doesn't have much impact on performance as it does on code design.... correct me if i'm wrong, but the last time I checked it was not possible to write a driver in Java for either Linux or Windows....

All, I'm trying to say, is that C++ gives you access to many features of the hardware easily compared to other languages... it's not a very far abastraction from assembly language...


vetroXL

Share this post


Link to post
Share on other sites
Quote:
Original post by vetroXL
I would not recomend writing a High performance CODEC in Java or C#...

Yes, C++ is good for systems programming. But does the OP want to code device drivers and such (then I recommend C++), or does he want to learn programming (then I absolutely don't)?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!