JirkaDellOro / FUDGE

Furtwangen University Didactic Game Editor
https://jirkadelloro.github.io/FUDGE
MIT License
33 stars 27 forks source link

Renaming COLLISION_GROUPS #277

Open JirkaDellOro opened 3 years ago

JirkaDellOro commented 3 years ago

Derzeit sind folgende Groups definiert:

DEFAULT = 1,
GROUP_1 = 2,
GROUP_2 = 4,
GROUP_3 = 8,
GROUP_4 = 16,
GROUP_5 = 32

Außer DEFAULT sind die Bezeichnungen aussagefrei und schwer zuzuordnen, für die Creators ist es eher sinnvoll, eigene Bezeichnungen zu wählen. Vor dem Hintergrund bekannter Anwendungsfälle, könnte man aber hier Bezeichnungen als etwas aussagekräftigere Vorschläge wählen. Ich könnte mir etwas vorstellen wie

DEFAULT = 1,
STATIC = 2,
DYNAMIC = 4,
KINEMATIK = 8,
TRIGGER = 16,
OTHER = 32

Da sind dann vielleicht Kombinationen erkennbar, die Sinn ergeben, beispielsweise, dass dynamische Objekte nicht die Triger auslösen sollen etc. Es bleibt natürlich den Creators überlassen, wo sie etwas hinstopfen und wie sie die Masken setzen. Vielleicht gibt es aber noch deutlich bessere Vorschläge?

Dev-MarkoF commented 2 years ago

Die sind so aussagefrei gewählt um ihrem Zweck zu entsprechen, nämlich frei wählbaren Gruppen, die für den Anwender keine Vorentscheidung treffen. Unter dem Hintergrund wäre es sogar besser Default in Group_1 umzubenennen.

Mit aussagekräftigen Namen trifft man halt eine sprachliche Vorentscheidung, auch wenn es sonst keine Auswirkungen hat, die kann durchaus helfen, aber gibt dann auch ein System vor. Ich wollte kein System vorgeben, da ich auch in anderen Engines selten/nicht darauf getroffen bin.

Für den Einstieg kann das vlt. helfen. Aber ich sehe da dann eine falsche Verknüpfung in den Gedankengängen der Nutzer, wenn ich STATIC/DYNAMC etc. vorgebe, dann gehen vlt. einige davon aus, dass Körper dieser Art in diese Gruppen "müssten" um korrekt zu funktionieren, das lenkt dann eher ab von den wichtigen Flags, isTrigger und PhysicsType.

Einziger anderer Einwand KINEMATIK -> KINEMATIC, da ist aus Versehen wohl ein K drin gelandet.

JirkaDellOro commented 2 years ago

Dann wäre es eher ein Design-Vorschlag für unsere Kreateuris, mit selbstgebauten Enumerationen Ordnung für sich zu schaffen. Würde es also mit oben genanntem Schema arbeiten wollen, schreibt es dann

enum MY_GROUP
  DEFAULT = COLLISION_GROUP.DEFAULT,
  STATIC = COLLISION_GROUP.GROUP_1,
  DYNAMIC = COLLISION_GROUP.GROUP_2,
  ...
Dev-MarkoF commented 2 years ago

Genau, so denke ich ist das stimmig und jede/r kann festlegen wie die Gruppen benannt sind.

Jonathan-Schnee commented 2 years ago

Zu dem Thema und da Jirka gesagt hat ich soll es hier reinschreiben, es wäre gut wenn man die Collisions_Groups im Editor direkt eintragen kann.