Tell me more ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I want to learn the basic concepts like collision detection, rendering and others in a general way (keeping the library usage minimum). I believe that once my basic concepts are clear, it would help me in learning different libraries easily, like OpenGL, etc.

I know without libraries it will take long time to build things. I am doing this for learning so I don't care about productivity.

I would love if the solution is using JavaScript (HTML5 Canvas) or C/C++ (DOS mode) since I believe I will have to deal with a bit of low level stuff which would help me in learning. Other solutions are also welcome. I know Java as well.

Note: 2D games are sufficient for me.

share|improve this question
Any explanation for downvote? – Cracker May 24 '11 at 3:18
2  
Using libraries is probably the easiest way to learn basic concepts since they provide an easy interface on how to do things. Once you understand what you're doing, then you can dig deeper into how. – Tetrad May 24 '11 at 3:18
1  
Also -1 since this question is very generic. "How do I begin" has been asked time and time again, and there are a lot of questions that cover it. If you had a specific question about, say, collision detection, you should ask that. – Tetrad May 24 '11 at 3:19
@Tetrad: I am looking for a solution without libraries which I think makes my question different. – Cracker May 24 '11 at 17:35
I hope going the harder way was not one of the reasons for downvoting. Why do you want me to go the easier way when I am not worried about going the harder way? I need to do some research in this area and so I need to do things without using libraries. – Cracker May 24 '11 at 17:37
show 4 more comments

closed as not constructive by Tetrad Oct 21 '11 at 17:08

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 specific 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, see the FAQ for guidance.

3 Answers

I think you've got two different things going on here. You want to learn, and I am assuming you mean 'learn to develop games'.

If so, you are going to hinder yourself by trying to avoid libraries. There's two probable scenarios I can make up:

Using libraries

  • You'll start off with most of it done for you.
  • You actually will finish games much faster. You may not care about them, but you are so much more likely to keep going if you've got something done.
  • You'll therefore learn at a high level. You will know how to organise your collision code and your rendering code, even if you aren't organising the vertex buffers.

  • You'll become more used to what the functions and classes do under the hood, either by learning about them or generally by practice.

  • Now you can go back and write your own collision testing and OpenGL engine and know what you're doing - since you understand, it will work and you will learn.

Not using libraries (jumping in)

  • You'll have little idea of what you're actually doing.

  • You can learn from the examples, but it's very likely you'll just go 'oh, that works but I don't know why'.

  • You will not learn to structure and fit everything together so easily, since your focus is building each component separately.

  • Overall, you are likely to lose motivation and give up..or at least act slower than the other method.

An analogy is collecting and painting model figures. Using libraries is equivalent to getting mostly done figurines for you, or ones with few pieces and learning to paint them. Not using libraries is like trying to sculpt your own from a reference.

As for libraries (you say 2D), I would check out SDL which is older, mature, has a wide userbase but written in C, or SFML which is newer and as such less mature, but uses OpenGL (hardware acceleration) and is, in my opinion, better structured in terms of API.

share|improve this answer
2  
+1 You have an intention to learn how to make games right? Learning various geometry problems will only teach you how to tackle various geometry problems. It isn't even yak shaving, it's just completely misdirected. If you want to learn how to make games, start learning to make games. – Jonathan Hobbs May 24 '11 at 10:55

I would recommend practicing a lot of experiments AND reading good resources on the subject.

However, there is a lot of great resources to read (while practicing) and I couldn't list them all. But there is some questions about this subject here on gamedev.stackexchange.com

share|improve this answer
1  
I wouldn't class Game engine Architecture or game code complete as ones for starting game mechanics..certainly good reads, but not for a beginner. – The Communist Duck May 24 '11 at 10:43
I disagree, particularly for the Game Engine Architecture. It starts at a very basic level a go to some very deep notions later. I persist in the idea, that it is accessible to the very beginners. – Valkea May 24 '11 at 13:12
The OP wants to learn gamedev, not engine architecture. If you have a good basis in the former, the book is good if you want to learn. Personally I think the OP has his ideas mixed up. – The Communist Duck May 24 '11 at 15:07

You should care about productivity. I can guess that if you intend to do everything yourself you're looking at at least two years to develop this, you will slack off and walk away and your alleged game will never get made.

Learning how to use an API is an invaluable skill and by using someone else's work - especially an open-source library - you can spend more time developing your game than building the underlying components necessary to implement it.

As for answering your question, you need the mathematical background of the concept of "slope-intercept" to understand collisions. I don't have the mathematical background; I just use a physics package where someone who is better than this than I am has already done the math.

share|improve this answer

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