3d-program in 4 months

Started by
14 comments, last by Obbedemus 15 years, 10 months ago
Okay, so me and my friend are free from school this autumn (spring for those down under) and thought we'd do a very basic 3d-program. So, since none of us has done anything like this, we need some tips. The conditions are that I know C++ (I know classes, heritage, friend-classes, etc) and he knows 3ds Max (modelling, animation, etc). So, not to waste our talents, we're looking for a solution that uses these attributes to the maximum. Our goal is to create something as simple as a man walking in a room. And we don't think we'll succeed, but we'll learn hell of a lot during the process. Now, as I said, we know nothing/little about this, but we've gathered that we'd probably need some sort of engine, and my friend found Panda 3d. Is this a good choice? Is this needed? We might be out wandering totally, as I said, we have no/little clue on this. Any help is warmly welcome! And most critical, where do we start? Where can we find good, solid info about both structure and process? What do we need? How do they integrate? Basically, what we know is C++ and 3ds Max. And that's about it. I know this is all loose and sketchy, but I thought that here are good people who knows where to start. Just give us something to grab onto! Sincerely, OM
( /)(O.o)(> <)This is Bunny. Copy him into your signature to help him on his way to world domination.
Advertisement
well, Directx SDK is a good place to start... However, I don't know if this will help you in school (I assume College classes favor OpenGL). For experienced programmers to be fluent with either DirectX or OpenGL takes serveral month (3 month or so). Then they can produce something useful. However, If just a walking man, or something. There is a sample in DirectX SDK... you can take a look at that.

However, if to start from scratch, here is the time flow... (My own experience in DirectX9, DirectX10 requires shader knowledge to function properly)

Initialization (1 to 2 days)
2D Image Rendering (1 day)
2D Font Rendering (1 to 2 days)
2D Compatible Device Context (1 day (not avaliable in Directx10))
Camera, Texture, Vertices and basic rendering and rendering states
(3 days to a week (this part is more of a iterative learning))

Lighting (1 day)
Material (less than a day)
Model (2 days )
Animation (2 days)

Optimization and Device Lost Reset handling(Optional for beginners )

Wrapping them all up and create an engine 3 weeks

Create an Basic App with engine -- 2 - 3 Weeks
I would recommend taking a look at the NeHe page which deals with OpenGL and C++. it will give you a good foundation in 3D programming. Unfortunately as i'm unfamilir with 3DS Max, i'm not sure what output formats it uses, but you should be able to load the 3DS Max models in through OpenGL also. Those forums are pretty good if you're planning to do it from scratch.

I hope that helps you out.

-------------------------------------All i know is i don't know anything
I think OGRE would be a good choice for you. It's purely a graphics engine, with some sample media. It's still difficult to program, but OGRE will take care of some of the basics for you if you'd like to skip learning to rasterize. You are an ideal candidate for OGRE. In four months time you could probably churn out a pretty cool little game.
If you've got 4 months, then pick a game engine, don't build that functionality yourself - 4 months won't be enough.

Personally I've had good experience with Panda 3D. I used Python with it, which allowed for pretty rapid development. The main thing I would've done different is using a separate physics engine, but other than that we were able to build a fair game in just 3 months. It was actually the first time I worked with Python but it's pretty easy to get into if you have some programming experience.

As for 3DS Max, it's a popular package so it shouldn't be too hard to find a conversion tool if the engine you pick uses a different format.

As for structure and process, a lot comes down to experience. Personally I've found modding existing games to be quite educative.
Create-ivity - a game development blog Mouseover for more information.
Creating a <emphasize>basic</emphasize> 2d engine within a month is doable so a basic 3d engine within 4 months would seem doable. You may have basic collision detection using boxes and have only basic camera function, but at least you can get a person moving around and interacting with the environment.

Check out my blog for my 2d engine with Direct X here Project Z Blog. I haven't updated since the end of January, but I started at the beginning so if you have questions feel free to ask and the source code can be hosted for you to download and it is quite well commented.
Thanks for the replies! It seems divided either we can build an engine from scratch or not. Also, if we chose an existing engine, there are different recommendations.
Making an engine from scratch will probably not work correctly once we're done, but we'd probably learn more from it. I'll talk to my friend and see what he says.

Once again, thanks for the replies! Feels like we can actually do something now!
( /)(O.o)(> <)This is Bunny. Copy him into your signature to help him on his way to world domination.
Quote:Original post by Obbedemus
Making an engine from scratch will probably not work correctly once we're done, but we'd probably learn more from it. I'll talk to my friend and see what he says.

I'm not sure what experience you currently have, but I don't think you will learn more, instead you'll end up learning different things. If you're interested in learning more about window message pumps, restoring lost devices or modifying vertex buffers, you probably want to start more 'low level' (although that does not imply building an engine). If you're more interested in building game play, implementing fancy effects and actually finishing the project, using an existing engine may be a better choice.

For instance in Ogre, having a man walk around in a room will only cost you a couple of days (in terms of coding, not modeling), and this includes familiarizing yourself with the engine, reading documentation, doing some tutorials etc.

You probably want to determine what you're objectives for this four month period are.
Quote:Original post by WanMasterYou probably want to determine what you're objectives for this four month period are.


Yes, I've realized that now. And yeah, we'd learn different things.
Well, unless my friend decides we're going to do it from scratch (which I don't think, since he will do most/all modelling), it looks like it will be Ogre. And this was what we discussed in the beginning, so likely it will be this option.

Now, then. I guess Ogre's homepage and Google is a good place to start, but any other recommendations on tutorials and stuff for Ogre? And since I've never tried Ogre before, the very basics (like installing) is naturally highest priority.

Oh, also, OT. Anyone knows a good, rather simple, way to make the workflow smooth? We'll probably be at different places and different times, but in the same city.

Once again, thanks!

Edit: Found "Pro OGRE 3D Programming" quite cheap (at least for me since the dollar is low). Worth buying? (Something like 25$)

[Edited by - Obbedemus on July 4, 2008 11:33:48 AM]
( /)(O.o)(> <)This is Bunny. Copy him into your signature to help him on his way to world domination.
Panda 3D is pretty cool. If this is your first time doing something in 3D I'd recommend it, the manual/docs are pretty good. Plus, even if you decide to make your own engine, it'll probably give you some insights into various design decisions you'll need to make along the line.

This topic is closed to new replies.

Advertisement