Skip to content

Instantly share code, notes, and snippets.

@nothke
Last active November 21, 2023 16:54
Show Gist options
  • Save nothke/024c0e28426c3b00e3a754cfaec78868 to your computer and use it in GitHub Desktop.
Save nothke/024c0e28426c3b00e3a754cfaec78868 to your computer and use it in GitHub Desktop.

Pros

  • Entering play mode is instant!
  • Has very intuitive coding style.
    • Very Unity-like, but even when it's not identical to Unity, it's very intuitive
  • Gives you an option to install daily master branch editor in the launcher
  • Profiling with Tracy!
  • Unlike Godot:
    • Prefabs (scenes) don't hide children
    • Can apply prefab from scene
    • Input is not a separate function, but it happens in update (like in Unity)
    • Has distance joints
    • Can set joint anchors at runtime
  • Unlike Unity:
    • Has one render pipeline
    • Has real time GI
    • Can use .net 8
    • Starts faster and enters play mode faster
    • Much lighter

Cons

Nitpicks

  • small UI text margins (let the text breathe a bit!)
  • Materials list in renderable mesh actor says "Entries" instead of the logical - "Materials"
  • Drag and drop highligh color is blue, which is confusing with materials
  • Plugins window says "plugin" 4 times, Plugin - window, Plugin - sub-frame, Clone Plugin Project, Add PLUGIN project. Whyy?? :D

Suggestions

  • It's not clear what type an actor is in the inspector
    • for example the "Sky" actor never says "Sky" on it.. There is a "sun" segment but it's just setting the sun parameter, which makes it extra confusing
  • Add a button to quickly toggle all gizmos on/off in editor view (grid, editor sprites..)
  • Add an option to auto save settings
    • for example when changing exposure in eye adaptation, right now you must manually ctrl+S on every change. It would be useful to have it be auto saved on every param change, or at least when the drag is released.
  • Joints auto anchor should be on by default IMO, right now, they always anchor at connected body's center, which makes it pop at start
  • Add button to "reset anchor to auto" - set custom anchor values from auto anchor
  • Show if joint is violated in scene view. In distance joint perhaps by showing a red line if both anchors are further from max distance.
  • Expose sky parameters, like planet scale, rayleigh coefficient etc, (some of which would trigger 3D texture rebuilds)
  • If an array element has a "name" parameter, elements should be named like that instead of entry 0, entry 1.. (that's what Unity does)
  • Add an option to automatically maximize the game window when running (like Unity does)
  • Plugin window:
    • Word "clone" is unclear to beginners, because if one is not familiar with git parlance you'd assume it means "copy", prefer not to use it. Instead I suggest making the buttons simply say "Add" and "New" (in that order, since Add is going to be far more used) instead of "Create plugin Project", "Clone Plugin Project"

Issues/Bugs

  • There's no rectangle selection
  • Pure reflection (spec 1, roughness 0, metal 0 should render reflected light identical to the environment, but is instead dimmer
    • to make it truly reflective I had to increase reflection probe intensity to 1.5
  • Gizmos issues (they need a lot more work):
    • Holding translation gizmo and moving into finity doesn't get it back once you move the mouse back
    • There's no way to uniformly scale with gizmos, I'd expect clicking on a cube in the center would do it, but it does nothing
    • Move/Rotate/Scale gizmo shouldn't disappear for out of far plane objects
  • Disabling the override in graphics settings doesn't revert the value
  • Changing a scale value that is set to uniform scaling in inspector doesn't make other floats identically rounded
  • Drag and dropping a material doesn't work for prefab instances (but can be set in inspector)
  • Sun disappears behind the flat horizon, but the sky is actually a sphere (to repro just put sky to a high Y and put sun to 90 degress on the horizon)
  • Each material opens a new undocked window instead of reusing the same docking
  • Dragging over the output log opens it
  • imgui plugin doesn't work

What I don't like (but can live with it)

  • Default unit is centimeters

Gamebreaking

  • 3D asset importing: Objects either welded together, or split into separate files (where each uses all materials)
  • Assets importing is a separate process that needs to be done manually and is destructive.
    • Drag and drop a model file -> import window shows up -> press "import", and then the objects get converted to engine-friendly representation, and there's no original file linked
    • I just wish that it used a system like Unity:
      1. Models are always original files, meta files contain import settings, game-ready meshes are actually stored in the library away from the user
      2. Reexporting a mesh (from blender e.g.) and saving to the same file within a project AUTOMATICALLY triggers a reimport, and all models are converted thanks to the import settings in the meta file. Therefore, no human input is needed! (this is why it's the best!)
  • Colliders only added to rigidbody if immediate child
@Menotdan
Copy link

FlaxEngine/FlaxEngine#1973 is a good place for discussion regarding asset importing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment