Conversation
|
How to test:
|
|
Play this branch at https://play.threadbare.game/branches/endlessm/wjt/store-collected-threads/. (This launches the game from the start, not directly at the change(s) in this pull request.) |
|
This is a work in progress. I am more interested in review of the gameplay than of the code. The incompatible requirements I am trying to square are:
In this branch, the behaviour of a previously-collected thread depends on whether the thread has a "next scene" configured:
The intuition is that optional threads should not link to another scene, while mandatory threads always do. (However I can already imagine cases where we might want to teleport the player after an optional thread...) |
|
One reference of optional collectible: the 10-flower coins in Mario Wonder. These are big purple flower-shaped collectibles. There are 3 per level. Once you collect them, they dissapear. The next time you play the same level, they appear stippled. If you re-collect them stippled, they dissapear again. |
|
Noting here the convo from the meeting: removing requirement 4 by having the teleporter interactable threads be "legacy" and new threads going forward just be collectables (with existing levels reworked to accommodate changes) Also noting, have collected threads on replaying level be replaced with bonus buttons to "mark" their collection and also give a slight bonus to players who backtrack to them. |
|
We discussed this in the build review. In summary:
Actually I think we could do the refactoring mechanically:
There are some edge cases to deal with here though:
|
14ed33f to
0982254
Compare
0982254 to
337c2e3
Compare
|
What I decided to do as a first step is to make the behaviour consistent as follows:
|
|
There are still some bugs in this patch but I ran out of time before my week of vacation so I've pushed what I have and tried to summarise what's left. |
337c2e3 to
e7e5f5d
Compare
Thanks! I can take it from here. |
Quests in Threadbare can be replayed. Previously you would be able to collect each thread again, and take them to the loom a second time. Then they would be forgotten forever. We would also like to make it possible to have optional threads in a quest, so that there is value in replaying a quest. Perhaps there's a thread you can only get through careful exploration, or via an optional puzzle, or with an ability unlocked later in the game. Finally, we would like to make threads a sort of currency, with which you can buy powerups of some kind. It follows that you shouldn't be able to collect the same thread in the same scene multiple times because then you could just grind an easy quest to buy all the powerups. Change the game state storage to record the scene and node from which a thread was collected. At the end of a quest, copy the new threads to a new global inventory. When starting a quest, pre-populate the quest inventory with the threads already collected in a previous run. In CollectibleItem, and in the HUD, detect when a thread is from a previous run through the quest and dither it. In the two places where threads are awarded in dialogue, add a CollectibleItem to the scene and use that as the source of the item. Perhaps in future it would be better to have a method on CollectibleItem to do this outside of an interaction. Or maybe these should be playable scenes and this should not be supported?
e7e5f5d to
5d6d2e6
Compare
|
Rebased, fixed the TODOs. But it will need testing... |


Quests in Threadbare can be replayed. Previously you would be able to
collect each thread again, and take them to the loom a second time. Then
they would be forgotten forever.
We would also like to make it possible to have optional threads in a
quest, so that there is value in replaying a quest. Perhaps there's a
thread you can only get through careful exploration, or via an optional
puzzle, or with an ability unlocked later in the game.
Finally, we would like to make threads a sort of currency, with which
you can buy powerups of some kind. It follows that you shouldn't be able
to collect the same thread in the same scene multiple times because then
you could just grind an easy quest to buy all the powerups.
Change the game state storage to record the scene and node from which a
thread was collected. At the end of a quest, copy the new threads to a
new global inventory. When starting a quest, pre-populate the quest
inventory with the threads already collected in a previous run. In
CollectibleItem, and in the HUD, detect when a thread is from a previous
run through the quest and dither it.
In the two places where threads are awarded in dialogue, add a
CollectibleItem to the scene and use that as the source of the item.
Perhaps in future it would be better to have a method on CollectibleItem
to do this outside of an interaction. Or maybe these should be playable
scenes and this should not be supported?