theRAPTLab / gsgo

GEM-STEP Foundation repo migrated from GitLab June 2023
1 stars 1 forks source link

Design: "Dead" Agents #67

Open benloh opened 3 years ago

benloh commented 3 years ago

What happens when an agent dies?

This is complicated and can vary according to agent, and the degree to which we want students to manage death via scripting vs automating it for them.

Death State

Visibility

Interactivity

Population

Implementation

How should this be implemented?

GFeature Death?

We could add a "Death" feature. The feature would add a property isDead to agents. It would be nice if we could set an inert feature property and have the scripts automatically handle updates accordingly but it gets complex quickly: e.g. if an agent is inert can we update x/y or not? Other than adding a property, the feature can't do much, so this probably not the way to go?

Custom Agent Property?

Or should we let students define the property themselves? e.g. addProp isDead Boolean false

It doesn't make sense to add it as a built-in property to GAgent because handling that property will vary according to the script? And being dead is relevant to dobject apart from the visual values?

On the other hand, it is common enough that many agents would use it?

GAgent

class-display-object


Use Cases

Corey's use case:


To Do

benloh commented 3 years ago

marked the checklist item Add agent.alpha as completed

benloh commented 3 years ago

marked the checklist item Add dobj.alpha as completed

benloh commented 3 years ago

marked the checklist item Set visual alpha as completed

benloh commented 3 years ago

marked the checklist item Add agent.inert property as completed

benloh commented 3 years ago

marked the checklist item "Touches" ignores inert agents as completed

benloh commented 3 years ago

marked the checklist item Fish do not glow when touching dead algae as completed

benloh commented 3 years ago

Implemented with !64