Secondary Symmetry

    Would this be a good improvement to how symmetry works already in the game?

    • Absolutely! Sounds great!

      Votes: 9 75.0%
    • Nah, I think it's fine just the way it is.

      Votes: 3 25.0%

    • Total voters
      12

    BJammin

    Part-Time Eldritch Abomination
    Joined
    Mar 22, 2014
    Messages
    106
    Reaction score
    144
    • Community Content - Bronze 2
    • Legacy Citizen 10
    I've had an idea like this for a while now, and thought I'd finally post it in the suggestions forum.

    Everyone here is familiar with how symmetry works. You place the symmetry planes using advanced build mode, and everything you put on one side gets magically duplicated on the other. That's a great system for making ships that are just one solid section, but what if you wanted to make two fully symmetrical parts on opposite sides of the ship?

    starmade-screenshot-0148.png
    For the sake of example, let's just start with this. That plane of red crystal armor represents the primary YZ plane of symmetry we can use. So far, everything here is very easy to make using just this one plane. But what if we wanted to build two separate arches, one on each side? Well, here things get a bit complicated.

    starmade-screenshot-0150.png
    It's still totally plausible, just not as efficient. If it was just one arch, straddling the center line of the ship, it would be no problem at all. Just build one side, and you're set. But in the case of two arches, one would have to start on one end (yellow block), build up to the top (white block), and then build back down to finish it (black block). Yes, symmetry makes it so an arch does appear on both sides, but it causes the builder to take what could be unnecessary steps.

    starmade-screenshot-0151.png
    If we could use a secondary plane of symmetry (yellow crystal armor) on the same axis (YZ), we could reduce the amount of building required on each side by half. (With all six, and a simple design, work could be reduced by 64!) Instead of starting on one end, moving up, and coming back down again, we would only need to go from one end (yellow) to the top (white). With the secondary symmetry engaged, we will have just built a full arch (with half of the work) on one side of the ship, while also having it appear on the opposite.

    Now, arches are simple structures that can easily be made, and then replicated with copy/paste. But for the times when what you're building is much more complex than a couple of arches, I believe that a system like this could greatly help reduce the work required, and possibly revolutionize the way we build in StarMade. Obviously, this could potentially lead to some minor performance issues. For example, if someone were to have all six planes active, then decide to paste in a very large and very complex template. Essentially, you would be placing the template 64 times, each in different places. Arguably, with a little common sense, this would never be a realistic situation. But, as is usually the case, accidents can happen. All the builder has to do to avoid them is just keep a more watchful eye on what planes are active. To make this easier, the system should function so that a secondary plane can only be placed if the primary plane is active.

    Hopefully, this idea gets some thought. I have no doubts that there could be flaws with this system, but with as good a community that we have here, I also have no doubts that those flaws can be worked out. Thanks!
     

    BJammin

    Part-Time Eldritch Abomination
    Joined
    Mar 22, 2014
    Messages
    106
    Reaction score
    144
    • Community Content - Bronze 2
    • Legacy Citizen 10
    Good, then it's not just me. :D
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    Well, just one problem with that: if the sub-plain also reflects what the main-plain reflects, you will indefinetly extend the ship by placing one block, that is reflected all over the place.
    xx|x|x
    xx|x|xxx
    xxxx|x|xxx
    xxxx|x|xxxxx
    ...
     
    Joined
    Jan 25, 2015
    Messages
    964
    Reaction score
    225
    • Wired for Logic
    • Councillor 2 Gold
    • Legacy Citizen 5
    Well, just one problem with that: if the sub-plain also reflects what the main-plain reflects, you will indefinetly extend the ship by placing one block, that is reflected all over the place.
    xx|x|x
    xx|x|xxx
    xxxx|x|xxx
    xxxx|x|xxxxx
    ...
    when I read it, I knew something like that would be coming :(
    not that I would use it, I already forget the normal symmetry from time to time, imagine the mess if I forget the double symmetry
     
    Joined
    Jun 20, 2013
    Messages
    2,827
    Reaction score
    1,181
    • Video Genius
    • Legacy Citizen 4
    • Top Forum Contributor
    Well, just one problem with that: if the sub-plain also reflects what the main-plain reflects, you will indefinetly extend the ship by placing one block, that is reflected all over the place.
    xx|x|x
    xx|x|xxx
    xxxx|x|xxx
    xxxx|x|xxxxx
    ...
    Solution: Implement algorithm to not mirror blocks that are mirrored by a symmetry line on the same axis.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    Solution: Implement algorithm to not mirror blocks that are mirrored by a symmetry line on the same axis.
    xx|x|x
    --+-+-

    xx|x|x
    --+-+-
    xx|x|x

    xx|x|x
    --+-+----
    xx|x|xxx

    xx|x|xxx
    --+-+----
    xx|x|xxx

    ...
    The best solution would be to have tiered symetry plains:
    the current symetry plains are tier 0.
    the secondary symatry plains are tier 1.
    additional plains are tier 2, 3 and so on.
    each tier x symetry plain is in turn reflected by tier x-1 to tier 0 symetry plains.
    a tier x symetry plain will only affect blocks and tier x+n symetry plains, that are on its side of the tier x-1 symetry plain, and that are also affected by the tier x-1 symetry plain.
    That way we would get a rather interesting binary-tree system of symetry planes for each axis, which would prevent this infinite reflection.
     
    Joined
    Jan 25, 2015
    Messages
    964
    Reaction score
    225
    • Wired for Logic
    • Councillor 2 Gold
    • Legacy Citizen 5
    xx|x|x
    --+-+-

    xx|x|x
    --+-+-
    xx|x|x

    xx|x|x
    --+-+----
    xx|x|xxx

    xx|x|xxx
    --+-+----
    xx|x|xxx

    ...
    The best solution would be to have tiered symetry plains:
    the current symetry plains are tier 0.
    the secondary symatry plains are tier 1.
    additional plains are tier 2, 3 and so on.
    each tier x symetry plain is in turn reflected by tier x-1 to tier 0 symetry plains.
    a tier x symetry plain will only affect blocks and tier x+n symetry plains, that are on its side of the tier x-1 symetry plain, and that are also affected by the tier x-1 symetry plain.
    That way we would get a rather interesting binary-tree system of symetry planes for each axis, which would prevent this infinite reflection.
    rather complicated, if I was schema I wouldn't do it for a situation that is not so common.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    I think the effort that might be spent on this would be better spent on improving copy/paste/templates.
     

    Lukwan

    Human
    Joined
    Oct 30, 2015
    Messages
    691
    Reaction score
    254
    [Revenge of the Necro-poster]:eek:

    Wow...it's been awhile and both could still benefit from a little updating.