Starting Game development?

Started by
28 comments, last by OriginUnknown 13 years, 6 months ago
Hello, I've programmed slightly in the past but not much and not with anything like C++. I'd like to start into game development as I enjoy video games very much, I've used a lot of those code less game makers in the past but they are extremely limited and you don't get a sense of accomplishment. I feel I have many great ideas for games that I would like to transform into a reality rather than just thoughts.

How should I start into game development? What language should I use?(I would like to learn something with future potential in terms of a job etc) What software should I use for developing?

Thanks in advance for any replies, I'm looking forward to learning with these forums.
Advertisement
I just registered on here and was about to ask a very similar question. I'm glad I stumbled upon this. :D

Looking forward to some people's insight and learning as well.

-Austin
Quote:Original post by OriginUnknown

How should I start into game development?


You'll need to learn a programming language, and start looking into game design theory. There are a ton of great tutorials and comparison lists out there regarding the relative strengths and weaknesses of different languages. As for game design, you should go into this process looking to create very simple games for a while, on the order of pong and hangman at first.

Quote:
What language should I use?(I would like to learn something with future potential in terms of a job etc)


The language that you choose is the right language to start. Don't worry so much about future potential, as once you've learned one language you'll find it easier to learn another much more quickly. Stay away from something really outdated like Basic and you should be fine. I've heard that Python is great to start if you'd like to develop games. I started with C++, which has been very challenging, but that just means that I have to be more determined to succeed.

Quote:
What software should I use for developing?


There are several options, but I use Microsoft Visual C++ since I'm programming on a Windows PC. The debugger is very helpful, and there are free versions around. But there are differing opinions on what software is best, so don't feel bound by what any one person or group of people say(s). Try a compilers out, and see which ones you enjoy using the most.

It's a hard road, but good luck! And always feel free to come to the forums for help, I've found people here to be very welcoming, friendly, and helpful.

-------R.I.P.-------

Selective Quote

~Too Late - Too Soon~

">Start here.
Amateurs practice until they do it right.Professionals practice until they never do it wrong.
Quote:Original post by Khaiy
Quote:Original post by OriginUnknown

How should I start into game development?


You'll need to learn a programming language, and start looking into game design theory. There are a ton of great tutorials and comparison lists out there regarding the relative strengths and weaknesses of different languages. As for game design, you should go into this process looking to create very simple games for a while, on the order of pong and hangman at first.

Quote:
What language should I use?(I would like to learn something with future potential in terms of a job etc)


The language that you choose is the right language to start. Don't worry so much about future potential, as once you've learned one language you'll find it easier to learn another much more quickly. Stay away from something really outdated like Basic and you should be fine. I've heard that Python is great to start if you'd like to develop games. I started with C++, which has been very challenging, but that just means that I have to be more determined to succeed.

Quote:
What software should I use for developing?


There are several options, but I use Microsoft Visual C++ since I'm programming on a Windows PC. The debugger is very helpful, and there are free versions around. But there are differing opinions on what software is best, so don't feel bound by what any one person or group of people say(s). Try a compilers out, and see which ones you enjoy using the most.

It's a hard road, but good luck! And always feel free to come to the forums for help, I've found people here to be very welcoming, friendly, and helpful.




I've never understood that logic for the programming language. It's going to be just as hard learning something new regardless of what you learn first. In this case learning python(Which I've also heard isn't great for game dev) first then going to C++. That would be like saying instead of directly learning Russian, you should learn french first, they are completely different languages and french would be totally irrelevant to learning Russian. Though I do understand that while it is different, it gives you some idea at game development.

So where would I go to learn C++? And isn't game programming considered Object oriented so wouldn't I need to learn C++ then learn how to do Objected oriented programming with it?
Quote:Original post by OriginUnknown
I've never understood that logic for the programming language. It's going to be just as hard learning something new regardless of what you learn first. In this case learning python(Which I've also heard isn't great for game dev) first then going to C++. That would be like saying instead of directly learning Russian, you should learn french first, they are completely different languages and french would be totally irrelevant to learning Russian. Though I do understand that while it is different, it gives you some idea at game development.
It sounds like you've got the wrong idea about a couple of things. Learning one programming language is not irrelevant with respect to learning another; quite the opposite, in fact.

Learning to program is more about learning to program than it is about learning a particular programming language. Most people who do a lot of programming learn many languages over time. Do you really think they start from scratch every time they pick up a new language?

Also, I don't know whether it's true that Python is unsuitable for game development.
Quote:So where would I go to learn C++? And isn't game programming considered Object oriented so wouldn't I need to learn C++ then learn how to do Objected oriented programming with it?
Game programming isn't object-oriented; it can be (and often is), but you can write games using a variety of different paradigms. In any case, I wouldn't worry about it too much. Just start somewhere, and as you proceed, a lot of the things you're wondering about will start to become more clear.
Why are you directly neglecting Python and going for C++?

The thing which matters the least for you during the next 2-3 years in terms of game development is the language itself. Though, most books(you learn from them, not tutorials!) assume C++. The thing which matters is that you constantly learn new things, aren't afraid of experimenting with your own ideas in terms of algorithms and data structures to accomplish the (small) goal. And frankly, even I am a C and C++ programmer, I would start with Python myself. Or Ruby. If I were to start with C++, I would go ahead and learn ANSI C first, as C++ itself is just a superset of C. Really, half of C++'s functionality is plain old C.

But then again, game development with C++, let alone C can be somewhat a pain compared to many more modern languages, such as Python. The reason is that these higher level languages do so much more for you. Their focus is producivity and ease of use, instead of blazing performance and low resource usage. And frankly, during the first 3-5 years of game development, a newbie will not run into a situation where modern computer wouldn't be able to run their game at acceptable framerates. It is very hard to push the limits of hardware, if you're doing things in a clever way. Sure, just double the amount of polygons per object, triple the objects and view distance... voila. But if one has to resort to such tricks to make the game interesting, then the project is an utter failure regardless of the language used. In short, hardware develops faster than a newbie can cope up with. There's ALWAYS a way to get more performance, it's just a matter of being clever with data structures and algorithms.

So, if you plan to use C or C++ because it's fast, please don't. It's more important to get things done, and get them done fast and easy, than to make them run fast, when FPS doesn't matter anything. Besides, C++ is a language that will surprise you. Let's just say that it has way too many minor details. It is very broad language, and it will take several years to truly understand it, and at least a decade to master it. And by then, it's popularity has declined quite a bit.

To become a professional and make living of a game development is much harder than for some other fields. The "real games" are programmed in C++, thats true, but for now it is much more important to get things done without a hassle and thats where Python comes handy. It's just easier to write Pong and Tetris in Python than it is to write them in C++. Actually, by the time you'd get to do something else than hangman in console with C++, you'd be doing Tetris and Pacman in Python.
I've seen an explosion of new companies and teams in game development these years. Probably the huge opportunities with casual games, phone games, iphone or other platforms attracted many many programmers and creatives.

But I think that we are near to saturation and it's difficult to make a living with games, now.

Years ago I was sure there would have been space for anyone, but now I'm not sure anymore.
Electronic, Hard House, Film Music

88 preview tracks to listen to online + artist forums

And my projects Vanethian, and X-tivity Factor
Computer languages are not human languages. They're tools, like hammers and saws.

Granted, you don't learn a hammer to learn a saw, but you do need to learn both anyway.

In my last game project I used three different languages; C++, Lua and Java, and at work I routinely use C, C++, Java, Bash scripts, PHP, etc.

Secondly, they share a lot of concepts.

Learning your first language, you learn things like "What is a function? What is a class? What are objects?" And this is very difficult.

Learning your second language, you learn things like "what's the syntax here for all those things I already understand?" And that can go very quickly.

That said... Some languages like C++ offer special challenges. I learned it after having programmed in other languages including C and Java for many years. It was a big challenge and you have to contend with a lot.

I recommend, and so do many others, C#, though Python fits the bill.

What do you need to learn? All of it. Choosing a language that doesn't present you with memory handling challenges, or linking issues, lets you focus. Don't worry, you'll get to it later. If you're serious, you will get to all of it, so don't spend weeks stewing over this and debating it.
Quote:Original post by OriginUnknown
I've never understood that logic for the programming language. It's going to be just as hard learning something new regardless of what you learn first. In this case learning python(Which I've also heard isn't great for game dev) first then going to C++. That would be like saying instead of directly learning Russian, you should learn french first, they are completely different languages and french would be totally irrelevant to learning Russian. Though I do understand that while it is different, it gives you some idea at game development.

So where would I go to learn C++? And isn't game programming considered Object oriented so wouldn't I need to learn C++ then learn how to do Objected oriented programming with it?


The thing with programming is that the techniques learned in one language are applicable in another. Instead of looking at learning Russian vs. French, it would be more appropriate to look at English (2010) vs English (1889). Each language has it's differences and they both have some similarities.

The only time I've really had the 'Russian vs French' issue in programming is when I went from C# to Assembly. While they had a few small similarities, I ran into more differences. None-the-less, they still had similarities.

The fact that the same techniques can be taken from one language to another is why everyone is saying whatever you start with is the right language. That said, something like C#, VB, or a scripting language might be easier to pick up right away.

=============================RhinoXNA - Easily start building 2D games in XNA!Projects

This topic is closed to new replies.

Advertisement