Sign in to follow this  

Starting Game development?

This topic is 2625 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

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Quote:
Original post by OriginUnknown...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...


Wrong example ;-) Russian is a slavic language, french a romanic language. If you take spanish and italian instead, you see that it is in fact a lot easier to learn one of them if you know the other already. Or if your mother tongue is a west germanic language like english is, than german should be faster to learn for you than russian.

But back to topic. Programming has nothing to do with the language you choose. The language is just an interface between your thoughts and the computer, and you should choose the language which both sides of the interface understand. A computer understands all 'programming' languages, thats the purpose of a programming language. So you are free to choose the one you are most familar with.
And as a beginner that is none. So you should choose an easy to learn language (which Python or any other typeless scripting language is) and get an understanding of programming concepts (independent of language!).

At some point in the future you are in need of a special ability you can't express with your current language or another language is better suited for the specific problem you face. Then you switch it. Sure, it needs some time to know the quirks of each language environment, but that won't stop you if you know how to program (independent of a language)!


Quote:
Original post by OriginUnknown...I would like to learn something with future potential in terms of a job etc...


Every language has it's utilisation, but look for the most used ones in the bussines world to get the most options when looking for a job. Java, C#, C++ should give you more options than Modula, Haskell, Pascal, ...

Btw, language alone doesn't cut it. The libraries you worked with are more important when applying for a job! Example for game programming: You can talk to DirectX and OpenGL through both, Python and C++. But the language choice itself doesn't help you in applying for an OpenGL programmers position when you are used to DirectX.

Share this post


Link to post
Share on other sites
C++ is the most common language you would find in professional game development, but they also use things like Python, C#, and other higher level languages (meaning they're further abstracted from directly messing with memory and that kind of stuff) to create tools, scripting, or smaller games. C++ can be confusing for a beginner once you start using things like pointers, so C#, Java, or Python would probably be good to start with. And you'll want to learn math. Lots of math ;)

Share this post


Link to post
Share on other sites
Well I don't need to look anything in terms of a job right now as it would only be a hobby at this point in time where I still have 3 years of school left(Age 15) and still don't if I want to enter software development or game development. I haven't really looked too much into python other than thought's I've heard from others. I've mainly looked at C++ because it's currently the dominating force in the gaming industry(Debatable) and to my knowledge there's much more documentation on it. For example how would I start into learning python?

Share this post


Link to post
Share on other sites
Quote:
Original post by OriginUnknown
Well I don't need to look anything in terms of a job right now as it would only be a hobby at this point in time where I still have 3 years of school left(Age 15) and still don't if I want to enter software development or game development. I haven't really looked too much into python other than thought's I've heard from others. I've mainly looked at C++ because it's currently the dominating force in the gaming industry(Debatable) and to my knowledge there's much more documentation on it. For example how would I start into learning python?


It is true that right now C++ is THE language in game industry. However, there are many other languages involved too, increasinly in future. Python is a good choice in a sense that it allows you to focus on the task and logic of the program more than say, C or C++, which are much more "mechanical" languages in a sense that you need years of experience to unveil all the potential. With Python it is much easier.

You'll learn Python exactly the same way you'll learn any other programming language - by reading a book with a focus and toying with the new concepts it teaches you. There is no other way around it. Yes, there are tutorials on the net etc. but from personal experience I can say that you're better off just spending some time with a decent book. First, you'll learn faster, second, you'll learn right, third, it's much easier to follow and understand text from a physical book than from a website. Trust me on this.

However, note that there is much, much more to software development than knowing the language. Actually, as said before, the language is just a tool(or interface) for you to express your ideas and thoughts to the computer. So knowing the language is essential. But what is more important is to know how to think. That will come with experience. Anyway, if you're anything like many of us - like/love programming and experimenting with different things and ideas, you'll enjoy the journey. ;)

Share this post


Link to post
Share on other sites
Quote:
Original post by Calmatory
Quote:
Original post by OriginUnknown
Well I don't need to look anything in terms of a job right now as it would only be a hobby at this point in time where I still have 3 years of school left(Age 15) and still don't if I want to enter software development or game development. I haven't really looked too much into python other than thought's I've heard from others. I've mainly looked at C++ because it's currently the dominating force in the gaming industry(Debatable) and to my knowledge there's much more documentation on it. For example how would I start into learning python?


It is true that right now C++ is THE language in game industry. However, there are many other languages involved too, increasinly in future. Python is a good choice in a sense that it allows you to focus on the task and logic of the program more than say, C or C++, which are much more "mechanical" languages in a sense that you need years of experience to unveil all the potential. With Python it is much easier.

You'll learn Python exactly the same way you'll learn any other programming language - by reading a book with a focus and toying with the new concepts it teaches you. There is no other way around it. Yes, there are tutorials on the net etc. but from personal experience I can say that you're better off just spending some time with a decent book. First, you'll learn faster, second, you'll learn right, third, it's much easier to follow and understand text from a physical book than from a website. Trust me on this.

However, note that there is much, much more to software development than knowing the language. Actually, as said before, the language is just a tool(or interface) for you to express your ideas and thoughts to the computer. So knowing the language is essential. But what is more important is to know how to think. That will come with experience. Anyway, if you're anything like many of us - like/love programming and experimenting with different things and ideas, you'll enjoy the journey. ;)

I know I would need to read a book, I just don't know which book to read!

Share this post


Link to post
Share on other sites
This might be worth a look: http://diveintopython.org/ - even though it is somewhat old, it should contain valid information. Sure, not all of it applies to Python 3.0, but as far as I know, Python 2.x is still well alive and kicking, so it might be good to start with 2.x anyway. :)

Share this post


Link to post
Share on other sites
As with other people, I'd suggest Python.

Now, in terms of implementing your ideas, my best suggestion would be to put those aside for the time being. The general advice is to start small. Think of a project that sounds easy. Then go for something easier. Trust me, when learning, what appears to be easy can quickly become a complicated mess.

It might not sound fun, but part of advancing is the ability to follow through. And it's much more impressive to have a working Tic-Tac-Toe game that you wrote in 3 days than to have an incomplete RPG that you've been writing for 3 years.

Share this post


Link to post
Share on other sites
Quote:
Original post by Nytegard
As with other people, I'd suggest Python.

Now, in terms of implementing your ideas, my best suggestion would be to put those aside for the time being. The general advice is to start small. Think of a project that sounds easy. Then go for something easier. Trust me, when learning, what appears to be easy can quickly become a complicated mess.

It might not sound fun, but part of advancing is the ability to follow through. And it's much more impressive to have a working Tic-Tac-Toe game that you wrote in 3 days than to have an incomplete RPG that you've been writing for 3 years.


I do agree here, my intent was to apply these ideas after I had already done a fair amount of learning and programming.

Share this post


Link to post
Share on other sites
Quote:
Original post by Nytegard
As with other people, I'd suggest Python.

Now, in terms of implementing your ideas, my best suggestion would be to put those aside for the time being. The general advice is to start small. Think of a project that sounds easy. Then go for something easier. Trust me, when learning, what appears to be easy can quickly become a complicated mess.

It might not sound fun, but part of advancing is the ability to follow through. And it's much more impressive to have a working Tic-Tac-Toe game that you wrote in 3 days than to have an incomplete RPG that you've been writing for 3 years.



I saw this post, as it stood out from the rest with the debate about programming languages...


It is much more impressive to have a working RPG game that you wrote in 3 days than a working tic-tac-toe game that you could have written in 2 days even as a complete beginner to C++...

What I am saying by this is that, most people think a game = Graphically Amazing Memory Expensive

But when you really break it down to its core, its just "Something that is entertaining, yet challenging."

So who ever is saying you need to know ANY programming language to make a game, you are ignorant to the fact that games have been around before computers or VIDEO for that matter.

So, to do GAME DEVELOPMENT, it just requires a commitment to games farther then you probably have imagined. Math and Systems and Rules that you have to think up, balance, and coordinate.

Now if you have a bunch of ideas for really good games, and you don't want to learn programming per say, you can learn something like TORQUE3D or one of the many game development suites. You will probably be better off learning scripting languages.

But if your in for the long haul and want to make a commitment to computer science and the science of game development then you should START with C++ AND Python. Why pick one when you can use both? I did it.

C++ is only more difficult because it requires you to be VERY precise and VERY detail oriented, but not impossible or even too difficult to learn.

Python is easy to learn, quick to pick up, and simple to use right out of the box. In a week you can be making images bounce from one side of the screen to the other with sounds and all kinds of different "simulated" physics.

C++ is going to take you sometime to get use to unless your a uber genius and can pick up on concepts and ideas just by looking at it once.

As far as the game development part goes... its not that hard... its just a lot of math, DAYS AND DAYS of planning AHEAD! Making sure you understand what your going to NEED before you CODE.

Measure twice, Code three hundred times until its perfect.

Don't plan on having an epic uber awesome 3D MMORPG as your first game. If you don't understand the basic concepts of how the computer is even displaying the images on your screen. Get a little more understanding about it and just give yourself a "Ladder of Achievements" to work toward. Step your way to making that MMO, but before an MMO how about a single player? And instead of 100 levels, how about just 1. Instead of a possible character customizations and choices and option... how about 1 preset character that has set attributes.


Do think small, but you don't have to think miniscule. Just plan ahead and PLAN ACCOORDINGLY!! The worst thing you can do is get frustrated because you don't understand why you can't just jump in and make the worlds greatest game. The worlds greatest games take a team to develop over years. Now you are just 1 person, so multiply the years it took to make 1 game by the amount of staff that worked on the game and you will have a rough estimate of how long it will take you, alone, to make it.

WITH THAT NOTE, its not impossible... The creators of mortal kombat didn't even really do much programming at all. They just had a good plan.

Try to reuse ALL of the code you write, unless its just to learn how it works, but even then try to keep it reusable. The more code you are reusing, then the less code you will have to write later making you that much closer to completion. Imagine if you wrote a game with 1 level, 1 player, 1 song, and 1 set of inputs... well, now you just have to design a new level, a new player, and a new song, and you have yourself more content for your game.


Content should be the last thing on your list for game design. No one cares about the story if there is no game. Its just a book then..

Best thing you can do is find a team and learn with people. But if your like me, and its a difficult task to do, then get yourself motivated for a long road of planning ahead.

Share this post


Link to post
Share on other sites
Quote:
Original post by OriginUnknown
Thanks for all the suggestions!
Can anyone recommend a python book or ebook?
Someone suggested Dive Into Python. You should also read the Python website which contains lots of information useful for beginners including links to tutorial and ebooks.

Share this post


Link to post
Share on other sites

This topic is 2625 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this