theRAPTLab / gsgo

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

Feature request: can we trigger an event when a character is clicked? #367

Open benloh opened 2 years ago

benloh commented 2 years ago

In GitLab by @jdanish on Nov 4, 2021, 08:54

The requested feature: It would be nice to be able to react to clicking or touching on a character in the character controller or viewer app.

Background / details:

The idea came from the fact that right now the way that two characters interact can only be changed in script - students can choose how they move, but not how they respond without scripting. However, a middle ground might be if a second kid could control the reaction. For example, in aquatic, what if one student moved around as a fish, and they approach algae. What if a separate student could use their iPad to indicate that the fish's energy level goes up? This would give them more agency, and also make this process more salient. (obviously, we'd still need code to make the algae disappear, but I think the energy focus would still be powerful)

Long term we had imagined a host of "widgets" to help with this. But, we clearly don't have time for those on this grant. However, if we could trigger some kind of click / push event in script then I think we could jury rig it using the other gem-script features. For example, we could make an up and down energy button for each fish, and assign a kid to manage their energy by pushing up or down. Then that call would change the energy amounts. Everything in that can already be done except knowing there is a click / push.

@ben I realize from the budget note that we are not able to add new ideas without removing others. At this point I'm asking for a rough estimate so that we can gauge what might need to be replaced or moved in the priority order. For example, this might give us more bang for our buck then the talk bubbles, even though I'd love both eventually!

benloh commented 2 years ago

I think there are at least two challenges here:

  1. We need to figure out how to have multiple controllers controlling a single agent. Right now other than the direct manipulation with charcontroller, we do not have a way of connecting a controller to an agent. How would you select which agent to set energyLevels for? If the other agent is charcontrolled, you have to wait until the charcontrol comes online, and only then select it. What happens if the charcontrol goes offline? This can be pretty hairy. I suppose if it's a pre-defined fish that you charcontrol with a cursor it's a little more straightforward.

  2. We need to create a button or slider interface for a different controller. So with this controller you'd first have to select an agent, and then you'd have to select an agent property to manipulate.

A rough estimate would be about a week, so 40 hours, given the two complex pieces.

@jdanish if you'd like to add this to the queue, please add a Round 4 Milestone and reorder it on https://gitlab.com/stepsys/gem-step/gsgo/-/boards/3251534?scope=all&milestone_title=Round%204%3A%20Final

benloh commented 2 years ago

changed time estimate to 40h

benloh commented 2 years ago

In GitLab by @jdanish on Nov 4, 2021, 15:26

Given the time constraints, I was thinking we'd hard-code all of the relationships so that the only new feature would be the button push. That is, we might have 5 pre-made fish that kids take over with pozyx, and 5 pre-made button pairs pre-set to impact their energy levels (button1 knows it talks to fish1, button2 to fish2, etc.). I guess we might need a way to indicate your are communicating with fish1, but otherwise just the button. Does that change anything? Either way, this is really helpful thanks!

benloh commented 2 years ago

That'd be a little simpler. But we do still need a new controller and to figure out how to connect the controller to the predefined fish.

It's doable. The challenge is more the UI than the architecture.

benloh commented 2 years ago

In GitLab by @jdanish on Nov 5, 2021, 02:30

ok thanks!

benloh commented 2 years ago

In GitLab by @jdanish on Nov 5, 2021, 02:35

FYI - I need to discuss with Noel and Corey but might put this above Reporter Manager or mid-round property editing. Please let me know when I have to have an official decision (picked those as having similar time estimates so an easier swap maybe).