Transitioning Into 3D

Started by
1 comment, last by programmermattc 15 years, 8 months ago
Greetings, I've been dabbling with 2D game programming over the last year as a stepping stone into the world of 3D. I've programmed several pong, tetris, and breakout clones, as well as a few of my own ideas along the way. I've learned quite a bit so far. I've decided that I'm ready to take the jump into the 3D realm. My plan is to stick with XNA and C# which I've been using for my 2D adventures. My question is this: Do you guys have any suggestions for a good path to follow when learning 3D? E.g. Start with getting a model on the screen, then build a terrain engine, etc. I started off displaying a single primitive on the screen which seemed to work alright. Did simple stuff, made it rotate. Colored vertex. Played with input handling. Then I followed a tutorial for building our some terrain based on a heightmap, which went ok for the mostpart. But, from single triangle to terrain, now I'm concerned about view, world, and projection matrices, XNA "effects", figuring out a "camera" (and how it fits in with the matrices), maybe a scene graph, etc. I don't think any one thing is beyond my comprehension. I'm just having a hard time coming up with a logical progression for learning the pieces of the puzzle, how they fit together, and why. How did you guys go about learning the pieces when you dove into 3D? Thanks!
Advertisement
Start by getting some shapes on screen and figure out moving them around, colouring and applying textures and such.

Then, I guess you could 3D-ise your current 2D achievements - make 3D Pong, Tetris and Breakout. Pong and Tetris could be the same 2D games with 3D shapes, but you could give Breakout an extra dimension of blocks and turn it into an actual 3D game.

"The right, man, in the wrong, place, can make all the dif-fer-rence in the world..." - GMan, Half-Life 2

A blog of my SEGA Megadrive development adventures: http://www.bigevilcorporation.co.uk

I personally never really 'started' in 2D so I started with learning 3D techniques. If I were to have started in 2D though and moved to 3D, I would probably start like you (in fact numerous tutorials prefer that), where you start by drawing simple shapes. Though, I feel your jump from simple primitive to terrain is quite a massive one.

I've written a tutorial series using C# and XNA you can find HERE. It's all 3D (except for the 2D HUD) and hopefully will help you a bit.

Specifically check out Tutorials 3 and 4 where I go through some simple coding of those transformations. Here's kinda of a reference:

World - Position, Rotation, and Scaling of objects in your world
View - Position, looking at direction, and up vector of the camera
Projection - Transformation that converts your 3D world into a 2D image to render to your screen.

=============================RhinoXNA - Easily start building 2D games in XNA!Projects

This topic is closed to new replies.

Advertisement