1. We've introduced thread tags, search within a thread and similar thread search. Read more here.
    Dismiss Notice
  2. We've released our first Timeline Experimental Preview, our new tool for creating cutscenes and more! To check it out click here.
    Dismiss Notice
  3. All Unity Pro perpetual license customers: your special offer to subscribe is ready! Click here.
    Dismiss Notice
  4. Unity 5.5 is now released.
    Dismiss Notice
  5. Check out all the fixes for 5.5 in patch releases 1 & 2.
    Dismiss Notice
  6. Unity 5.6 beta is now available for download.
    Dismiss Notice
  7. Get prepared for the Tizen Mobile App Incentive Program! Read more about the upcoming program here.
    Dismiss Notice
  8. Enter the Microsoft Developer Challenge for a chance to win prizes. Read more about it here.
    Dismiss Notice

'Super Mario Galaxy' style gravity simulation

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

  1. jmarrington

    jmarrington

    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

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

    KlaRo115

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

    jmarrington

    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

    Joined:
    Aug 2, 2006
    Messages:
    1,800
    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

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

    nickavv

    Joined:
    Aug 2, 2006
    Messages:
    1,800
    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

    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

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

    jmarrington

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

    nickavv

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

    maxwelldoggums

    Joined:
    Sep 8, 2008
    Messages:
    157
    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.