'Super Mario Galaxy' style gravity simulation

Discussion in 'Scripting' started by jmarrington, Jan 18, 2009.

  1. jmarrington

    jmarrington

    New Member

    Joined:
    Jan 18, 2009
    Messages:
    4
    'lo all, new Unity 3D convert here. I'm relatively new to games design, I'm currently studying traditional comp-sci and multimedia.

    What I'd like to do is build my first attempt at a 3D game on an implausibly small planetoid, similar to the the many-small-planetoids approach used in Super Mario Galaxy. Since the player will be moving all the way around the circumference of the game world, the concept of 'down' can't simply be a negative acceleration along the Y axis, but rather an acceleration towards a particular point (the centre of the planetoid).

    So, my guess is that the one way to simulate this (particularly as I only intend to have a single planetoid for this game at least) would be to have a game-world level script that modifies the X/Y/Z acceleration of objects based on their positioning in reference to the centre point I define.

    Has anyone else attempted this already? Can I use the Physics.gravity property for this? Are there any bugbears I should look out for (especially if I start having multiple rigidbodies falling and hitting each other at the same time, like a rock-slide or similar)?

    Nice to meet you all. I'm looking forward to learning from this community :)
  2. Charles Hinshaw

    Charles Hinshaw

    New Member

    Joined:
    Feb 6, 2008
    Messages:
    1,070
  3. KlaRo115

    KlaRo115

    Member

    Joined:
    Feb 24, 2006
    Messages:
    661
  4. jmarrington

    jmarrington

    New Member

    Joined:
    Jan 18, 2009
    Messages:
    4
    Thanks, all :)

    Both of these are much easier than the trig script I was tinkering with.

    (note to self: search function exists for a reason. Sorry.)
  5. nickavv

    nickavv

    New Member

    Joined:
    Aug 2, 2006
    Messages:
    1,796
    Using info from those topics I made a single planet gravity demo. I also made a neat camera script that keeps you in focus, so it looks like the planet under you is rotating.

    I can post it later, not on my Mac right now.
  6. KlaRo115

    KlaRo115

    Member

    Joined:
    Feb 24, 2006
    Messages:
    661
    Yes, good idea:
    Rotating the planet, not the player! :D
  7. nickavv

    nickavv

    New Member

    Joined:
    Aug 2, 2006
    Messages:
    1,796
    Well, I physically rotate the player, but the camera follows the player so it appears that he's still rightside-up. It gives a very cool effect, I think. ;P
  8. jmarrington

    jmarrington

    New Member

    Joined:
    Jan 18, 2009
    Messages:
    4
    Yes please!

    That sort of of effect would work very well for my game's perspective I think. Could you post the script?
  9. nickavv

    nickavv

    New Member

    Joined:
    Aug 2, 2006
    Messages:
    1,796
  10. jmarrington

    jmarrington

    New Member

    Joined:
    Jan 18, 2009
    Messages:
    4
    Thanks :) That looks pretty awesome running around a big sphere. Beautiful curved horizon.
  11. nickavv

    nickavv

    New Member

    Joined:
    Aug 2, 2006
    Messages:
    1,796
    :D No problem.
  12. maxwelldoggums

    maxwelldoggums

    Member

    Joined:
    Sep 8, 2008
    Messages:
    141
    What I would do is create a standard constant force whose vector varies depending on the position of the object, basically point a ray at the center of the "planet" and apply it as the gravity.