Jump to content
  • Advertisement
Sign in to follow this  
LeaUK

Game Engines and deformation?

This topic is 4768 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all. Warning - newbie alert! - please continue reading though... Just to set the scene, I have VC6 background with limited maths - but learning. I'm just entering the world of game design and would like some advice from those 'wise ones' regarding game engine choice, so naturally I have to star by asking questions! http://www.devmaster.net/ hosts a nice game engine search but I find none of the big players listed! I was expecting to see the UT engine et al. Are these not available to programmers? Anyway, onto my questions... I'm looking for an engine that will allow deformation of a tube like world. Imagine being a train within a tunnel and that the tunnel is mobile and moves in real space and this movement depends on the size of the train impact on the tunnel. The train/tunnel interface has friction and deformation. As you can tell I'm not sure of the correct terminology as yet and am really simply trying to find out if modern game engines can provide the features I need. I’m not interested in trees, characters, AI or similar but just real-time deformation and being able to extract such data. Here's another model I would like to design, an apple that as I push a rod into deforms inwards around the rod. Does the engine do this or are the apple’s physics defined in the modelling tool that generated the apple in he first place? Does the apple object have properties like – if a collision is detected then change shape? Now you see how much of a newbie I am – I am reading books too - but would just like a quick ‘leg-up’. Maybe someone would describe the game building process to assist me.. Something like... 1. Design apple and rod with physics model in 3DStudioMax (or whatever) – suggestions? 2. Import apple and rod objects into game engine 3. Write VC (preferably VC6 or VS2005 C#) and embed game engine 4. Write code that responds to key/joystick to move rod into apple 5. Write code that receives deformation info from apple and applies force feedback ????? Big thanks Lea

Share this post


Link to post
Share on other sites
Advertisement
Starting with questions is the best way ;-)

You wont find unreal engine for download. A license costs like 100000$ (correct me if I am wrong)

Very nice free engines are Irrlicht and another one IMHO a little bit more "geeky" is Ogre3D. With geeky I mean it bases on concepts (observer-patter), which aren´t intuitive for the beginning coders.


1. Design apple and rod with physics model in 3DStudioMax (or whatever) – suggestions?
2. Import apple and rod objects into game engine
3. Write VC (preferably VC6 or VS2005 C#) and embed game engine
4. Write code that responds to key/joystick to move rod into apple
5. Write code that receives deformation info from apple and applies force feedback
[\quote]

You described it yourself ;-)

Try starting to code a basic win-application.
There u have a window init and a main loop with event handling (key/joystick input handling) and rendering deformation based on variables / input (read from event handling)

Good Luck ;-)

Share this post


Link to post
Share on other sites
Quote:
Original post by LeaUK
Just to set the scene, I have VC6 background with limited maths - but learning.

I'm just entering the world of game design and would like some advice from those 'wise ones' regarding game engine choice, so naturally I have to star by asking questions!

Some people are going to disagree with me here, but my personal opinion is that you should start with trying to make a simple engine yourself. Not because it's going to be as useful as the 3rd party ones, but because it's an important learning experience, and it'll make it *much* easier for you later on to just grab a 3rd party engine and plug that in.
When you already know how an engine deals with 3d transformations, meshes, texturing, maybe shaders, input and whatever else, you'll have a vastly easier time understanding how to use other people's engines too.
Of course, building something like the Unreal engine is just plain crazy, but making a simple engine that allows you to play around with 3d graphics will teach you a lot.

Quote:

http://www.devmaster.net/ hosts a nice game engine search but I find none of the big players listed! I was expecting to see the UT engine et al. Are these not available to programmers?

I don't know the site, but I'd say lem77 is right. The big engines cost several hundred thousand dollars, so they're not a very relevant option for most people. [wink]

Quote:
As you can tell I'm not sure of the correct terminology as yet and am really simply trying to find out if modern game engines can provide the features I need. I’m not interested in trees, characters, AI or similar but just real-time deformation and being able to extract such data.

Generally speaking, you have to manipulate your data the way you want it. The engine is just responsible for giving you input from the keyboard/mouse, and Throwing some colors onto the screen. So if you want to do realtime deformation, then you have to write the code for deforming things.

Quote:

Here's another model I would like to design, an apple that as I push a rod into deforms inwards around the rod. Does the engine do this or are the apple’s physics defined in the modelling tool that generated the apple in he first place? Does the apple object have properties like – if a collision is detected then change shape?

Only the apple's shape/color/texture is defined in the modelling tool. Physics properties will have to be added by you. As for collision, the engine might be able to detect collisions (or it might not, depending on the engine), but you'll have to write the code for what should happen when a collision is detected.

Now you see how much of a newbie I am – I am reading books too - but would just like a quick ‘leg-up’.

Quote:

1. Design apple and rod with physics model in 3DStudioMax (or whatever) – suggestions?
2. Import apple and rod objects into game engine
3. Write VC (preferably VC6 or VS2005 C#) and embed game engine
4. Write code that responds to key/joystick to move rod into apple
5. Write code that receives deformation info from apple and applies force feedback

Hmm, sounds good to me.
Just keep in mind, the engine doesn't really do anything other than tie different components together, and deal with the hardware (graphics card, keyboard/mouse, monitor and whatever else).
You still have to write all the logic that actually defines your game. (In your above checklist it sounds like you know this, but in some of the above examples, it sounds like you expect the engine to do a lot more).

I don't know how much experience you have with programming, but you might want to add these steps before #1:
- Write tons of text-based programs. Games, calculators, random number generators, whatever else you can think of.
- Get some basic familiarity with the Win32 API. Write a program that just creates a window on the screen, then try to mess about with painting it, adding a few controls like buttons, scrollbars or whatever, dealing with the windows message loop
- Start learning DirectX or OpenGL, and make a basic 3d app... Start with something that just shows a single triangle rotating, for example, and work your way up from there

Of course, some or all of this might be a piece of cake for you already, just thought I'd mention it in case it's not. [wink]

Share this post


Link to post
Share on other sites
Hi guys

Thanks for taking the timeout to reply - much appreciated.

Unfortunately I was hoping to hear that deformation and physics chrarcteristics could now be modeled in model design tools and that these somehow simply become 'properties' of the object. Like text colour/font/size is a property of a .Net control.

Maybe balloon is a better analogy than apple, but I was hoping to design my baloon and deformation properties in a tool, then simply access those properties in code as this would reduce the volume (and knowledge) required to deform my balloon - but I guess this isn't quite here yet?

So, by using a 3D tool I can design my balloon, allocate a surface texture and colour but that's about it - any thing else?

Maybe you can highlight the distinct roles of each the design tool and the engine...would be useful.


Thanks
Lea


Share this post


Link to post
Share on other sites
If you know for sure that your balloon is going to be pushed in a particular way, you can model the reaction, but what if it's going to get poked by two rods at once? And you don't know which direction they will come from? You can't model millions of possibilities and choose, you have to do the physics.

If you really want deformable stuff like that, you may want to look into verlet integration and specifically how it applies to cloth simulation. There was a good article written about this relating to the game "hitman", and although some of the speed up tricks in it are quite complicated (for a beginner) the basic principles are dead easy and you should be able to get a baloon up and deforming quite easily.

Share this post


Link to post
Share on other sites
Quote:
Unfortunately I was hoping to hear that deformation and physics chrarcteristics could now be modeled in model design tools and that these somehow simply become 'properties' of the object. Like text colour/font/size is a property of a .Net control.

Consider how much more complex a control would be if it had to define physical properties, like how it deforms or moves when poked by a rod. At least the .NET controls you mention just have to show a small dialog allowing you to choose between a fixed number of choices.

Still, I'm not a modeller, so it's possible that you might be able to do some of this, and I'm just not aware of it. You won't be able to define realtime deformation, but you might be able to define some kind of properties that'll make it easier for you to code the rest.

Quote:
Maybe balloon is a better analogy than apple, but I was hoping to design my baloon and deformation properties in a tool, then simply access those properties in code as this would reduce the volume (and knowledge) required to deform my balloon - but I guess this isn't quite here yet?

Not really. The problem is that a 3d modelling tool is very general purpose, it lets you do 3d models for anything. So if they had to also define any number of abstract properties of the model, it'd be impossible. You'd have to define how it reacts when it's pushed from any direction, and depending on the type of the push (is it a rod poking it, like in your example, or a car crashing into it, or maybe a hand trying to push it), you'd have to define physical properties, and someone might want to be able to define how the object reacts to changing external conditions. What happens to it when the temperature goes up or down? And so on. There'd be an infinite number of otherproperties the poor 3d modeller would have to worry about all of a sudden.
Instead, you make the 3d model, as well as any kind of predefined animations you like, and then your own program with your own code has to manipulate it if you want something more complex.

Quote:

So, by using a 3D tool I can design my balloon, allocate a surface texture and colour but that's about it - any thing else?

Well, you can make predefined animations too, but that's not much good if you want to do realtime deformation. Then you have to improvise the animations through code, depending on where the rod touches the baloon, and how much force is applied.

Still, shouldn't be impossible to do. Good luck with it :)

Share this post


Link to post
Share on other sites
Hi

Thanks again for your direction.

I take your point about modelling physics and the obvious variety and complexity this brings.

Unfortunately I'm slowly coming to the sad conclusion that maybe deformation is still in the hands of the C programmer and the tools I hoped for don't exist (yet).

Maybe one day??


Thanks
Lea


Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!