Critique my Orbital Idea

Discussion in 'Planetary Annihilation General Discussion' started by tohron, September 2, 2013.

  1. tohron

    tohron Active Member

    Messages:
    272
    Likes Received:
    168
    Alright, since the big orbital idea thread seems like a poor place to get feedback on an individual suggestion, I'm posting this here to see if the idea has any merit. Diagrams included!

    Goal: Allow the dynamic scenarios created by active orbital mechanics, without employing complex and/or hard-to-implement controls.

    Implementation: The movement of an orbital unit is based on two vectors: the orbit vector, which has constant magnitude but can be slowly rotated, and the adjustment vector, which can speed up or slow down a unit along its orbit path. These translate into two movement commands, detailed below.

    Command - Intercept Target:

    Intercept Target would be used to attack or just move to any specified unit. Right clicking on an orbital unit (with one or more orbital units selected) activates the Intercept Target command.
    [​IMG]
    The first steps of intercepting a target (shown in red) involve turning the orbit vector so the the unit's orbit will intersect the target's orbit at some future point. Here, the adjustment vector is being used to speed up the unit so it can catch the target.

    [​IMG]
    The last few steps involve turning the orbit closer to that of the target unit, eventually matching the target orbit when the unit passes over it. The timing is such that the adjustment vector brings the unit alongside the target right as the two orbits match.

    Command - Move to Position

    The Move to Position command adjusts an orbital unit's path so that it passes over a specified spot on the ground. Right clicking on the ground, a ground unit, or an air unit, activates the Move to Position command.
    [​IMG]
    To move to the position, the orbit vector is turned so that the orbit will pass over the position - meanwhile, the adjustment vector is used to ensure it passes over the position as soon as possible. In the above diagram, the adjustment vector is used to slow down the unit, so that it doesn't overshoot the target position.

    So, think this system is sufficiently intuitive, or is it too complex? Any comments or suggested improvements are welcome! Thanks for reading!
    Zarkoix likes this.
  2. mushroomars

    mushroomars Well-Known Member

    Messages:
    1,655
    Likes Received:
    319
    Didn't we already have one of these?

    I wish everyone would just drop the orbital discussion for now... I mean, I like your diagrams and suggestions, but they look exactly precisely the same as another suggestion that was made previously.
    cmdandy likes this.
  3. BulletMagnet

    BulletMagnet Post Master General

    Messages:
    3,263
    Likes Received:
    591
    You are assuming that Unit travels faster than Target. This complicates matters, but only as much as telling a slow land unit to chase a fast land unit.

    Even if you travelled as fast as your target, you'll have a hard time catching it. I think the best option is to slow down and let the target catch up to you.
  4. impend1ngdoom

    impend1ngdoom Member

    Messages:
    51
    Likes Received:
    5
    what if, during these adjustments, the target moved?
  5. BulletMagnet

    BulletMagnet Post Master General

    Messages:
    3,263
    Likes Received:
    591
    Then adjust some more!

    No, you're absolutely right. Life gets interesting when the target isn't idle.

    If the target is faster and more agile, and the person at the controls really wants to be a pain, then you'll never be able to catch the moving target. Just a fact of the matter that can't be worked around by clever logic. It's going to remain true for all implementations of Orbital.

    But for when you're not in a no-win situation; remember that an orbital unit flies in a big ol' circle and that you (or the unit) can predict where the target is going to be (I think it's just a more advanced application of leading targets when it comes to aiming guns).
  6. trusw

    trusw New Member

    Messages:
    12
    Likes Received:
    0
    I bow my head at this nice explanation. I just postet a short comment on how fun fast orbital units would be but i was too lazy to illustrate it so neatly. https://forums.uberent.com/threads/...imple-orbit-proposal.51036/page-2#post-781227
    To add extra benefits: only fast orbitals, no geostationary orbit means you don't need any visible hints if the unit you see is air or orbital: incredibly fast -> orbital.
    This, with debris from rocket launches littering orbit and setting a limit to how many orbital units will be there, debris crushing down on the planet from time to time: Perfect!
  7. bobucles

    bobucles Post Master General

    Messages:
    3,388
    Likes Received:
    558
    If you want to see the challenge of dealing with real orbits, just play the Kerbal Space Program. It gets really difficult really fast, because everything is moving and has severe limitations on where it can move next.
  8. calmesepai

    calmesepai Member

    Messages:
    180
    Likes Received:
    21
    What happens if you add more then 2 obitals for example 100 obitals eventually there would be chances of collisions to occur what would happen would units avoid each other which could look a bit odd in some situations.
    Or
    crash in to each other which would be very annoying to most people I suspect.
    Or
    Go through each other like what most rts games done before with aircraft clipping through each other
  9. tohron

    tohron Active Member

    Messages:
    272
    Likes Received:
    168
    Glad that some people like this idea. Regarding how Intercept would work when the target is changing course, I'd envision the pursuer reverting to the behavior shown in steps 1-2, where it keeps trying to re-align the orbit to intersect the target's at a future point that it can reach. As long as the pursuer is faster (aka, has a bigger possible Adjustment Vector), it should keep gaining on the target until it is eventually in-range.

    Regarding collision detection, one could do with just rotating the orbits of the colliding units sideways a little bit (or just pushing them away along their orbital paths) until they stop colliding.

Share This Page