   First 3D Game Project
  Hey everybody I have a question that I'm sure has been asked before but was not able to find a thread on here that really answered my question.  I'm not asking the typical which language to use, or what graphics api to use, what I'm asking for is a suggestion of what would be a good first 3D game project.  I've been doing 2D game development for a while now and want to try to do something in 3D but don't know where to start.  I know of a few projects that I want to do eventually but don't want to jump in to soon to a project that may overwhelm me with to many new topics to learn about.So what are your suggestions?   
  A good exercise is take a 2D game you've already made and replace the logic side and rendering side with their 3D equivalents.   ;  I would say anything you'd like to make. I don't think 3D is overwhelming. If you are confident with 2D, that means you are confident with coding/objects/architecture/input/resource-management. 3D has some simple vector algebra, maybe collision detection, ray-whatever intersections, not so much stuff.I'd say jump right into it, if problems come into your way solve them at that time.   ;  Start your 3D terrain first. then move your way up to charecters, car etc.....The special effects using sound and story.   ;Quote:Original post by Duck123Start your 3D terrain first. then move your way up to charecters, car etc.....The special effects using sound and story.I recommend the reverse of that.Start with a generic model viewer first.  This should verify that your 3D engine is actually working.  It will also help separate the game logic from the data and from the rendering.A generic "empty" game engine should be able to view and animate any model.  That's the starting point.The engine should be able to view any model, be it a character, tree, or entire landscape.  It should be able to run scripts, play animations, and get linked to sounds.  That tool of an empty game engine should be kept around forever, because it is amazingly powerful.Start by loading a specific model. Character models are good for this because it lets you run your engine through the paces of model processing, texturing, shading, animation, scripting, motion, camera settings, etc.Then you can create multiple instances of models, using data.  Those become your environment of trees, rocks, walls, and more.Then you can add effects.  Those become grass, water, fire, lava, particle systems, and more.Always having the option to run an 'empty' game allows you to build new features to the engine without ruining the rest of the game.  The empty engine becomes a testbed for everything.And finally, remember the adage "make games, not engines".  There are excellent engines like Unity3D that have already solved the hard problems.  They already load models, manage textures, and render the scene.  There are physics engines that can handle motion for you.  Don't spend countless hours trying to build a physics integrator, or model loader, or exporters, or other common functionality.  All these tools are available, debugged and generally easy to use.  Further, if you are a programmer don't get bogged down in trying to create models, textures, and sounds; Find a modeler or animator or whoever else to do those things, and focus on actually making your game.   ;Quote:Original post by Duck123Start your 3D terrain first. then move your way up to charecters, car etc.....The special effects using sound and story.Actually, terrain can be kind of a bitch. It isn't usually treated like a normal model. Look at Ogre, for example - they're implementing an entire new terrain system years into development.As for the OP, really anything is a good choice. Take your favorite type of game and just go for it. Keep it simple, of course. If you like RPGs, make the simplest RPG you can possibly think of. Just go step by step, always building on what you've learned along the way.A good first goal is to get a simple cuboid on-screen and moving in 3D space. This isn't, unfortunately, as easy as it sounds, but it's the foundation for all the rest.   