Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411721 Posts in 69402 Topics- by 58450 Members - Latest Member: FezzikTheGiant

May 22, 2024, 12:27:28 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)The technical implications of a 3D game
Pages: [1]
Print
Author Topic: The technical implications of a 3D game  (Read 2644 times)
BlueSweatshirt
Level 10
*****

the void


View Profile WWW
« on: January 30, 2010, 11:14:46 PM »

So, I've been making 2D games for almost six years now.

I want to venture forth farther into the realm of 3D games, but I don't know where to start exactly.(besides Google)

I'm wondering what are some implications of making a 3D game that has animated [skeletal] models, dynamic models(as in a character's head looks towards a designated object, because this currently stumps me.), and actually creating these models. Beyond visuals, there is also collision detection that concerns me.

So, I request a few questions answered:
- What 3D engines do you recommend?(if any) Is it a better idea to make my own?
- What books/resources do you recommend looking at for 3D game programming? This is going beyond the literal rendering, and talking about 3D games themselves.(if any exist)
- What tools do you recommend for 3D modeling and animation?

Thanks for your time!
 Smiley
« Last Edit: January 31, 2010, 12:14:34 AM by Jakman4242 » Logged

Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #1 on: January 31, 2010, 04:02:23 AM »

What 3D engines I recommend... Well, let's first assume you're going to explore 3D games programming before making a commercial project. That I say this is because there are many very sophisticated commercial 3D frameworks, but I personally think that they're overkill for learning and starting out.

Good FOSS 3D frameworks are Irrlicht and OGRE 3D. These are both cross-platform C++ frameworks fully furnished with animation support and support for some commonly used FPS game level formats. OGRE also has bindings for Python. Irrlicht is easier to use and learn, but is more lightweight and also less advanced. OGRE is very powerful and has even been used in some commercial games (like Torchlight). If you really need an advanced scenegraph-based FOSS 3D solution then OSG (Open Scene Graph) might be for you. Or if you want a friendly and easy-to-use introduction that still can be used to make very sophisticated games in Python iirc, then Panda 3D could be your friend forever.
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
ITS_Mike
Level 3
***


Programmer


View Profile WWW
« Reply #2 on: January 31, 2010, 10:16:00 AM »

Real-Time Collision Detection
I highly recommend this book for learning collision detection.  I spent most of last year reading through it and learning the subject.

I don't know of any books on making 3D games specifically, but here are a couple books that may be helpful:

3D Math Primer for Graphics and Game Development
This is an excellent introduction to 3D math, and 3D game creation in general (it even touches on a little bit of collision detection).  However, as with any book like this, I recommend you read the errata page on their site.

Real-Time Rendering
This book is a treasure trove of information related to 3D in general and 3D in games.  This is a more advanced book though, and I wouldn't recommend it as your first on the subject.  Maybe your second or third Smiley
Logged

piyush86
Level 0
**


View Profile
« Reply #3 on: January 31, 2010, 10:32:45 AM »

OGRE 3D is probably the best open-source 3D engine available today. It has a clean architecture and there is a lot of support in the community..

Unity3D is also a good choice....it sets you up well enough that you can experiment with making games fast..

Good Luck... Beer!
Logged
BlueSweatshirt
Level 10
*****

the void


View Profile WWW
« Reply #4 on: January 31, 2010, 07:41:18 PM »

OGRE looks great, and I've been looking up a few books. Thanks for the suggestions!  Kiss

What does everyone think about 3DSMax for making 3d models? I've heard people say both 3DSMax and Maya were great for modeling, but I'm somewhat lost.  Facepalm
Logged

Riley Adams
Level 5
*****


I don't actually use Ubuntu much...


View Profile
« Reply #5 on: January 31, 2010, 08:07:03 PM »

Quote
OGRE looks great, and I've been looking up a few books. Thanks for the suggestions!  Kiss
Ogre is awesome (I've been using it for ~2.5 years now), very well coded/documented and the community is great.

Quote
What does everyone think about 3DSMax for making 3d models? I've heard people say both 3DSMax and Maya were great for modeling, but I'm somewhat lost.  Facepalm
From my experience, I'd recommend Blender, it's free/open source, and with 2.5 they've really overhauled things (plus the Ogre exporter works very nicely).

Keep in mind that I've personally never used 3ds max (I used Maya a little bit at school and didn't really like it), but I think there are pretty mature Ogre exporters/plugins/etc for both.
Logged

Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #6 on: February 01, 2010, 12:13:05 AM »

What does everyone think about 3DSMax for making 3d models? I've heard people say both 3DSMax and Maya were great for modeling, but I'm somewhat lost.  Facepalm

3D Studio Max: $3.495 (USD)
Maya 3D: $3.495 (USD)

Isn't that a bit steep for learning 3D programming?

Look up Blender and Wings3D instead. Blender has OGRE export.
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Chromanoid
Level 10
*****



View Profile
« Reply #7 on: February 01, 2010, 01:15:05 AM »

jMonkeyEngine (Java), unity3d (javascript/c# for scripting, free version is a bit limited, good for non-programmers...), papervision3D (Flash, if you are into flash already, maybe a good start), XNA (not an engine but a good framework, c#, XBLIG as channel of distribution)

if you have an access to maya or 3dsmax i.e. via school or university you should give them a try. softimage xsi is very powerful too. maybe you could try the free Softimage Mod Tool.
Logged
skyy
Level 2
**


[ SkyWhy ]


View Profile
« Reply #8 on: February 01, 2010, 02:15:33 AM »

My honest suggestion is http://www.panda3d.org/ . Personally I've enjoyed working with it a lot, it's free and is packed with mucho mucho awesome features.

You can look at the lists of featuers of the engine here:
http://www.panda3d.org/features.php

Yum, yum, I like Panda3d.
Logged

Richard Kain
Level 10
*****



View Profile WWW
« Reply #9 on: February 01, 2010, 12:28:56 PM »

Okay, I think I can help you out here.

If you want to make your own engine, you will need advanced 3D math training and experience. We're talking highly advanced Calculus, and there's no way around that. If you are a computer science major already, then maybe this would be an option you would want to explore. Thankfully enough, there are now plenty of options if you don't want to go that route.

3D Engines---
There are many 3D engines available today, at numerous different prices.

Ogre 3D: this is an open-source 3D rendering engine. It only includes rendering features, so don't expect much in the way of assistance for gameplay elements. It is easily one of the most capable open-source engines for 3D rendering, and features numerous options for shading and effects. It is also one of the more cross-platform compatible engines, so using it is a good idea if you need to port your game to multiple platforms. You program this engine using C++, although wrappers are available for some other languages.

Panda 3D: This is an open-source Python game engine originally developed by Disney. It is the same engine that is behind Disney's ToonTown and Pirates of the Carribean MMOs. Disney open-sourced the engine, so it is free to use for commercial projects. The rendering features of this engine are more limited than Ogre3D, but still quite respectable. This engine also has more game-related library elements than Ogre3D. This engine using Python for programming. (I believe it also supports C++ for custom plug-in modules) Panda3D can currently export games for Windows and Mac OSX.

Unity 3D: this is rapidly becoming one of the most popular solutions for beginning 3D game developers. It is very friendly for artists, with numerous import plug-ins that make the content pipeline as short as possible. It is far more graphically-oriented than most other engines, with a scene editor that allows you to position game elements visually. Custom components for gameplay elements are coded using either Javascript or C#. Unity is currently able to export projects for use on Windows, Mac OSX, a web-browser plug-in, the iPhone, the Wii, and there is an XBox 360 port in development. The low-end version of Unity is free, even for commercial projects, and has most of the features that a beginning developer would need.

3D Tools---
The tools for developing 3D content have also come a long way. Here are some of the better options for beginning developers...

3D Studio Max: this has been the industry standard in games for many years. The majority of major game studios use 3D Studio Max to produce content for their games. The learning curve is fairly steep, but there are numerous tutorials on-line. The price is very steep, check the Autodesk website for details.

Maya: for a long time Maya was one of the biggest competitors to 3D Studio Max. Now Maya is owned and maintained by the same company that produces 3D Max. Because of this, the future of Maya is in question. For now, I would advise going with 3D Max over Maya for that reason. Maya is also quite steep in its price.

SoftImage: another casualty of Autodesk. SoftImage was purchased by Autodesk, and is falling by the wayside much as Maya is. Though a decent software package, I can't really recommend it as its future is also uncertain. Very expensive.

Silo3D: a program that focuses on pure modeling. It currently has no tools for animation, which limits its usefulness in game development. It is a good program to pair with another program that does support animation. It's modeling features are very good, with a clean workflow, sculpting tools, and the ability to make changes to models at different resolution levels. It's price is much more friendly for beginners, coming in at under $200.

ZBrush: originally an advanced painting program, ZBrush has gained in popularity thanks to its exceptional sculpting abilities. It is considered the go-to program for extremely high-polycount sculpting, and is commonly used to sculpt 3D models for major motion pictures. Industrial Light and Magic uses ZBrush for most of their high-poly modeling. It also has no real animation tools, and is solely focused on high-poly sculpting. It is more expsensive than Silo3D and less expensive than 3D Max, but is almost a requirement if you want to get into high-poly sculpting. For games, it is ideal for creating high-poly meshes for Normal-Map generation.

Wings3D: another pure modeling program with no animation tools. This extremely light-weight package is open-source and free to use. It is focused on subdivision surface modeling, and adheres to subdivision methodologies. It is quite good for low to mid-poly count works, and is just fine for producing in-game models. It also has all the tools you need for defining UV maps. It is available on multiple platforms.

Blender 3D: the poor-man's modeling swiss-army-knife. Blender is easily one of the most popular free options for 3D modeling and animation. Where other programs specialize on one feature, Blender does it all. It even includes its own game engine, texture painting tools, and code editor. In theory, you could produce an entire game using nothing but Blender. For anyone who is leery of spending the big bucks on 3D Max or its alternatives, Blender is usually the program used for creating animations. (even if a program like Silo3D or Wings3D is used for modeling) Blender is open-source, free for commercial projects, and plug-ins can be programmed for it using Python. It is available on almost any operating system you can think of.
Logged
ThemsAllTook
Administrator
Level 10
******



View Profile WWW
« Reply #10 on: February 01, 2010, 12:53:18 PM »

If you want to make your own engine, you will need advanced 3D math training and experience. We're talking highly advanced Calculus, and there's no way around that. If you are a computer science major already, then maybe this would be an option you would want to explore.

This hasn't been my experience. I have no formal background of any kind in mathematics (nor any college education at all, in fact), and I've written multiple 3D games from scratch. All of the concepts you need can be learned as you go along.
Logged

mewse
Level 6
*



View Profile WWW
« Reply #11 on: February 01, 2010, 01:18:43 PM »

3D engines don't generally use any calculus.  That's used more for physics engines.

What 3D engines use a lot of is linear algebra;  matrices, converting between coordinate spaces, that sort of thing.  And there are enough online references that you don't even necessarily have to know linear algebra yourself;  you can just grab code from online to do your matrix multiplications and etc.  Smiley

(And for what it's worth, I wrote my first 3D engine long before I ever took a linear algebra course, so even that's not a real requirement.. though I'll admit that my later engines were a lot easier to implement, once I'd taken a few courses and really understood what the maths were doing.
Logged
hexageek
Level 0
***



View Profile
« Reply #12 on: April 13, 2010, 06:28:16 AM »

when it comes to open source 3d engines, irrlicht and ogre are the first ones that come to mind but if you want something small yet powerful I recommend horde3d: http://www.horde3d.org/
keep in mind that it's not a game engine. it does rendering, scene management, animation, unofficial scene editor and it has a great content pipeline but for other game related things you are on your own.
it also doesn't have its own windowing, input and audio classes. but SDL covers all of them and since horde3d uses OpenGL, you can use SDL with it.
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #13 on: April 13, 2010, 01:00:12 PM »

Hope you do 3D for all the right reason. With all the tools available, 3D ca ne be pretty cheap and rewarding. Generally the workload upfront pay off a lot later. But 3D does not mean entirely polygonal normal mapped skin based mesh animation, or free camera, most time it's not necessarily and are the things that fuck your game up when thought poorly. Collision being the most important, most solution come with a physics engine, it's not much a problem.
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic