Just kicking off... recommendation please

Started by
4 comments, last by Tom Sloper 13 years, 7 months ago
I want to ask about the proper start in Game Development, I've read many threads and topics about it and i did find some answers, and what i want to ask can be put in different threads, but as i am a complete beginner I'll post them here altogether.
I have absolutely no background knowledge of game development other than what i just read online about it, i have very basic knowledge of C++, and my worst problem in life is math and calculus. I'm a Computer Science grad but i focused on Networks instead of programming and that's why I'm weak in C++ and other languages and math. but i absolutely love gaming and want to put my visions into games and eventually starting my own studio.

After alot of reading i decided to get two books to complement one another..
- Game Coding Complete, Third Edition by Mike McShaffry, and
- Introduction to 3D Game Programming with DirectX 10
by Frank D. Luna

is this a good start? how can i improve myself in math for it? and do i need to study more C++ before i dive into those books or are they enough to learn C for games?

one last question, what's the difference between those books and developing with XNA and what is better for me particularly?

help is much appreciated guys
Advertisement
Hi Maigo!

I'm not sure what languages you have been studying in the Networks section, but since you say that you are weak in C++ and other languages, I'm going to assume that you did study a language, however, it wasn't one of the more mainstream languages (like C, C++, Java, etc.). In this event, I suggest that you become proficient with a language less complex than C++ or C. Compared to other languages, C/C++ are largely disorganized (massive amount of APIs and whatnot, but none are part of the standard) and introduce a plethora of bugs that are more than rare in other languages. The books you have chosen are excellent for a game programmer; however, for a beginner, such as yourself, they are best left for later when you gain experience so that you can use them more efficiently.

If you have little programming experience, it is suggested that you start with a less complex language. The general suggestions are: C# (number 1 that I see, but for Windows users only), Python, or (my personal suggestion) Java. These languages are more beginner friendly and once you become proficient with those, it will be fairly easy to switch to the more complex beast such as C/C++.

As for math, so far I have found myself in need of Geometry, basic Algebra, and basic trigonometry. However, these games were not particularly requiring for this type of work, so that's probably not all you need.

Yo dawg, don't even trip.

Quote:what is better for me particularly?

Seriously, there's only one person that can figure that out. Look in a mirror. [smile]

You probably should start with clicking on "Home" (upper left-hand corner) to get the gamedev homepage. Click on Resources; then "For Beginners." There's a lot of information there for you.

You may want to consider C# if you're not locked into C++, as it seems to be a bit easier for beginners.

Math? Learn it! Pay particular attention to 3D vectors and matrices. You don't have to be a wizard, but you're going to have to have at least a strong familiarity with math if you want to do what you mention.

Good luck!

P.s. I've found Luna's books to be quite good at not only getting into game programming, but he's seems to lay a pretty good foundation in the math and other concepts you'll need.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

There's a lot of technology out there to satisfy your needs for game developing and it really depends on what you are interested. While I'm no expert to say what is good for you and what is not, I can give you some tips as to what is available:

--3D Game Programming--
If you are interested in jumping into 3D, then you'll probably need to learn C/C++ eventually. And definitely look into APIs such as OpenGL, DirectX, and maybe familiarize yourself with some 3D engines as well. 3D programming will require a lot of 3D math for graphics and physics/logic programming, so if you feel that's your weakness then you'll have to work to strengthen it.
There are books such as "3D Math Primer for Graphics and Game Development" that teach math focused on game development, so these kind of books maybe a useful resource for you.

--2D Game Programming--
On the other hand, you might want to do some 2D programming before jumping right away into 3D. 2D math is obviously going to be less complex than 3D in general. And in terms of language/library to use, you have a lot of options to choose from.

C/C++
If you want to go down the C/C++ road, then usually people will recommend you to use SDL or SFML libraries to help you get started without worrying about how to setup a window and load resource files and draw stuff to your screen. Which is highly useful, especially for beginners, because they can focus on writing game programming code rather than spending time trying to figure out all the dirty work required to setup a window and such.

C# (XNA)
While C# and XNA isn't limited to 2D programming, it's a good starting point for beginner programmers, because C# in general is abit more learning-friendly than C/C++ (or at least a lot of people agree so).

Flash (ActionScript3 with maybe Flixel or Flex)
Maybe you are more interested in web technolgy and web games? Then, why not dive into actionscript to learn how to program web games. Probably best to buy some books on actionscript game programming, if you want to go down this road.

Lua or Python
Python is recommended to many beginners, I would also suggest Lua as well. They are very easy to pick up and are useful languages to learn on the long run, because you can also use them as a scripting language to support your C/C++ programs later for more complex games. PyGame for Python is a popular library, designed to make your game programming easier, and Love2D is a 2D engine that allows for you to code your game mainly with Lua. After you learn the basics of how to design, implement a game application with these kind of scripting languages, proceeding to more advanced languages such as C/C++ would be a lot smoother.

But honestly, these are only few of many choices you can start to learn, and really depends on what you are aiming for.

--Network Programming--
I am not sure what kind of skills you have, when you say you have a "Networks" background, but if you are already familiar with Network programming/architecture, maybe even some Database programming(?), then you could try to focus on learning the server-side of game programming. In a client-server architecture, clients have to deal with the graphics/interface layer, while the server is mainly about logic and network flow and such, which may be what you are interested in more. So after learning about some basic Client programming (I suggest you do learn a bit about the client-side as well), I think you could focus more on the server design/implementation. Once again, the languages and tools you may use really depends on your needs, and probably best if you do research on your own to learn.




Thanks alot all of you, too bad I'm going to take the hard road and learn everything i need to put into my one or two full game projects, let it be 2d or 3d, that's because I'm working alone right now and i want to make a complete game alone so I'll have to dive into everything, then maybe i can decide what to focus on from there..
Quote:Original post by Buckeye
Quote:is this a good start?... what is better for me particularly?

Seriously, there's only one person that can figure that out. Look in a mirror. [smile]

Yup. Any start you choose is a good start for you.

-- Tom Sloper -- sloperama.com

This topic is closed to new replies.

Advertisement