3D World

Started by
9 comments, last by Mulligan 19 years, 7 months ago
Greetings to everyone. I want to move to 3D game programming now. The first program that I want to create is a maze that one can move around in. To optimize the learning process, should I try this by writing my own software renderer? Or should I do this in something more simple, like OpenGL?
Advertisement
Just wondering, since this post is in the "Beginners" secion, how much programming have you done? I would suggest making a few good 2D games before moving onto anything 3D.
I can program comfortably in SDL, and C++. I have made Pong, and a spaceshooter.
What kind of experience do you already have?

A software renderer would require you to learn a lot of things about the graphics pipeline, vector and matrix maths, trigonometry, data structures etc and is not a simple task.

It depends really what you're focus is.

If you just want to make a game then use an API.
If you're doing this to learn then perhaps writing a software renderer is for you.

Andy

"Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile"

"Life is short, [the] craft long, opportunity fleeting, experiment treacherous, judgement difficult."

If it is your first try on 3d graphics, then I would suggest you not to write your own software renderer.
The mathematics is not the problem. I was told that writing a software renderer is a good learning experience. However, once I am done with it, I throw it away.
Well if the mathematics isnt a problem, you already said you can use SDL & C++ proficiently and you're interested in it as a learning experience, then yeah a basic software renderer should only take you a couple of months (from scratch).

That couple of months is for everything from the various maths lib's you could write, file handlers etc, if you've already got or are using open-source libs for that kinda thing and are really just writing the renderer itself then it will take even less time than that!

I say go for it, just decide exactly what you want it to do first and spend a couple of days architecting it... i say only a couple of days because you'll most likely want to revisit and re-architect the layout a little once you've discovered a little more about what you'll need.

Andy

[edit] corrected some typo's minor rewording [/edit]

"Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile"

"Life is short, [the] craft long, opportunity fleeting, experiment treacherous, judgement difficult."

Quote:Original post by CodeTitan
The mathematics is not the problem. I was told that writing a software renderer is a good learning experience. However, once I am done with it, I throw it away.
Yes, it's a good learning experience. At writing polygon fillers and stuff like that.

Edit: Also, if you're only planning to throw it away, then think about other stuff you could have done in that time, and that you wouldn't throw away. And that you would also learn things from.
I'm not planning to throw it away; I just think that it will happen. Could the software renderer be used for an actual game?
Sure, but it would probably be much slower and a bit uglier than if you used something like OpenGL, which is, IMO, pretty easy to learn. I learned OGL via NeHe first and then spent about a day writing a very simple software renderer just to learn the math behind it (no textures, etc.). It was worth it but I wouldn't want to bother extending it.

If, however, you're interested in writing 3d games for mobile platforms, you'll probably need to write your own renderer.

- Pete

This topic is closed to new replies.

Advertisement