Questions about Game Engine Physics

I am entirely new to BGE, well, just considering the use of it and how it applies to what I’d like to accomplish.

I’m not looking for actual working code examples per say (but examples in the form of code would surely help with the understanding. Assuming I understand the concept of a description of a solution). Could someone describe to me or link me to a forum thread that describes how one interacts with the physics engine.

Here is an example of what I’m trying to figure out:

I’d like to make a simple game where the space ship vehicle always thrusts towards where ever the user clicks their mouse.

Regardless of the 3d engine used I assume the process is something similar to this…
Convert the location that the mouse is clicked on in the game window (x,y) into an actual location in the 3d Game world (x,y,z). Calculate the distance between that point and the location of the space ship vehicle and then apply force in the co-ordinates which would propel the ship towards the location. It’s complicated math to acquire the co-ordinates to make objects thrust in 3d space. Maybe BGE has a pre built function to deal with such a thing?

So my questions, if someone has a moment:

  1. Would this type of work be done with mostly logic nodes or mostly python code or both what mix?

  2. could someone point me to some reference code or manual material that deals with this type of thing.
    2a. For that matter, physics documention :wink:

  3. If I may ask a more generic question, do many people use BGE professionally or is mostly for hobby?

Thanks for your time!

  1. Python

  2. I don’t know of any, but the idea would be to use a plane and a raycast from the camera (or use the logic brick mouse_over_any and take the hitpoint) to find the 3d coords, once you have that everything else is as you described. You will need the BGE Python API, check: https://www.blender.org/api/blender_python_api_2_77_3/bge.types.KX_GameObject.html (applyForce) and https://www.blender.org/api/blender_python_api_2_77_3/bge.types.KX_MouseFocusSensor.html#bge.types.KX_MouseFocusSensor (hitPosition).

  3. Nobody uses BGE professionally (there are Blender professionals, but on the game engine there are only hobbyists). The main reason for this is it’s license (GPL3). It doesn’t mean that you can’t achieve professional quality games, but it will be tough (and you’ll probably have to use UPBGE at some point), BGUI (Or similar), and use BGECore or make a similar framework.