Sign in to follow this  
Obbedemus

3d-program in 4 months

Recommended Posts

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, O&M

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Quote:
Original post by Obbedemus
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$)

Just to make it clear: I'm not recommending Ogre specifically, although apart from it's engine layout, it's pretty good. There are many more game engines around, it's just the one I have to most experience with.

I know the book. For putting something together the tutorials and the forum will suffice. The book will give you some more background information, but nothing you won't find online. But if you can pick it up cheap and you decide to go with Ogre, why not.

Share this post


Link to post
Share on other sites
Hm, Ogre seems good like a good foundation to build on. But we'll see...
However, I realized I need some sort of audio SDK (?). Any recommended? I can go with SDL Mixer since I know it already, but thought there might be some 3d specific? (I think I have an idea on how to make Mixer "3d", though)

Share this post


Link to post
Share on other sites
I would totally do it yourself. Useing game engines is all well and good but half the time you spend just reading their docs and figuring out how todo what you want in THEIR code. Never really seemed that great as a learning experience to me. You'd learn far more, and be far more employable if you write a tetris clone yourself instead of writing a full FPS in someone elses engine.

I always recon 2D games are the place to start, but remember you can do a 2D game in 3D to use your friends models. Something like a Raiden clone with 3D models and a 3D scene below them is still a 2D game. .. all your code works on x/y, then rendering is all done on x and y with z = 0, and the camera just looking down. So the logic is entirely 2D, its only during the camera placement you ever think in 3D. Something like that is definatly doable within 3 months. The NeHe tutorials will definatly set you on the right path - they're awsome!

Edit: I personally love fmod for audio. I write my hobby code useing openGL through SDL, fmod for audio and libpng for texture loading. All pro libs although libpng was a bit of a pain to get working first time round so one of the SDL img loading addons is probably a better option first time.

[Edited by - pto on July 5, 2008 8:32:33 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Obbedemus
Hm, Ogre seems good like a good foundation to build on. But we'll see...
However, I realized I need some sort of audio SDK (?). Any recommended? I can go with SDL Mixer since I know it already, but thought there might be some 3d specific? (I think I have an idea on how to make Mixer "3d", though)


The Irrlicht Engine is another open source 3D C++ engine, there is also the IrrKlang sound engine made by the same guy.

Share this post


Link to post
Share on other sites
Quote:
Original post by ptoYou'd learn far more, and be far more employable if you write a tetris clone yourself instead of writing a full FPS in someone elses engine.
Yes, naturally, but we're not thinking of getting work from this, this we do just for fun. But yes, we'd probably learn different (more) stuff. And I was "forced" to do a full 2d program this year (with SDL), so I'm kinda sick of it. The main point is not developing a full game or a simple engine, it is only to have something to do for 4 months. And that's why using an engine made by someone else seems more entertaining. And my friend will have more stuff to do as he is not quite so skilled in C++ (yet).
Actually, we don't really have a big plan what the goal of the game is, but making a man walk sounded 3d and somewhat doable. I'm reading about Ogre and will read about Panda and possibly Irrlicht.
Edit: We recently decided that we'll go for Ogre. This is because it seems more powerful that Irrlicht and Panda3D seemed to be partly Python, which I know nothing about.

[Edited by - Obbedemus on July 15, 2008 1:36:56 PM]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this