Skip to content

Alpha 3 "coriander" – Tooltips, welcome dialog & smooth shading

Choose a tag to compare

@mooss mooss released this 17 Sep 11:32
· 201 commits to master since this release

Try it here.

This release adds user-facing documentation in the UI in the form of tooltips for most elements of the control panels and a welcome dialog presenting the project and how to use it.
It also fixes normal computation at the edge of chunks, thus allowing to hide seams between chunks and to re-enable smooth shading.

Core engine & world model

  • Default terrace steps set to 0: the terrain looks better without terraces now that flat shading is disabled.
  • Minimum vertical unit: prevents shading artifacts when the terrain height multiplier is set to zero.

Rendering pipeline

  • Fixed normal at the edges: the normals now take vertices from neighboring chunks into account, removing seams that appeared between chunks.
  • Smooth shading re-enabled: flat shading was only enabled to hide the seams between chunks.
  • Paradise palette: bright colors; water -> sand -> grass -> forest -> hills.

UI

  • Welcome dialog: a dismissible welcome window is displayed with project presentation, controls and UI overview.
  • Tooltips: algorithms, processing steps and most parameters now shows tooltips explaining what they do and how to use them.
  • Reduce folder nesting: most "Noise" folders have been removed, reducing nesting and clutter.

Storage & sharing

  • Maintained URL compatibility: URLs encoded for "bean" still work for "coriander".
  • Persistent dismiss-state: saves the choice to not show the welcome dialog again.

Implementation details

  • Reference state encoding: introduces REFERENCE_STATE used as dictionary for codec to keep URLs encoding stable when possible.
  • Clean-build Makefile target: splits dist into clean-build then dist to enable a clean build without producing the Go binary.
  • Rename/reorganize: ui.ts -> ui/ui.ts, climbObjectOrArray -> climbTree -> cultivateTree, remove redundant tree helpers.
  • Tooltip class: GUI element implementing the tooltips.
  • Window widget: draggable and closable floating windows with themed styling and header, used for the welcome dialog.
  • CheckBar widget: new UI widget pairing a checkbox with a button, used in the welcome dialog.