Godot is a hard program because

A project log for A game about a certain space exploration company

Where most of 2018 went

lion mclionheadlion mclionhead 04/24/2019 at 17:150 Comments

It doesn't remember the inspector state or undo history when navigating between windows.  The inspector resets to the top level node & you have to navigate back down to where you were, after every window change.  Navigating in the inspector is otherwise hellish.  

Down arrows sometimes give you a menu, sometimes expand an area.  A text box or image may or may not expand another level or replace the inspector with another window, with no indication of what is a child of what.  Left & right arrows try to ascend & descend history, but the history is usually lost from a window change.

Textboxes randomly stop accepting input & the program has to be restarted to continue typing,  navigating all the way back to where you were from the top.

There's no way to copy nodes from 1 scene to another, but there is a way to copy nodes in a single scene.  Unfortunately, multiple particle generators in the same scene overwrite each other in random parameters.  Wrapping particles in different scenes still experience crosstalk, so they have some global variables & widgets which aren't being updated when you change windows.  Editing a textbox in 1 particle node will usually overwrite a parameter in another particle node.

The bugs led to a gdscript particle system for engine flame.  

Settings are randomly split between flags & parameters.  View settings are split between a view & a perspective menu

Hiding the indicators for window resizing to comply with the modern convention is a pain.  The modern convention is endless mousing over to reveal hidden widgets instead of just drawing the widgets, making a lifestyle out of everything instead of just making it work, as millenials call it.

The active textbox in the inspector gets stuck in the same place, on top of everything else, when scrolling.  Dragging from a listbox makes the source listbox scroll instead of the destination, so if you drag the same item multiple times, you have to rescroll the source listbox every time.

Despite all the options, there was no way to have a starting velocity for radial movement.  There is an accel curve which can replicate engine exhaust.  Naturally, the accel curve is an artistic bezier curve editor with no printout of numerical values.

Got somewhat of a liftoff, with much crosstalk between particle generators.  Didn't bother tracking down all the sound credits.

1 thing that worked was making the particle nodes always face the camera, to create fake volume.  It's done by 1st looking at, then resetting the 2 fixed eulers.

var defaultSmokeTransform = smoke.transform

    smoke.transform = defaultSmokeTransform
    var euler = smoke.transform.basis.get_euler()
    smoke.look_at(camera.global_transform.origin, Vector3(0, 1, 0))
    var euler2 = smoke.transform.basis.get_euler()
    smoke.set_rotation(Vector3(euler.x, euler2.y, euler.z))

   var scale = defaultSmokeTransform.basis.get_scale()
    smoke.transform.basis = smoke.transform.basis.scaled(scale)

They did a good job recreating the animated look & simulating what a character in the show would see, but it's extremely boring. Notice the use of crosses & dynamically generated models to draw the smoke trails. The explosions could easily be quads with animation inside textures.