Skip to content

Instantly share code, notes, and snippets.

@nothke
Last active November 21, 2023 16:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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
@Flavelius
Copy link

Flavelius commented Nov 20, 2023

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)

Afaik unity names them accordig to any string field that comes first, it doesn't have to be 'name'.

The asset import procedure should really be reworked, 100% agreed, i was surprised aswell (not in a positive way) when i discovered that it works like this.

@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