Best way to get into games development?

Pages: 12
After learning a programming language such as C++, what would be the best move toward games development? i know there's lots of graphics libraries out there, which would be best for a beginner in your opinion? thanks
SDL or SFML (only use the versions 2.x).
SFML (the game development book) got me started, game development is loads of fun, you're gonna enjoy it :)
just a warning game development isn't easy. it is fun but not easy. also if you do use the SFML game development book then i would recommend that you know the advanced c++ to understand what is going on. but you can write the code and then learn from it if you want.
You definitely don't need to know advanced concepts to use SFML.

EDIT: Oh, you meant the book... I really can't say anything about that since I've never read it.
Last edited on
SDL is more C-oriented, whereas SFML is more C++-oriented. It depends on your taste - I prefer SFML.
If you make mods/extensions for major freeware games, is that a decent thing to have? Does anyone have suggestions for what kind of games would be best for this kind of idea (if it's any good at all)?
If you play WoW, you can write addons for that relatively easy.
If you planning on becoming a professional game programmer, I would suggest you learn to use a game engine such as Unity or CryEngine. This should include understanding expert level script programming and understanding the game mechanisms.
OpenGL.

I know there are libraries and wrappers on top of it, but I think it's a huge benefit to understand lower-level graphics operations.
SFML, SDL, OpenGL or DirectX is probably the best starting place for getting into game development like others have mentioned.

But I feel a very important part is being left out of the suggestions. Game Development is not all about learning how to use a graphics library. In fact unless you are on a large team and it is your job to maintain and develop the graphics framework you most likely won't be spending much time (If any) on graphics in the overall scheme of things.

Don't get me wrong graphics programming is important to learn if you want to be a game developer but you need so much more then just knowledge in graphics programming.

If you want to have a good overall grounding in game development you will need to learn a good number of programming subjects.

For example Networking, AI, Sound, Physics, Scripting, General Gameplay, User Input, UI, Development Tools (Very important), Graphics and so on. As you can see in the large scheme of things graphics programming only plays a small (But important) part in game programming.

Game development uses so many different types of programming and this is what makes game programming such a challenge compared to other programming professions.

Though more and more now days the industry is getting much more specialized. In the past most game programmers were generalists and worked on pretty much every part of the game. Now days programmers in the industry usually tend to specialize in a certain aspect of game programming (AI, Graphics, Sound, Tools, whatever) and work solely on that aspect of the game or engine. There is still plenty of generalists out there but they are becoming harder to find.

Though all that is really talking about AAA development. When you hit the Indie level most developers are generalists and usually work on all aspects of the game.

So while I agree that getting familiar with a graphics library would be the best place to start getting into game develop there is much more to learn then just that.

Anyways that is just my 2 cents and sorry for the long post ;p. If you have any more questions I would love to help out to the best of my knowledge.
Last edited on
CodeGazer wrote:
For example Networking, AI, Sound, Physics, Scripting, General Gameplay, User Input, UI, Development Tools (Very important), Graphics and so on. As you can see in the large scheme of things graphics programming only plays a small (But important) part in game programming.

For AAA that is true...

CodeGazer wrote:
For example Networking, AI, Sound, Physics, Scripting, General Gameplay, User Input, UI, Development Tools (Very important), Graphics and so on. As you can see in the large scheme of things graphics programming only plays a small (But important) part in game programming.

For indies...
The ones I marked out are because they are case based.

Networking, Scripting, and AI are only important if your game requires them. Breakout requires none of those. I've played several indie games that had you play two player local and had no networking, scripting, or AI either.

Development tools are only important if you decide to design them yourself. Though, most indies use tools like Blender, Gimp, Audacity, etc.

User Interfaces are usually graphical (unless you are making a text game).

CodeGazer wrote:
Though all that is really talking about AAA development. When you hit the Indie level most developers are generalists and usually work on all aspects of the game.

Then why point it out? How many AAA developers would be here asking for advice on where to begin game development? You should be focusing on indie development and not AAA as most indies will never become AAA developers or don't want to become AAA developers anyways.

CodeGazer wrote:
So while I agree that getting familiar with a graphics library would be the best place to start getting into game develop there is much more to learn then just that.

SDL, SFML, and DirectX are more than just graphics libraries though. Also, unless you jump over it, you will have to learn AI, physics, sound, and so on as you make the games.

This is a list of game clones I like to quote when people ask this kind of question.
GDNet wrote:
Pong = Simple: input, physics, collision detection, sound; scoring
Worm = Placement of random powerups, handling of screen boundaries, worm data structure
Breakout = Lessons of pong, powerups, maps (brick arrangements)
Missile Command = targeting; simple enemy ai, movement, and sound
Space Invaders = simple movement for player and enemy, very similar to breakout with the exception that the enemy constantly moves downward, simple sound
Asteroids = asteroids (enemies) and player can move in all directions, asteroids appear and move randomly, simple sound
Tetris = block design, clearing the lines, scoring, simple animation
Pac Man = simple animation, input, collision detection, maps (level design), ai
Ikari Warriors = top down view, enemy ai, powerups, scoring, collision detection, maps (level design), input, sound, boss ai
Super Mario Bros = lessons of Ikari Warriors (except with side-view instead of top-down view), acceleration, jumping, platforms
[*]http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

[EDIT] Fixed typos...
Last edited on
BHX Specter wrote:
For indies...
The ones I marked out are because they are case based.


I think you missed the point. I was talking about if he wants to get a good overall grounding in game programming he will need to understand at least the basics of them subjects plus more.

Though you correct, in fact this is true for every game. Though just because not every game uses AI or Networking or whatever doesn't really mean they aren't important to at least know the basics of because chances are you will need to know it.

BHX Specter wrote:
Networking, Scripting, and AI are only important if your game requires them. Breakout requires none of those. I've played several indie games that had you play two player local and had no networking, scripting, or AI either.


As before just because every game doesn't use scripting or AI doesn't mean you shouldn't know it. That is unless you are just planning on creating breakout clones the rest of your career.

My point is at least understand the basics of each subject of game development. You can specialize in whatever aspect (Networking, AI, what have you) you want but you will need to know the basics of the other aspects to be effective.

It doesn't matter if all you work on is AI code. If don't have a basic understanding of other game development subjects you will be much less effective in developing you AI.

BHX Specter wrote:
Development tools are only important if you decide to design them yourself. Though, most indies use tools like Blender, Gimp, Audacity, etc.


Every single AAA studio will have someone or more likely a team dedicated specifically towards Tools development most likely. And since you are talking about indie development you would be surprised how many indie games have their own development tools also.

The tools can range from simple filetype converters to full blown level editors.

But you are right Tool Development probably is the one aspect of game programming that you can get by without having some experience with.

Though they are in very high demand in the industry right now. So it is not a bad thing to have experience with it.

BHX Specter wrote:
User Interfaces are usually graphical (unless you are making a text game).


User Interface Programmers and Graphics Engine Programmers are completely different positions and are completely different subjects. They definitely shouldn't be all lumped into a single category.

BHX Specter wrote:
Then why point it out?


I think you missed the point on this also. I was talking about the specialized nature of AAA development compared to the more generalist nature of Indie development.

BHX Specter wrote:
How many AAA developers would be here asking for advice on where to begin game development?


I don't get what you mean by this. It doesn't really make sense, AAA developers aren't just born overnight with all the skills they need to produce AAA games.

They all had to start as beginners and most probably asked the same questions the OP has asked.

BHX Specter wrote:
You should be focusing on indie development and not AAA as most indies will never become AAA developers or don't want to become AAA developers anyways.


Again I don't know what you mean here. The same skills apply (Give or take a bit) to both Indie level and AAA level. It is just a matter of scale.

Though I don't know why I should be focusing on Indie development. The OP never gave any indication that he was only interested in Indie game development (Though in my mind it doesn't really matter, the basics still apply to both).

BHX Specter wrote:
SDL, SFML, and DirectX are more than just graphics libraries though.


Yup they are, but they are mainly graphics libraries and provide the basic frameworks for other things like networking, sound, window management, ect. depending on the library.

If I just new how to use SFML would I be able to create a good quality game (Not talking pong or breakout here)? No I would need knowledge in other subjects to do so.


The only reason I brought this up is because whenever I see someone ask about what they need to learn to get into game development on this forum or any other forum basically they always get a answer like "Learn SFML" or "Learn OpenGL". Basically learn a graphics library (Which yes some do have extra functionality).

I just wanted to point out that while learning a graphics library is not learning game development. It is learning a part of game development and you will need to learn other subjects to. You don't need to be specialized and a expert in every subjects mentioned, but you should have a basic understanding of how they work.
Last edited on
CodeGazer wrote:
OP never gave any indication that he was only interested in Indie game development

That is a good point. Though, what you are describing is a hobbyist game developer because AAA and indies still are very specialized teams. Hobbyist developers usually only have themselves and a friend or two to depend on so they have to have a general understanding of everything. Indie and AAA developers usually are made up of teams that have members who specialize in set areas.
CodeGazer wrote:
They all had to start as beginners and most probably asked the same questions the OP has asked.

That may be true, but depending how far back you go, not all of them had anyone to ask. It wasn't til the late 90s early 2000s that sites started popping up where people could ask questions. Before that they had to be self reliant for learning everything. Of course, then, making good quality games required less fields to cover for making them.
Last edited on
That may be true, but depending how far back you go, not all of them had anyone to ask. It wasn't til the late 90s early 2000s that sites started popping up where people could ask questions. Before that they had to be self reliant for learning everything.
Ever heard of BBS or USENET?
Ever heard of BBS or USENET?

Yes, but from what I remember, it was basically only available to colleges and universities since the internet didn't become commercialized til 1995.
Yes, but from what I remember, it was basically only available to colleges and universities since the internet didn't become commercialized til 1995.
Since the 80's (at the latest) they where available to anyone with a modem, though they weren't really publicized. Also remember before Windows 95 and AOL came out there were ISPs such as Prodigy and Compuserv, although content was very limited.
Yeah, from what I read, basically only those in college and the industry knew about them outside of that very few knew, as you said. Compuserv was expensive, from what I found...depending on service and location sites said it was $5, $6, or $30 an hour for using it, giving it the nickname CompuSpend. As for prodigy, I don't know much about that one outside you couldn't use IE or Quake on it.
Maybe you should make games with game engines. Maybe Unity game engine might help.
https://unity3d.com/
But the bad thing is that you must have the unity web player to play those games.
closed account (iAk3T05o)
Make the games you want. Not an indie or professional game, but the games you want, whether it's ambitious or not. Except this will be your major source of income else make the games you want.
Pages: 12