Home › Forums › Programming › Beginner (Physics engine demo)
- This topic has 13 replies, 9 voices, and was last updated 19 years, 3 months ago by Anonymous.
-
AuthorPosts
-
-
21/06/2005 at 1:50 pm #4264AnonymousInactive
Hi all,
I have been looking through this site for the past month or two, i came accross it when i started google-ing about game development etc.Basically I want to get in to games but im not too sure where to start, or what area i would be best suited for. Currently i am still a student in 3rd year doing Software Development, but it looks like i could be repeating a subject this year so i said im going to start a project that i can work on during the year which will hopefully show off some of my skills to future employers!
My greatest strength is programming, i have always loved it since I learned BASIC on a V-Tec computer when i was 10. But i have some 3D modelling experience in form of creating some models (eg for my Junior Cert Woodwork project i created an animated 3D model of a train that i was working on, using Truespace3D) I have looked at 3Ds max 7 and Maya but since Truespace 3D is free i use that… And they all seem the same to me for someone who wants to create a simple model with very few textures.
OK I am rambling on a bit now so the areas i think i would be interested in is physics engines, or something to do with graphics but not modelling, more along the lines of using code to create graphics. I looked at openGL last week and managed to create a cube but im not too sure if this is what i want.
I know C++ very well as i studeied it for 2 years.
I have done C also for a year.
I have done 6800 for 2 years
I have studied the 80×86 for 1 year.
I have also done Java for a year but i feel very confident in this also.I think that C++ is used the most but I would like suggestiuons as to what language/languages i should be concentrating on for different areas. I created a 2 player chess game in assembly(386) but it had no AI whatsoever and i cant imagine developers using this to create games (as it is slow because it didn’t use directX or whatever) so i assume i can ease off on the learning of that.
So as a summary i think i would really like to do a project which is based around a physics engine but i would also have to have some graphics to show it in action. What should I learn or start reading up on?
Any advice is appreciated and sorry about the long post!
-
21/06/2005 at 2:08 pm #22383AnonymousInactive
well c++ is the flavour for games at the moment. Assembly is useful but not a necessity. Its the case now that most compilers can optimize your code far better than you could do when writting your own assembly code. Unless your an old skool programmer. Consequently with c++ you would choose directx or opengl, doesnt matter which really. Opengl is probably easier though, which is a good thing if your going to produce a physics engine, your not really concerned with the complex graphics side of things.
I would suggest you build something that simulates simple newtonian physics (2 pool balls and a perfect collision, then move to more complicated things). After you’ve got a solid grounding in that move onto more complicate things.Although you dont really have to build your own physics end from scratch theres plenty of them out there. ODE is a great one and used in a few commerical games, good documentation also.
Basically i would suggest dont be ambitious or you wont finish it. Build it so you can do something small each time(add 1 extra piece functionality) that way your always making progress. Also an old bit of S\W engineering would be useful in the engine, seeing as your studying that.
good books are beginning opengl\directx3d.
andre le mothe’s tricks I & II
advanced directx etc.best of luck
-
21/06/2005 at 2:14 pm #22384AnonymousInactive
Thanks for the reply!
Well i think i would like to work for one of those middleware companies so i will just create a simple engine which i will use myself, and as you said add more to it as i go on, or as i see fit.
Sorry for sounding a bit dumb but what do you mean by sofware engineering?
” Also an old bit of S\W engineering would be useful in the engine, seeing as your studying that. ”
I have already started the design process if that is what you mean? E.g. requirements specification etc.Thanks
Eoin
-
21/06/2005 at 2:22 pm #22385AnonymousInactive
Thanks for the reply!
Well i think i would like to work for one of those middleware companies so i will just create a simple engine which i will use myself, and as you said add more to it as i go on, or as i see fit.
Sorry for sounding a bit dumb but what do you mean by sofware engineering?
” Also an old bit of S\W engineering would be useful in the engine, seeing as your studying that. ”
I have already started the design process if that is what you mean? E.g. requirements specification etc.Thanks
Eoin[/quote:a3f70358f3]
Good plan. A physics demo from scratch is probably what would be required by them (havok etc). keep it simple though, because its a particularly hard thing to implement, also try to keep you maths code clean and simple. Gonna save you a lot of work in the long term.
yeah by sw eng i meant UML to layout your components use inheritance when appropriate but sparingly etc.
La mothe’s book(tricks I) if i remember correctly had a nice chapter on simple physics for 2d games, that would probably be a good start before you have the complexity associated with a 3rd dimension.Also i remember spotting somewhere a physic engine design book, similar to the 3d graphics engine design book “3D Game Engine Design”.
-
21/06/2005 at 2:22 pm #22386AnonymousInactive
Hey,
If you are interested in the physics aspect have a look here at mequon physics, they give you some info and and you can get an evaluation copy of the SDKs’ to download and have a look :
-
21/06/2005 at 2:36 pm #22387AnonymousInactive
Thanks for the replies,
At the moment im (besides work which is what im supposed to be doing now) looking into all those engines and reading up on collision detection etc as nearly every engine in a game has this!
My plan is to have the design side of things finished by the end of summer and start programming/ testing then going back and adding a few more things etc. Accuracy is something i am aiming for as well as everything to be as real-time as possible.Anyway thanks for the info
Eoin
-
21/06/2005 at 3:04 pm #22388AnonymousInactive
I wouldn’t agree with what you said about assembly peter. Its still very useful when you’re wanting to do things like complex rendering, but its quite hard and not many people have those good skills in low level programming for it.
As for OpenGL and DirectX. OpenGL is easier to learn but is harder to do harder things in. DirectX is hard to start with, but easier to do harder things with.
Yup, physics with balls is always a good starting point. Something nice and simple. Get it working properly and then, if you’re feeling ambitious expand it, don’t get ambitious at the start, always get the basics in first!
-
22/06/2005 at 10:14 am #22400AnonymousInactive
Brav,
If you are wanting to improve your C/C++ coding skills, as well as learn more about using a physics API, this might be ideal for you…
http://www.gamedev.net/community/forums/topic.asp?topic_id=326899
Mal
-
22/06/2005 at 10:16 am #22401AnonymousInactive
was actually gonna post that there.
good advice mal. Although ODE programming isnt fo the faint hearted. Anyone who ventures into it, should have a very solid knowledge of c++. -
22/06/2005 at 8:27 pm #22443AnonymousInactive
http://www.gaffer.org/articles/ Good articles on physics.
http://www.amazon.co.uk/exec/obidos/ASIN/1558607323/qid=1119471989/sr=8-1/ref=sr_8_xs_ap_i1_xgl/202-7922053-6836656 <- Good book on collision detection. The last chapter on optimisation is worth buying the book for alone.
-
22/06/2005 at 9:13 pm #22444AnonymousInactive
was actually gonna post that there.
good advice mal. Although ODE programming isnt fo the faint hearted. Anyone who ventures into it, should have a very solid knowledge of c++.[/quote:27dad6afd5]everyone should have a very solid knowledge of C++ :twisted:Aside from the open-source engines that are out there a few closed-source ones are available under free evaluation licenses too.
I’m playing about with Novodex at the moment. It’s been integrated into the Unreal3 engine and is the native SDK for the PhysX hardware physics chip. It’s mightily impressive
-
23/06/2005 at 4:04 am #22446AnonymousInactive
Using ODE is quite involved. Not impossible, but it’ll take a while to get used to it and get it working.
I would steer clear of it for a first project.As for OpenGL and DirectX. OpenGL is easier to learn but is harder to do harder things in. DirectX is hard to start with, but easier to do harder things with. [/quote:56b16d80ab]
I would agree with this.
I’d also add that opengl is more elegant in it’s simplicity and design – however, you get more for free with directX – for example, directx has a model file format (.X) which you can export to, etc.Not that there aren’t equivalent openGL libraries for a lot of things, there are – but they come included with DX.
Still, Id recommend opengl as your graphics api of choice – lots of good tutorials on the web, nehe.gamedev.net for example.I strongly recommend that for their first games project programmers implement something very very simple.
Tetris in 3d is probably the *most* complex you might want to tackle.
If you are interested in physics, then make Pong (or similar – put your own spin on it) in OpenGL.
This because I underestimate anyone’s programming skills – it’s just that thinking your way through the design, and then doing the implementation of a simple game will teach many of the concepts, and force you to solve many of the problems that are in advanced games, and you’ll learn a lot quicker with a more managable project.
Software engineering 101:
The project will take a lot longer to finish than you’d think.
:-)I would recommend doing like pong, or maybe pool, but with 3d graphics – you’ll have to learn and deal with the 3d graphics fundamentals, the IO, and basic game architecture questions without having to deal with the complexity of a bigger project.
Use opengl – it’s easy to learn, I would recommend either Glut or SDL to handle your windowing concerns, and if your writing a simple game, like pong, you should write your own ‘physics’ routines as a basis for learning.
I estimate that if your learning you should be able to make Pool or Pong, with 3d graphics, in about 60+ hours, (depending on how much you understand what you do vs how much you hack).
There will also be some (frustrating) time you’ll spend assembling libraries and setting up your development environment.
Using a tutorial (for example nehe) as a code base will help cut down this time a lot.Thats my take on things anyway, i’m no expert, but I’ve went through this process, and I hope this helps.
A lot of first game projects don’t finish due to over ambition – i’m not doubting anyone’s resolve, simply advising that that’s often the biggest risk to a first project.
You sound like you have a lot of programming experience, so that’s probably less of a worry! Best of luck :-)
-
24/06/2005 at 6:18 am #22489AnonymousInactive
http://www.moor47.fsnet.co.uk/gamephysics.htm
I havn’t used it much but seems to have a lot of info. -
27/06/2005 at 2:01 pm #22560AnonymousInactive
thanks for the replies, i plan on spending ~15hours a week before christmas, and cutting down to maybe 10hours after, and hopefully finished by february. At the moment im just getting used to have balls(cubes at the moment!) deflect off walls in a 3d envirnoment in opengl.
http://nehe.gamedev.net/ i got this link in the forums here a few weeks ago, and its a brilliant site for the beginner i think, esp for people familiar with c++.Thanks for the replies
-
-
AuthorPosts
- The forum ‘Programming’ is closed to new topics and replies.