phetsims / vegas

Reusable game components for PhET simulations.
MIT License
1 stars 4 forks source link

General PhET-iO design for games #118

Open pixelzoom opened 1 year ago

pixelzoom commented 1 year ago

This has come up in a few sims, where instrumentation progress is blocked; e.g.

And before addressing sim-specific aspects of games, a more general PhET-iO design activity is needed.

In https://github.com/phetsims/fourier-making-waves/issues/144#issuecomment-1557563099, I identified a few of the general design issues that need to be discussed. There are undoubtedly many more.

General design issues that need to be discussed:

  • What does it mean for a client to "set challenges" for a game that has an INFINITE number of challenges? Do we need to somehow limit the number of challenges, and make the game finite? (Very difficult.) Or does the instructional designer specify the first N challenges, and then the sim starts generating random challenges from there?

  • What does it mean for a client to "set challenges" for a game that has a FINITE number of challenges? For example, if a level has 10 challenges, does the client need to specify all 10 challenges? Or can the client specify 5 challenges and have the sim generate the remaining 5 challenges?

  • In some sims, the challenges that have been presented to the user so far are used to decide what challenge to generate next. Does the sim's challenge generator need to be aware of the challenges that the client has specified when deciding what challlenge to generate next?

  • In some (many? most? all?) games, each level has specific constraints on its challenges. How do we enforce those constraints - or do we? How do we communicate the constraints to the client?

  • Would it be useful to allow the client to set the "seed" used to drive random generation of challenges, so that the same challenges are generated each time the sim is run?

In the context of RPAL and https://github.com/phetsims/reactants-products-and-leftovers/issues/78#issuecomment-1629678272, @arouinfar said in Slack:

Thanks for the update, Chris. I can review the RPAL game and games in general to brainstorm PhET-iO design requirements/wishlist. I think it would also be really helpful if we could get input from existing clients about what they would like to do with games.

So I'll start by assigning this to @arouinfar, @kathy-phet, and @brent-phet.

@zepumph @samreid FYI.

pixelzoom commented 1 year ago

Based on standup discussions in Slack#meteoreos, other things to discuss include:

marlitas commented 8 months ago

@pixelzoom and I discussed using the GridBox layout component for LevelSelectionButtonGroup. This would significantly simplify some logic in the code, but would also introduce some design restrictions on how the buttons can appear in level selection screens.

More information can be found here: https://github.com/phetsims/vegas/issues/121

brent-phet commented 7 months ago

I followed up on an old email that @JacquiHayes found from a Basic Partner (nelson.com). She was interested in limiting the choice of games that appear on the game screen. She was referencing Build an Atom, but was asking in general:

"Hi everyone,

We are wondering if there is a way to control the different games that appear in the sims? I know we can control which screens appear, but after you click on games, sometimes there is more than one.

Is there a way we can choose to only show certain ones of the games? We are finding that sometimes they are not all relevant to a certain grade.

image

Thanks for any help you can give,

Christine"

pixelzoom commented 7 months ago

We are wondering if there is a way to control the different games that appear in the sims?

@brent-phet The gameLevels query parameter provides this. It was recently (last weekend) added to all sims that have game levels, but only appears in a few published sims (I'm not sure which ones).

brent-phet commented 3 months ago

FYI - I documented requirements for Game Design in terms of the use case of integrating into an LMS here:

https://docs.google.com/document/d/1odbmQCd9TZbEOJTQHPG29yyfgbttf30TWLXYuQcl8GY/edit?usp=sharing

We will focus on this in a future iteration, ahead of beginning on Number Pairs, which has a game screen.

pixelzoom commented 1 month ago

Searching on Google Drive for "games", I see these (possibly) relevant documents. There may be others that I haven't identified.

PhET-iO Instrumentation for Games Discussion (Jul 18, 2023) https://docs.google.com/document/d/1Wv-vrgUVbh6tl51oSDvm7ZRy_nSXmHYREKvG-zpUaTs/edit?pli=1

PhET-iO Game Design Analysis via LMS Game Integration (LTI) and Experience API (xAPI) Requirements https://docs.google.com/document/d/1odbmQCd9TZbEOJTQHPG29yyfgbttf30TWLXYuQcl8GY/edit#heading=h.ifpdf5pdhnza

List of simulations with game screens at 18 May 2022 https://docs.google.com/document/d/1Octrv-rCTbb-M1hS0LsWrbObewuhol88eHYLSN151iU/edit

Mechanics-Based HTML5 Game Breakdown (March 2019) https://docs.google.com/document/d/14BNBrokYt1OI2Y7lzjhkAP2aSnEfBh7xBW868ss2spg/edit#heading=h.cnlkqzqciwrv

WCAG, Game Accessibility and Sim Features (folder of documents) https://drive.google.com/drive/folders/1eMlnFAORyK4oRtcEywEHaSrbYLUBR2Da

Accessible Interactive Games (folder of documents) https://drive.google.com/drive/folders/1uD4uHc-xI2FPZO1ZOPaddehJhbTW_N39