I just released a new beta update for SR2 on the experimental branch on Steam. I've added a ton of new features to Vizzy and I wanted to get this tonight out so you could check it out over the weekend for those who are interested. The new update includes support for vectors and lists and a ton of new expressions, instructions, and other enhancements.

I've done a lot of polishing on the UI so hopefully, the plethora of dropdown boxes are a little easier to understand.

I've also added a way to view log messages from your programs by clicking on the part and then clicking View Log in the part inspector.

Here are the current list of changes:

VIZZY FEATURES

  • Added support for vector operations: angle, clamp, cross product, dot product, distance, min, max, project, x, y, z, length, and normalize.
  • Added support for lists/arrays to Vizzy: add item, insert item, remove item, set item, remove all, sort, reverse, set list, item of, length of, and index of.
  • Added dialog to add Custom Instructions and Custom Expressions in Vizzy.
  • Added View Log button in part inspector
  • Added for loop instruction to Vizzy.
  • Added instructions to set a part's name, activated state, and to cause it to explode.
  • Added expressions to get a part's ID from its name, activated state, position, part type, temperature, min/max part IDs in the craft, and the ID of the part executing the flight program.
  • Added icons and tooltips to dropdown lists and expand their width to show all items.
  • Added Frame Delta Time, Time Since Launch, and Total Time to Vizzy expressions.
  • Added Craft Position, Craft Planet, Heading, Pitch, Bank Angle, Angle of Attack, Side Slip, North, East, Craft Direction, Craft Right, Craft Up, Target Position, Target Velocity, Target Name, and Target Planet to Vizzy.
  • Added Planet expression: Planet Mass, Radius, Atmosphere Height, Solar Position, Child Planets, Crafts, and Parent.
  • Added expression to convert a lat/long/AGL to and from a position vector.
  • Allow support for a dynamic number of arguments for the "join" expression in Vizzy, which makes string joining much easier.
  • Added Change SOI event to Vizzy.
  • Added Part Explode event to Vizzy.
  • Added Part Collision event to Vizzy.
  • Added log message instruction.
  • Added atan2 to Vizzy.

TWEAKS

  • Create an undo step prior to saving a flight program to the craft so the user can undo to recover their flight program as it was before it was saved.
  • Changed CraftProperties AngularVelocity to a vector instead of a number.
  • Enhanced text inputs in Vizzy to remember their text when replaced with an expression that is later removed.

BUGS

  • Fixed a bug that prevented targeting crafts with Vizzy.
  • Fixed a bug where clicking Retry on a downloaded sandbox would load the incorrect craft.
  • Fixed a bug where Vizzy incorrectly set Slider2 when it was instructed to set Slider1 (and vice-versa).
  • Fixed a bug where Vizzy used the incorrect deltaTime during warp modes.
  • Fixed a bug where the "Fuel All Stages" property would never report 0.

Comments

  • Log in to leave a comment
  • Profile image

    @TheAllMightyEgo They said it’s not happening

    3.6 years ago
  • Profile image

    Why no surface velocity acceleration why

    4.9 years ago
  • Profile image

    hey andrew there is one thing about this game that i would LOVE if you added is multiplayer i know it one of the most technical aspect of a game and requires the most coding but that would be really cool if you added it

    4.9 years ago
  • Profile image

    @disisto4433 Still not possible, since this kind of game has physical rendering range. You can however put second/third command chips on the booster and run the landing program on the core. Multiple crafts with respective command pod with programs are currently possible.

    +1 4.9 years ago
  • Profile image

    @AndrewGarrison can you add a block to communicate with multiple command chips or pods even if they are not connected. It would make landing a stage automatically possible, while keeping the rest of the rocket.

    4.9 years ago
  • Profile image
    507 swope

    @AndrewGarrison - the log viewer has newer messages on top. This feels upside down. I get confused about which way a signal is trending.

    +1 4.9 years ago
  • Profile image
    507 swope

    @AndrewGarrison - will there be a way for mods to add custom Vizzy blocks?

    4.9 years ago
  • Profile image
    22.8k Rizkyman

    Waiting for mobile update

    +2 4.9 years ago
  • Profile image

    @AndrewGarrison that's great! Having part coordination is super exciting.

    4.9 years ago
  • Profile image
    Dev Pedro

    @AndrewGarrison That's amazing, even more than what we dreamed of :)
    Having the part as reference may allow for better AGL estimations

    +1 4.9 years ago
  • Profile image

    I also added a new string expression that makes string formatting much easier. It uses C#'s String.Format method.

    +2 4.9 years ago
  • Profile image

    I added a new expression to convert a vector between local and PCI coordinates. If no part ID is specified, then it will use the craft's local coordinate system (X = pitch axis, Y = yaw axis, Z = roll axis). If a part is specified, then it will use that part's local coordinate system. Hopefully, this will help you accomplish what you wanted with matrix calculations. This is about as complex as I can go at this point. @pedro16797 @swope @AnotherFireFox

    +3 4.9 years ago
  • Profile image

    I need matrices so that I can convert vector frame ;_;

    +1 4.9 years ago
  • Profile image
    507 swope

    NED (north east down) is common in aerospace, but scientists tend to use ENU (east north up).

    If the eventual career mode involves science, maybe an ENU option would be good, too.

    +1 4.9 years ago
  • Profile image
    507 swope

    @AndrewGarrison - does the vector class have a property for its own frame?

    It might make it easier on most folks not to have to know the input frame for the conversion.

    +1 4.9 years ago
  • Profile image
    507 swope

    @AndrewGarrison - maybe an axes conversion block with options for the output frame:

    • body frame (choose craft/target/part)
    • local frame of (choose planet) trajectory aligned
    • local NED frame (craft/space center/barge)
    • local NED frame at lat/lon/alt
    • frame defined three vectors that span R3 (change of basis)
    • inertial frame centered at (planet/star)

    Maybe I'm trying to make it too general...

    +2 4.9 years ago
  • Profile image
    Dev Pedro

    @AndrewGarrison if you trigger an error message (item in 0 in List for example) the error message box sticks for a while after fixing it without any text

    +1 4.9 years ago
  • Profile image
    Dev Pedro

    @AndrewGarrison that would be helpful

    +1 4.9 years ago
  • Profile image

    @swope I could add a PCI To Local and Local To PCI transform operations that take a vector and return a vector.

    +3 4.9 years ago
  • Profile image

    @pedro16797 Thanks, it will be fixed in the next update.

    +1 4.9 years ago
  • Profile image
    Dev Pedro

    @AndrewGarrison I've found a bug with the interface between Vizzy and the input controllers. Setting a variable doesn't pass the value to the input controller, but updating it does
    In this example it has a piston using the "ra" variable and without the change variable by 0 block it doesn't read the change in the variable, not sure why.

    4.9 years ago
  • Profile image
    Dev Pedro

    @huuminberd Android allows xml editing too

    4.9 years ago
  • Profile image
    1,155 huuminberd

    @Oscarcarserud For side boosters, external fuel tanks etc you could try using mass as the condition.

    4.9 years ago
  • Profile image
    1,155 huuminberd

    @Oscarcarserud simple as compared to a deep simulation with every conceivable variable in atmospheric conditions, orbital perturbations, mechanical inconsistencies, noise, etc, etc. Not simple as in easy.
    There's a lot more that can be done using XML if you're on PC. I'm not entirely sure what the advantages are of having script on individual parts other than Vizzy variables are not global. You don't for instance have to have a separate script for a part which requires an input, receiving a value from a main controller and passing it on. That might be useful or it might be pain. I don't know.

    4.9 years ago
  • Profile image

    @huuminberd
    It is after all called ”simple” rockets. So I think a valid answer is ”complexity”. OK. Abandon individual throttle controll. But individual stage fuel tank? As of now if I at the same time my rocket burn its side booster and its main engine, I have no idea of time to separation because I only get the combined fuel tank value. If I put a VIZZY script in a stage, I thing I chould get local properties, aka the stages fuel, the stages throttle. Why else have the opurtunity to put scripts into objects. I am an old lover of HyperTalk so I love when objects have scripts. But then again, Hype-Super-Meta script programming fammily was slow and hard to implement.

    4.9 years ago
  • Log in to see more comments

26 Upvotes

Log in in to upvote this post.