Today is the start of Steam's Winter Sale. Also, we are running a sale today on all of our mobile games on iOS and Google Play. One game, in particular, is actually free today on iOS and GP.

This update includes Vizzy, an automated visual programming system that you can use to program your craft to execute a wide variety of flight oriented tasks. Just click the EDIT PROGRAM button in the menu while building your rocket to get started. I also put together a tutorial video showing how to automate a rocket from the launch pad all the way to orbit. You can watch it here:

There are several basic building blocks that can be combined in endless combinations to create very complicated programs. The user interface is very similar to Scratch, Snap!, and Turtles. So, if you are familiar with those, you'll be right at home with these building blocks. You can easily combine the blocks together to build complicated statements. For example, if you want to set your Slider 1 input equal to the sin of your craft's AGL times 0.25, you can do that. I don't know why you'd want to do that, but it's totally possible:

Here are the building blocks currently available:

  • Craft Instructions

    • Activate Stage

    • Set Input - Roll, Pitch, Yaw, Throttle, Slider 1, Slider 2, Translate Up/Forward/Right

    • Set Heading - Heading angle or Pitch angle to angle in degree

    • Set Target (ie - Set Target to Luna)

    • Enable/Disable Activation Group

    • Lock Nav Sphere - Prograde, Retrograde, Current, BurnNode, Target, None

    • Set Time Mode - Slow Motion, Normal, Fast Foward, Time Warp 1-10

  • Craft Properties

    • Altitude - ASL and AGL

    • Orbit - Apoapsis, Time to Apoapsis, Periapsis, Time to Periapsis, Eccentricity, Inclination

    • Atmosphere - Air Density, Air Pressure, Speed of Sound, Temperature

    • Performance - Engine Thrust, Max Engine Thrust, Mass, TWR, Current Isp, Stage Delta-V, Stage Burn Time

    • Velocity - Surface, Orbit, Angular, Lateral, Vertical, Mach Number, Acceleration, Gravity

    • Input - Roll, Pitch, Yaw, Throttle, Slider 1, Slider 2, Translate Up/Forward/Right

    • Misc - Grounded, Solar Radiation

    • Activation Group State

  • Control flow instructions

    • While, Repeat, Wait X Seconds, Wait Until, If, Else If, Else, Display Message

  • Binary Operators

    • Add, Subtract, Multiply, Divide, Exponent

  • Bool operators

    • And, Or, Not, Equal, Less Than, Greater Than

  • Math Functions

    • Random, min, max, Abs, Floor, Ceiling, Sqrt, Sin, Cos, Tan, Asin, Acos, Atan, Ln, Log

  • Events

    • On Start - Called when the craft enters the flight scene

    • Receive Message - Called when the flight program receives a message

    • Broadcast Message - Executes all matching Receive Message events in the same flight program

    • Broadcast Message to Craft - Executes all matching Receive Message events in any flight program in the entire craft.

  • Variables

    • Support for custom variables

    • Set Variable

    • Change Variable by amount

To create a flight program, just open the menu in the designer and click Edit Program. This will create a flight program on your primary command pod. If you want to add a flight program to a different part, just select it and open Part Properties and in the Tinker Panel there is now a button to add a flight program.

The program editor works very similar to the rocket designer. You can pull new building blocks out from the flyout panel on the left. Connect instructions together to form your program. Expressions can be dragged into the open slots on instructions or even other expressions. Note that each program must start with the On Start event, so make sure to connect your instructions below one of those.

When you are done editing your program, open the menu and click Save to Craft. This will store the program in your command pod (or whatever part you are using). You can also save your program to file if you want to use the same program on another rocket. Lastly, you can import an existing program into your current program if you want to leverage some code you've already created elsewhere.

Thanks for reading and we can't wait to see what you build with Vizzy!


Comments

  • Log in to leave a comment
  • Profile image
    15 brause

    tried to figure out some kind of ABS for cars when driving on planet but there seems to be missing some things like changing to max. speed when you do not need ABS, this is a bit frustrating, e.g. I need inputs for pitch while I am using pitch itself for controlling the surface velocity on dangerous surfaces like mountains.
    on start
    while true
    if input pitch > 0
    display "normal fast mover"
    set Brake to 0
    if input Pitch <=0 then
    display #ABS#
    if velocity Surface <= 9 then
    set Brake to 0
    if velocity Surface >= 10 then
    set Brake to 1

    what is missing here: I cant use pitch = 1 in the lower display ABS section because if I change this, then I will never enter this ABS-If then constuction again ;-/

    But I want fast speed for e.g. low terrain and when moving over hills, there should a big limitation in speed. I tried several other solutions but cant find a proper one, maybe someone has an idea :)

    1.1 years ago
  • Profile image
    705 Amirabadi

    @pedro16797 thanks@Crochet

    3.0 years ago
  • Profile image
    Dev Pedro

    @Amirabadi it doesn't increase part strength but it increases its resistance to turn/rotate. It doesn't affect a craft but an entire part group, so if you aren't sure about what part groups are and how the stability slider affects them it's generally a bad idea to use it.

    3.0 years ago
  • Profile image
    17 Crochet

    @Amirabadi dunno for sure, but it must be kept if you leave game progress, it is a craft part in some way)
    Moreover, what's the purpose of clear log button in case it can be easily deleted by app killing?)

    3.0 years ago
  • Profile image
    705 Amirabadi

    @pedro16797 do you know what does stability modifiers do, I think it makes parts stronger but whenever I use it my craft stock and I can't move it.

    3.0 years ago
  • Profile image
    705 Amirabadi

    @Crochet thanks very much but,
    If I close the game and resume flight after restarting the laptop, are they kept and visible for me?

    3.0 years ago
  • Profile image
    17 Crochet

    @Amirabadi in better words, it some kind of a flight data recorder (black-box). I recommend you use it for:
    1. Flight program debugging (looking for mistakes)
    2. Data analysis (if you want to collect information about planet or your craft to upgrade it, [e.g. air force drag for different angles of attack])

    In any other cases use "display".

    3.0 years ago
  • Profile image
    Dev Pedro

    @Amirabadi display goes away after a couple seconds and every time you display the previous text is replaced

    3.0 years ago
  • Profile image
    705 Amirabadi

    @pedro16797 what is point of using this? And why dont we use display for watching our text?

    3.0 years ago
  • Profile image
    Dev Pedro

    @Amirabadi it prints the content of the log in a terminal that you can open if you select the part hosting the vizzy program in flight

    3.0 years ago
  • Profile image
    705 Amirabadi

    @pedro16797 hello I need help.
    Can anybody tell me what is logs in vizzy and how I can use them? What does log do?

    3.0 years ago
  • Profile image
    11.4k Chtite451SR2

    i need to work on my warp drive on my explorer 1 anyway

    4.3 years ago
  • Profile image
    11.4k Chtite451SR2

    ok

    4.3 years ago
  • Profile image
    Dev Pedro

    @Chtite451SR2 in the game itself you should see a button that says report a bug

    4.3 years ago
  • Profile image
    11.4k Chtite451SR2

    @pedro16797 i dont know where to do that

    4.3 years ago
  • Profile image
    0 Gn0m

    @pedro16797 thanks for the console trick, actually I do have an external keyboard, didn't think about that! I'll see about the maxenginethrust, makes sense.

    4.3 years ago
  • Profile image
    Dev Pedro

    @Chtite451SR2 you should submit a bug report

    4.3 years ago
  • Profile image
    11.4k Chtite451SR2

    @AndrewGarrison i found an issue on vizzy you can look here

    4.3 years ago
  • Profile image
    Dev Pedro

    @Gn0m instead of a change in speed check for a decrease in MaxEngineThrust example

    4.3 years ago
  • Profile image
    Dev Pedro

    @Gn0m in mobile devices you need an external keyboard afaik, if you have the ipad keyboard go to settings and find the keybinding for the console (or set it to a key you want)

    4.3 years ago
  • Profile image
    0 Gn0m

    That's a GREAT addition! Thanks

    There are two things I couldn't find how to do, not sure if it is possible/will be later/is possible but I'm too dumb!
    1) open the dev console (I'm on the iOS version, specifically on an iPad) would be useful to see the behavior of different parts
    2) see the fuel level of individual parts in order to activate a next stage (for example with solid fuel boosters)

    It's possible to display messages on screen, which is a workaround for 1) but it is not perfect as there is no record.
    I found a dirty workaround for 2) by detecting a sudden drop in speed but it's far from perfect.

    Anyway, very nice work, thanks a lot!

    4.3 years ago
  • Profile image
    Dev Pedro

    @Lounes2001 it is in Android

    +2 4.3 years ago
  • Profile image

    For Android plz

    4.3 years ago
  • Profile image

    How to use the events? except the onstart

    4.3 years ago
  • Profile image

    Awesome! I’m looking forward to utilizing this feature! It’d be great if you could add more building blocks in the future.

    4.3 years ago
  • Log in to see more comments