[SDL] writting a doom-like game

m7174389-1 priest at seraphim.info
Tue Jan 4 10:08:45 PST 2005


>  Does anyone here have a good advice?

Well - I do have a copy of the doom-source at home - the following to 
say:

- Most things they did back than were necessary back than but are not 
necessary today.
To learn how to code the old way is not bad but IMHO wasted time 
because you will still have to learn the current ways of programming 
and if you learn those you will sooner or later understand the old 
ones.
In short - redundancy :)

- Seeing the doom code is good if you want to learn some (old) dirty 
tricks. Can be helpfull some time but you will need some understanding 
of what they do first.

- You say you code Java - well - let's hope that's not the only 
language because a jump from Java to assembler (which doom is written 
in) is a - let's say - HUGE leap. If Java is the only language you know 
you should learn C (or C++, but C is better (IMHO) if you want to head 
that way) first before hitting assembler.

- It may be handy to know how to write a complete renderer (rasterizer, 
etc.) but that's all. You don't actually want to write a renderer 
(believe me :) you want to create 3D graphics (at least I did - and I 
had the same idea you have ;).
In short - get a book about the basics (e.g. Peter Shirley -  
Fundamentals of Computer Graphics) that will give you all the 
understanding you need in much less time.
Furthermore IF you want to learn from doom you have to understand all 
the optimizing they did and that can get really hard if you don't know 
the basics which the doom code will NOT tell you (like I already 
mentioned ;).

- If you did it anyway and wrote your own renderer you will sooner or 
later discard it and turn to OpenGL or DirectX. Why? Those libraries 
stick around here a long time, meaning many people put lot of work in 
it, meaning those libraries will be better than anything you will end 
up with in the same time. And - after all - if you want to write games 
you need to know one of those libraries anyway.

Ergo - what I would recommend:

- If you don't know C - learn it. If you learned C - switch over to 
C++, maybe have a (short) look on assembler (comes handy some times).

- Get a book about 3D basics (e.g. Shirley). If you feel like you want 
to code a few parts of it - do that one-by-one.

- After that get yourself a few OpenGL tutorials (e.g. 
nehe.gamedev.net) and play around with those to see how OpenGL handles 
the basics you just learned. You will see - you only need a fraction of 
the basics you learned and happily not many of the complicated ones.

- And - if you still don't have enough - get yourself the book "Real 
Time Rendering" - that covers nearly every topic in computer graphics.

But after all - that's only my opinion - the rest is up to you :)

Arne





More information about the SDL mailing list