• 0

How to be a game programmer and developer?


Question

Hello :) .I am new in this forum and i am really interested in programming.I really want to learn to program with Cuda, C++ you know. I want to make my own game engines and 3D games with stunning grafiks. I saw really interesting things in the Nvidia developer zone like Nvidia PhysX SDK, OpenGL, OpenCL, DirectX and many other stuff. I want to learn how to program with them and for what and how can i use it? What i must learn first? From what i must start? What book's i must read of i am new to software and game programming? I am really confused. Thank's :D .

Recommended Posts

  • 0

Here some advice, if you want to go in to games development you have to be serious, and you have to have a solid foundation in non-game concepts.

If your going to be a game programmer, you have to be be a solid programmer 1st.

If your going to do the art resources, you have to be good at art 1st.

Once you have a foundation in what it takes, then apply love of games on top of it.

Not trying to discourage, in fact, if your serious, go for it, just have to have your eyes open 1st.

  • 0
  On 20/12/2010 at 18:16, etempest said:

Here some advice, if you want to go in to games development you have to be serious, and you have to have a solid foundation in non-game concepts.

If your going to be a game programmer, you have to be be a solid programmer 1st.

If your going to do the art resources, you have to be good at art 1st.

Once you have a foundation in what it takes, then apply love of games on top of it.

Not trying to discourage, in fact, if your serious, go for it, just have to have your eyes open 1st.

QFT

  • 0

Ok i know just how to make calculating programs. It's really easy, but i want to make cooler things, but i have a really cool calculating program. It has a really cool design, you can change the settings of the program like turning off the fade in-out effect.I've made it with the BASIC.NET in Visual Studio, but that's not the point. I really want to learn game programming and development and please can anyone tell me what must i know first, what must i read next? Can anyone tell me the path that i must take?Thank's :) .

  • 0

First of all.. a Game is no more, no less than a program. A game is a program that can do many things and has large user interaction, I've seen snake games that have less code than a calendar application.

To get into fancy stuff 3D engines, etc... it actually becomes more about knowing Math, physics, etc than being a solid programmer.

A formula (c2 = a2 + b2) is written the same in programming. Also, unless you plan to write an engine with no base (be it the DirectX SDK, or Open GL) theres so many guides and tutorials and such to help you with that, plus on top of that there are hundreds of open source engines... not so many for .NET but C++ for sure.

You could make a space invaders, snake, mario, etc game in VB.NET it won't be as fancy as a nice 3D game, but you are limited to your imagination man.

Basically if you can program.. you can make basic games. I write software for a living (not in the game sector), and know really nothing about physics, and am horrible at math.. but I still coded a solid clone of Tetris.

The key is to start small, and grow.

  • 0

Just to clarify: there's no language called BASIC.NET. There's a very old language called BASIC and there's a modern one called Visual Basic (which was at some point called Visual Basic.Net when Microsoft's only passion was to stick ".Net" to as many things as possible, circa 2003). Since you are using Visual Studio, you are using Visual Basic.

Ok back to the subject at hand.

You can make games in Visual Basic. For example, you can make text-based games with a Console Project. Or you can use the Windows GUI to make games, for example you can make a Winforms Tic-Tac-Toe (just stick 9 labels on a form). If you want to use your own graphics and sounds then you need to move on to something more powerful like XNA. I really recommend you try XNA as soon as you understand all the fundamentals of VB (virtual vs non-virtual methods, static vs non-static methods, pass by value vs pass by ref, interface vs abstract class vs sealed class vs class, for each vs for, when to use List, Dictionary, Enums, etc.). XNA requires that you use C#, but C# is a very smooth transition from VB. Identical semantics, different syntax.

You don't need to make stuff like Notepad before programming games. Actually you can learn programming entirely with games. You just need to start with small games using what you know and gradually learn from there.

  • 0

Google for "demoscene", there's a wealth of groups/boards around. You can start here: scene.org

Make sure to check out some diskmags (Hugi, Pain... ) they hold a wealth of insight into the inner workings of the demoscene and the relation to the gaming industry as well as tutorials/code for all levels.

Best of luck.

  • 0

I want to make game engines and with them to make games. I've heard that i must know DirectX, OpenGL, C++, CUDA and some other. I've read a little a book for DirectX, but you must make 3D stuff with code. How can i use that code in a game engine!? And i don't understand anything in that book. I has a photo, below it code, then a second photo and below it code and thats all in that book. Can anyone give me a good DirectX 11 book for beginners and for advance? And can anyone give me a good and simple book for everything about game engine programming and game engine toolset programming?And can anyone tell me what programming languages i must know and give me for it books?Thank's :) .

  • 0

And i don't want to make games like TIC-TAC-TOE. There are hundrets of them. I want to make cool 3D games (don't laugh for that please it is possible ;) ) like Assassins Creed, Need for Speed, Mirrors Edge and yea. And i want to make cool engines (and for that don't laugh please , because i know people that make really cool engines alone ;) ) like CryEngine 3 with his toolset named Sandbox.

  • 0

There are many parts to a game.

If you want to program an engine you "have to" learn C++, the basic Windows APIs, COM, and then Direct3D (which is the name of the graphics API in DirectX). In that order. You then have to write the story for the game. Once you have that, you have to decide what to write the actual game in, and then write that code (and develop any tools needed.) Alongside this you also have to create all the sound, music and graphics. In other words, you have to learn the various software to do that.

It's a very big task, and if you think you're going to start by writing Assassin's Creed 5, you're mistaken. Anything like that (on a smaller scale) is years away for you. Hell, it's going to be a looong time before you can even make a tic-tac-toe game.

If you've looked at a book and don't understand it, then that simply means that you're way ahead of yourself. You need to take a few thousand steps back and start from the beginning. You can't start with advanced 3D programming in D3D when you don't even understand the basics of C++. If you don't do it properly, you're doomed to fail.

  • 0
  On 20/12/2010 at 18:01, emilxp said:

Hello :) .I am new in this forum and i am really interested in programming.I really want to learn to program with Cuda, C++ you know. I want to make my own game engines and 3D games with stunning grafiks. I saw really interesting things in the Nvidia developer zone like Nvidia PhysX SDK, OpenGL, OpenCL, DirectX and many other stuff. I want to learn how to program with them and for what and how can i use it? What i must learn first? From what i must start? What book's i must read of i am new to software and game programming? I am really confused. Thank's :D .

first learn c++ inside and out. after you learn that learn Win32 programming.. after that learn MFC.

This should provide you with a solid basis for programming windows appliations. after that you can start learning learning DirectX. Keep in mind that all this time you should be learning advanced math. If you don't think you could achieve a master's degree in math... you probably won't cut it for a game programmer.

OpenCL, CUDA and PhysX are things that you can learn afterward

you should also learn database technologies

  • 0

So... 5 years in the industry... so don't take this the wrong way. I love what I do for a living and would do it for free if it didn't provide for my living.

Low Level 3D Game Engine Development is a constant and perpetual hell. If you are going to be an indie developer making games on your own, you WILL be out of your depth in technologies you can't afford legally and don't have access to physically (3d engines require testing on innumerable system configurations if they're going to produce a game playable on more then a handful of systems. If you work on a large team, you will find yourself spending weeks/months on single-aspects of a large project you have literally no concept of the scope or size and are very unlikely to ever be in a position of any kind of importance. Engine developers at companies like EA and Activision are the low men on the totem poll and are often ground to a fine powder before they get let go and a fresh round of CS grads get hired on.

If you're going to get into Game development...You really and truly are better off working inside a preexisting engine, or at least on top of a platform like Unity or even Unreal. Both of these require quite a bit more experience in programming then Basic, but if you're interested in staying in the .Net environment, XNA might be the way to go. It handles a lot of the tedious and frustrating interfacing with video cards and handling rendering while letting you focus on the actual game development. It isn't quite as powerful and fast as writing your own engine in low-level C if your engine is perfect, but for the vast majority of games, and programmers, XNA's going to do a better job then you can.

But yes, you really do need a strong basis in "real" programming before you should consider making the move to game development. It's not 100% required, and even during"real" development you can be making games. Most of my C++ and Python days were spent making simple one-off text/sprite based games, but I was learning to code first, and producing games second. Before you dig in and start designing anything complex as a full game you need a strong basis in actual programming logic, not just how to program, but understanding the mindset of programming and the logical flow of data.

This requires either a good base education (programming logic classes, and any computer science classes you can get) or a LOT of experimenting in a lot of different ways to program and languages until you start to learn why things work not just how.

Again, love my job, love what I do for a living, and love the industry... but if you're not totally and compleatly in love with worrying about how a nose is lit, building an engine from the ground up is very unlikely the best approach for someone building a game. Using something like Unity or XNA is going to let you make what you want and leave a lot of the tedium (of course, in game development that's like saying that the Atlantic Ocean has a LOT of water compared to the Red Sea...but the Red Seas still pretty damn big) to people who are willing and able to deal with the hell that is hardware-specific rendering.

  • 0
  On 21/12/2010 at 17:16, emilxp said:

And i don't want to make games like TIC-TAC-TOE. There are hundrets of them. I want to make cool 3D games (don't laugh for that please it is possible ;) ) like Assassins Creed, Need for Speed, Mirrors Edge and yea. And i want to make cool engines (and for that don't laugh please , because i know people that make really cool engines alone ;) ) like CryEngine 3 with his toolset named Sandbox.

i didn't read the whole thread before i was reading and come upon this comment... and i wanted slap you around with large trout. The reason people make games like tic-tac-toe is because it's part of a learning process. It's the same reason most programmers start out for their first programs writing something like

cout << "Hello World";

or

txtBox.Text = "Hello World"

etc..

it's a very step forward progression and if you truely think you can go from not even knowing VB to making game engines then i implore you to quit your little fantasy right now.

  • 0
  On 21/12/2010 at 17:40, AgentGray said:

So... 5 years in the industry... so don't take this the wrong way. I love what I do for a living and would do it for free if it didn't provide for my living.

Low Level 3D Game Engine Development is a constant and perpetual hell. If you are going to be an indie developer making games on your own, you WILL be out of your depth in technologies you can't afford legally and don't have access to physically (3d engines require testing on innumerable system configurations if they're going to produce a game playable on more then a handful of systems. If you work on a large team, you will find yourself spending weeks/months on single-aspects of a large project you have literally no concept of the scope or size and are very unlikely to ever be in a position of any kind of importance. Engine developers at companies like EA and Activision are the low men on the totem poll and are often ground to a fine powder before they get let go and a fresh round of CS grads get hired on.

If you're going to get into Game development...You really and truly are better off working inside a preexisting engine, or at least on top of a platform like Unity or even Unreal. Both of these require quite a bit more experience in programming then Basic, but if you're interested in staying in the .Net environment, XNA might be the way to go. It handles a lot of the tedious and frustrating interfacing with video cards and handling rendering while letting you focus on the actual game development. It isn't quite as powerful and fast as writing your own engine in low-level C if your engine is perfect, but for the vast majority of games, and programmers, XNA's going to do a better job then you can.

But yes, you really do need a strong basis in "real" programming before you should consider making the move to game development. It's not 100% required, and even during"real" development you can be making games. Most of my C++ and Python days were spent making simple one-off text/sprite based games, but I was learning to code first, and producing games second. Before you dig in and start designing anything complex as a full game you need a strong basis in actual programming logic, not just how to program, but understanding the mindset of programming and the logical flow of data.

This requires either a good base education (programming logic classes, and any computer science classes you can get) or a LOT of experimenting in a lot of different ways to program and languages until you start to learn why things work not just how.

Again, love my job, love what I do for a living, and love the industry... but if you're not totally and compleatly in love with worrying about how a nose is lit, building an engine from the ground up is very unlikely the best approach for someone building a game. Using something like Unity or XNA is going to let you make what you want and leave a lot of the tedium (of course, in game development that's like saying that the Atlantic Ocean has a LOT of water compared to the Red Sea...but the Red Seas still pretty damn big) to people who are willing and able to deal with the hell that is hardware-specific rendering.

Speaking from two years experience in the industry I have to echo this sentiment. Engine creation is a special kind of hell.

And as said above, starting with TIC-TAC-TOE or something similar is the best way to get a grounding in the general make up of a games programming.

  • 0
  On 20/12/2010 at 18:15, ChuckFinley said:

First of all learn how to spell graphics! Sorry to be the one to break this to you but you haven't got a chance judging from your first impressions.

Wow! way to overstate a small point.

Your sentence wasn't exactly perfectly structured either!

  • 0

If you want to get big, you got to start small.

And TBH you won't believe how many people drop out of Electrical/Computer Engineering around here (Especially Software Engineering majors) because they think they love programming until they realize what the hell they got themselves into. I only have a couple of friends who are truly passionate about these things and stuck with the program. And personally when I was younger I "sort of" liked programming, but I'm glad I'm in Electrical and programming is less than 30% of the education. Be careful to distinguish between stuff you like when it's not so challenging, and when it's super challenging and super boring. This is when it separates true programming lover or just someone who dreams of making something epic when they're younger.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.