Jump to content
Sign in to follow this  
chris330

Good learning textbooks, courses..

Recommended Posts

Hi,

I'm currently at a bit of a cross-roads in my life and I've dibbled and dabbled a bit and even wrote a few things for Flashpoint whilst I played it but I've decided it's time to get serious about games.

I've already been to Uni and don't wish to pursue a career in what I graduated in (engineering). I've picked up a couple of C++ books and read them which have grounded me in the subject plus I've dusted off my calculus knowledge and even had a look at matrices.

Problem is the physics engine textbook I bought has opened up a large can of worms in the sense that it is:

1)Too hard to follow at times.

and

2)Demonstrates a real lack of understanding (in me) of game basics.

So....

Can anyone who has trodden or is treading a similar path recommend me a decent textbook and or/course I could take to ground myself in the basics so I don't have to slog through bitterly hard stuff for 12 months just to find my feet? I really don't like doing things that way I prefer a more gentle gradient.

I don't think I've ever known a forum with so much knowledge in it as this one so surely someone can point me in the right direction as I'm at a bit of a dead end at the moment.

Thanks in advance smile_o.gif

Share this post


Link to post
Share on other sites

Hi chris330

I’m in a similar boat as you, however I have not gone to uni, however I still wish to delve into the game development industry. (As a game developer)

I don’t think there is a right or wrong way to go about it, qualifications are required of course to join an existing team but I believe experience is more beneficial in this work sector. It also helps to know a few people in the industry already.

I think making your own engine with c++ is a very time consuming venture especially by yourself, there are quite a few open source game engines out there that one can use to improve skills and really learn whist on the job, to gain experience.  But these of course are pay ware, but fairly cheep considering what you get.

This is all providing you want to carve a path with game programming with c++.

I would check Amazon, I have brought a lot of books from there, all have proven useful and there is a lot more to game developing than meets the eye.

A few other good sites are shown below.

Good luck Chris, and let me know how you get on, would be interested to hear.

Nick

If you are in the UK and fancy going back to Uni, there is a course at the Southampton Solent (bsc hons)

Link - http://www.solent.ac.uk/courses....ls.aspx

( I just cant afford uni at this moment, but it looks fantastic)

Game Dev net - http://www.gamedev.net/

Game engine resource - http://www.devmaster.net/engines/

Share this post


Link to post
Share on other sites

Not too sure about books or courses on the subject, but I learned a ton by dabbling around with a couple of existing physics engines. smile_o.gif

If you haven't seen these already, ODE and Newton are free and fairly easy to use. (I think I can say that given you mentioned an engineering degree.)  There's also Tokamack but I don't know too much on that one.

Open Dynamics Engine (ODE) has some great documentation and the examples are ordered logically.  You can jump right in and start tweaking things.  (I had a heck of a good time modifying the sample vehicle.)  Perhaps best is that ODE is open source and c++ based.  The only issue with ODE is that it kind of died out a while back in terms of updates.

Newton is a bit tougher at first to dig into, but it's far more capable (based on my impression, anyway).  For instance, it has more primitive types to use (i.e. cones, etc).  Also, as far as I could tell, it seemed to be more accurate in terms of tri-mesh type collisions.  Last I checked, Newton was still going strong with lots of updates, activity in the forums, etc.

Another option is PhysX, which you may know something about.  That's the one that supports Ageia's physics accelerator card (the only such cards developed to date, which are getting pretty cheap now, btw).  The advantage of these Physics Processing Units (PPU) is something like a 1000x boost in physics performance, which is so powerful, the bottleneck is once again returned to the GPU (i.e. Ageia's card can perform physics operations on a many-times-over basis the number of objects that current GPUs can even display.)

A huge benefit of the PPU is that it can handle true fluids. (Not the scripted stuff we currently see in games.) rofl.gif

I haven't delved too deeply into PhysX yet, but from what I've seen, the examples are well organized and the code seemed pretty user friendly.  There's also a commercial software package called DarkPhysics based in VB that allows you to quickly and easily put together physics scenarios.

As far as the various physics engines go, in terms of the use of any of your creations based on licensing, I think it goes like this (but of course you'd want to double-check):

ODE - You can use your creations for any purpose, sell them, etc.  You must credit ODE in your documentation.

Newton - Same as ODE as far as I know.

Tokamack - Same as ODE, but IIRC they reserve the right to change this somewhere down the line.

PhysX - I think I saw something recently where you used to have to pay them some kind of royalty, but as of sometime this year, they did away with that?

One thing I was a bit unclear on is what your aim is, exactly.  Using an existing physics engine or writing your own.  Either way, hopefully something in here helps get you started.  In fact, I'm not really sure any of this was what you were after, but it's such an interesting topic, I figured I'd share. tounge2.gif

Share this post


Link to post
Share on other sites

Some great replies there fellas thanks biggrin_o.gif

Do you think I should really then (all things considered) use an existing engine and tweak bits of it instead of starting from scratch?

If so which if those mentioned is the best documented? I'm thinking of ODE given the first two replies.

Sorry to ask more questions after so many answers but as I'm sure you'll agree it's a deep subject wink_o.gif

Share this post


Link to post
Share on other sites

Hi

I can recommend familiarizing yourself with the AGEIA PhysX SDK even if you are not going to use it. I think the documentation that comes with it is definitely worth a read if you are new to this kind of stuff like me. I certainly got quite a good amount of information out of it. You can get the SDK from AGEIA simply by registering at their website. They will then approve your registration and then you can get to an area where you can download different versions of their SDK. Their SDK also comes with plenty of example applications. I think I got all of them running fine on Windows and most of them worked also on Linux (Linux SDK is little bit behind compared to Windows SDK).

PhysX SDK seems to be actively developed. I have personally no trouble with the fact that it is not open-source. Notice also that the PhysX engine is multithreaded.

One good place where you can learn is http://www.ogre3d.org/

Ogre3D is an open-source, LGPL licensed graphics engine (suitable for free and commercial projects, no money needed). If you dvelve into their forums you find a lot of discussions about physics engines too. Comparisons between physics engines can be found from their forums. I think it could be best at first to use existing libraries like Ogre and others to do a small game project so you'll learn what components are needed and if you could maybe code some of the components by yourself. I believe writing a full-blown graphics/physics engine will take many years from a single individual so you might want to make some shortcuts to get something playable on the screen fast.

I'm on a studying phase of these things too. My field is also engineering and not computer science but for some reason I have a need to study computer programming, not for utilizing it commercially but to understand.

Best regards,

Baddo.

Share this post


Link to post
Share on other sites

Thanks baddo! wink_o.gif

I've decided to go with Torque as the graphics engine and utilise a third party physics engine (an open source one) to save time. Best I learn to tweak existing stuff than writing from scratch I have enough work ahead of me as it is huh.gif

Thanks for the pointer (no pun intended lol) to the physics engine you mention. Sounds like you got alot out of it and thus so could I, I think. I'll head over and register there today.

Nice to see so much help being offered it seems there are many of us into the same thing!

Share this post


Link to post
Share on other sites

You will find that there is a tremendous amount of interest. Just visit a game dev forum. Problem: Not *enough* payback. You start a project.. open source or not... and you *maybe* get about 30% done before you run out of time, help, and technology. Not to mention the world zooms past you and everything you've done is now been replaced by some other new popular technology. All the while you get older, get a wife, get kids, etc.. The same forums are filled with these individuals. It's like a revolving door sometimes.

I say this not as a deterent, but as a warning and wake up call. Get involved with someone working on something already, lest you waste a good portion of your life recreating what everyone else is doing (and possibly better).

oh.. and if possible, start small. I'd hate to see another potential great game maker lost to exhaustion and exasperation.

[EDIT]

A great source of ideas can be found in the popular "AI Game Programming Wisdom" books. They cover many topics and even if most of the articles are fundamental... they help trigger your mind into thinking about stuff that is so basic you would normally *not* think about it.

Share this post


Link to post
Share on other sites
You will find that there is a tremendous amount of interest. Just visit a game dev forum. Problem: Not *enough* payback.

Lol that's true! I started out wanting to write my own physics engine. Put loads of work into researching and bought a Morgan Kaufman book on it too. Several weeks in realised it just aint practical to do and have decided to go with the physics engine which already comes with Torque.

Reason I've gone with Torque is because it short-cuts me past years of stuff which would kill morale trying to learn. I'd rather do something which gives a quicker payback and yet allows me to complete the more complex blanks as I go. Torque is an amazing engine and its script is very close to C++ so alot of the stuff you learn in TorqueScript is also teaching you C++.

I say this not as a deterent, but as a warning and wake up call. Get involved with someone working on something already, lest you waste a good portion of your life recreating what everyone else is doing (and possibly better).

Spot on. Exactly why I chose to go with Torque.

oh.. and if possible, start small. I'd hate to see another potential great game maker lost to exhaustion and exasperation.

Fear not mate I've pissed into the wind enough times in my life to know that the sensible thing to do, really is the sensible thing to do.

Thanks Crashdome for the help! That was a great reply. I've bought the Game Programmer's Guide to Torque and it's positively great at explaining things. Using a pre-existing engine will I think avoid many of the exhaustion problems faced by new game developers.

Thanks again.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×