Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am interested in learning game programming, but I really have an interest in the lower level engineering in games. I have OpenGL experience, and I am really interested in learning more about implementing AI, Physics, etc. I have a computer science degree, so I really like getting into technical stuff.

Many times when I ask about this sort of thing, I get a lot of "Use an engine", "Use Unity3d", "Why waste your time writing code that already exists", etc, etc. My idea was to use simpler libraries such as SFML or XNA so that I could learn how to implement the more complex systems.

The thing is, although I do want to write games, I want to learn things that using something like Unity simply doesn't teach you. My goal is not to make a current generation quality 3D game to sell, I just want to make some cool smaller games and learn all I can about the programming side of game development.

Is this something that people just do not do anymore?

It seems like everywhere I turn people are using Unity or UDK or GameMaker. I fully understand why you would use a tool like these, but I cant see how they would suit my purposes.

So where does someone like myself turn? Am I trying to learn something that people just do not bother doing anymore? Is the innovation in this area gone and just all about gameplay now?

I'm sorry if this question seems silly, but I am genuinely interested in knowing more about this and meeting more people who are interested in this sort of thing.

share|improve this question

closed as not constructive by Nicol Bolas, Byte56, doppelgreener, Le Comte du Merde-fou, Trevor Powell Nov 23 '12 at 1:02

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Whats the point? Why dont you just do it? – Maik Semder Nov 21 '12 at 19:52
:) Well I am doing it, I am learning XNA as we speak. I was just trying to understand the current state of things. I was getting a feeling that maybe I was trying to approach game programming in a way that is considered "obsolete". I guess if my goal is to learn it really doesnt matter. If I eventually wanted to seek out jobs in game development, would skills in this lower level implementation be useful? – JoeP Nov 21 '12 at 19:59
Please read the FAQ. Where to get started questions are off topic for the site. Since there's no correct answer, as the answer is different depending on previous experience, and a number of other factors. – Byte56 Nov 21 '12 at 19:59
@Darkslash Many of the big name game dev companies write their own game engines, so there is always a need for someone to write / maintain those engines. Most of the smaller start-ups and indy game devs typically use pre-existing engines to speed up development time. – Kevin DiTraglia Nov 21 '12 at 20:14
So it is a useful skill other than just for learning purposes. I know that if I have an interest it shouldnt matter, but its nice to know that these skills are still useful to have. I just dont have the interests of a game designer, I like physics, and AI a lot, and I really wanted to use those interests to bring cool gameplay ideas to reality. – JoeP Nov 21 '12 at 20:24

Regardless of what known engine you use, the chances of you making a game that becomes the next big thing or even nets a profit over the development time and costs are pretty slim. Therefore the real goal is doing what you enjoy, and if that is playing at the lower level and creating your own engine, then by all means go for it.

Some people like to be able to have something more to show for their work in the eyes of someone who doesn't understand programming, thus the huge appeal of such engines as unity 3d and such. But the bottom line is enjoying what you do and learning something, so I say go for it. I'm sure you will find some like minded people to help, I am the same way I really dislike using engines I don't understand the inner workings of.

share|improve this answer
So you dont think that wanting to make games using lower level frameworks as opposed to full fledged engines in order to learn a lot along the way is a bad thing or an "older" way of approaching this? Back in the early days it was the only way to go, but in this age of so many accessible engines it seems like everyone is using them. I know that I wont be able to produce games nearly as fast as someone using Unity, but honestly I dont care :) – JoeP Nov 21 '12 at 19:45
@Darkslash It's certainly not a bad thing. I think knowing how the lower level of things work is invaluable as you continue programming, even in the higher level languages. It is just perhaps bad for creating something cool fast, but that doesn't seem to be a concern. – Kevin DiTraglia Nov 21 '12 at 19:52

If you're interested in getting into engine development I would check out a good survey book like Game Engine Architecture, Realtime Rendering, or Real-Time Collision Detection

You can also learn a lot by checking out the successful open source projects out there like Box2d or Recast.

You might also enjoy spending some time dissecting previous engines that have release their source:

share|improve this answer
Thanks for the links, much appreciated. – JoeP Nov 21 '12 at 20:33

Is this something that people just do not do anymore?

No. People are working low-level on game engines all the time. Otherwise you'd never get new versions of Unity or the Unreal Engine with all those fancy features.

So where does someone like myself turn? Am I trying to learn something that people just do not bother doing anymore? Is the innovation in this area gone and just all about gameplay now?

Keep going, and be good at it, we'll need low-level engineers for a long time to come. Innovation happens everywhere, from the very high level to the very low level.

But don't limit your vision to a small part of the spectrum, you should always maintain a good picture of how things work at all levels. A side effect of team sizes growing is that people are getting more and more specialized, so a deep knowledge of the machine is valuable, as long as you're able to work in a team so this knowledge gets beneficial to everybody.

share|improve this answer

If you studied OpenGl you are on the right track.

Also read about the DirectX, The understanding of it might be useful due to the fact that Microsoft always gives some bonuses to the users of their software..

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.