Dreamphone: Difference between revisions

From ConsoleMods Wiki
Jump to navigation Jump to search
Line 80: Line 80:
3. Open Dream Dialer Device: With the ODD code complete, a "Device" can be made to emulate the behavior of the Dream Phone handset device. This currently is specified as using a Raspberry Pi Pico to run the main game code and audio playback, and I2S audio drivers playing MP3 files in response to the dialed inputs. This would serve as a drop-in alternative to the original Dream Phone handset, as well as opening the opportunity for Open Dream Phone custom user assets to be uploaded to the ODD-Device for custom audio reflecting new clue categories, boy names, responses, etc.
3. Open Dream Dialer Device: With the ODD code complete, a "Device" can be made to emulate the behavior of the Dream Phone handset device. This currently is specified as using a Raspberry Pi Pico to run the main game code and audio playback, and I2S audio drivers playing MP3 files in response to the dialed inputs. This would serve as a drop-in alternative to the original Dream Phone handset, as well as opening the opportunity for Open Dream Phone custom user assets to be uploaded to the ODD-Device for custom audio reflecting new clue categories, boy names, responses, etc.


===Game Logic Notes for Dream Phone Simulator / Open Dream Dialer===
==Game Logic Notes for Dream Phone Simulator / Open Dream Dialer==
[[File:DPS Program Logic Block Diagram.png|thumb|none|1600px]]
[[File:DPS Program Logic Block Diagram.png|thumb|none|1600px]]


====New Game Button Pushed:====
===New Game Button Pushed:===
The game begins when the player pushes "new game" on the device.
The game begins when the player pushes "new game" on the device.


====Build Game Board (Boy Attribute Table):====
===Build Game Board (Boy Attribute Table):===
For the initialization of a new game to occur, the DPS must create the Boy Attribute Table. This is a static data pool showing which Hang-Out, Sport, Food or Clothing relates to which Boy. Using Dream Phone's Clue Card and Game Board as reference, a table can be built to consolidate all of these relationships. Note that the information is sorted so that the attributes are clustered together.This will be helpful later in the code.:(note to fix table to include boy phone numbers)
For the initialization of a new game to occur, the DPS must create the Boy Attribute Table. This is a static data pool showing which Hang-Out, Sport, Food or Clothing relates to which Boy. Using Dream Phone's Clue Card and Game Board as reference, a table can be built to consolidate all of these relationships. Note that the information is sorted so that the attributes are clustered together.This will be helpful later in the code.:(note to fix table to include boy phone numbers)



Revision as of 08:04, 7 November 2022

Electronic Dream Phone Box Cover.png

Dream Phone, or "Electronic Dream Phone", was a board game by Milton Bradley, originally made in the early 90's. The goal of the game is to discover who "your crush" is out of a selection of 90's Boys. Though designed as a multiplayer game, the simple mechanics allow for solo play as well.

The selling point was the inclusion of an electronic toy phone, allowing players to dial phone numbers and "talk" to boys. When a number is dialed, a clue is revealed about one of the 24 boys featured in the game. The goal of the game is to using deductive reasoning to discover which of the boys has a crush on you before the other players.

Gameplay

Dream Phone is a conceptual cousin of the classic board game Clue. In Clue, you are trying to discover a murderer by deductive reasoning. Unlike Clue, Dream Phone doesn't have any player pieces or a game board per-se, the entirety of the game is based on the interactions of the player, the game cards, and the Dream Phone device itself, with occasional PvP interactions between players.

Game Board, Cards and Clue Card

Dream Phone Game Board
Dream Phone Game Board

The game board is a codex for reference of the Boys' names, location, clothing, sport and food information.

Game Cards
(missing images)

The deck consists of the Boy Cards as well as 12 special "PvP" cards.


Dream Phone Clue Card
Dream Phone Clue Card.png

To keep track of your clues, the game includes a pad of paper that you can scratch off the locations, clothing, etc. that doesn't fit your crush.

Setup

To setup the game, perform the following sequence:

Sort the Deck: Separate out the 12 special cards from the deck. The special cards are "Speakerphone", "Share a Secret" and "Mom Says Hang Up".

Distribute Special Cards: Each player receives one of each special card ("Speakerphone", "Share a Secret" and "Mom Says Hang Up") face up in front of them. Remove any extra from play.

Shuffle The Deck: The remaining "Boy" cards are shuffled and placed face down on the game board. As cards are used, they are discarded into a discard pile. If the main stack of cards is exhausted, the discard pile is shuffled and used again as many times as required until the game ends.

Start The Game: On the Dream Phone device, the "New Game" Button is pushed, starting the game. Note that the game will turn off if no interactions are made to the device in 5 minutes.

Main Game

Players take turns performing the following sequence:

Draw a Card: The player draws from the stack of "Boy" cards.

Dial a Boy: If a Boy Card is drawn, the player uses the Dream Phone to dial the phone number for the boy that is printed on the card. The response from the call can be useful (e.g "He's not at the Mall!"), or can be not useful (e.g "Ha Ha! I'm not telling"). The player then should scratch off any information that they have received from their notepad. The Dream Phone responses are broken into loud and quiet portions. The category of the clue is announced ("I know where he hangs out!") over the loudspeaker, but the clue itself ("He's not at the mall!") is only revealed to the current player over the quiet earpiece.

Next Player: Once a Boy card is dialed, the card goes into the discard pile, and the current player's turn is over. the action goes to the next player in sequence.

Player Vs Player

At any time before the current player dials, other players may use one of their special cards.

Speakerphone: If a speakerphone card is played, the current player must push the "Speakerphone" button on the Dream Phone before dialing their current boy. This will play both potions of the clue over the speakerphone, allowing all players to benefit from knowing the clue. Once the Speakerphone card is played, it is taken out of the game.

Share a Secret: If the "Share a Secret" card is played, the current player proceeds as normal but must reveal the clue that was exposed during the phone call to the player who played the card. They can do this by sticking their ears near the earpiece, or by using the "redial" button to repeat the last clue. The "Share a Secret" card is not discarded when played, but goes into the possession of the player it was used on.

Mom Says Hang Up: When a "Mom Says Hang Up" card is played, the turn is lost for the current player and they are not able to dial a Boy and must pass the phone to the next player. Once played, the "Mom Says Hang Up" card is taken out of the game.

Solve

When a player thinks they have enough information to guess which Boy their crush is, when it is their turn, they can press the "Solve" button on the Dream Phone. They then need to dial the number of the boy into the Dream Phone device. A victory message will play if the answer is correct. If not, a "try again" message will play and the gameplay continues.

Open Dream Dialer

Dreamphone-Sim on Github: https://github.com/Supertimtendo/DreamPhone-Sim

Open Dream Dialer is a project started by me (Old Kid) to recreate Electronic Dream Phone in a computer software simulation. The project is divided into three goals:

1. Dream Phone Simulator: Recreate as accurately as possible the experience of playing Dream Phone via software recreation. This includes reverse engineering gameplay mechanics, scanning and archiving game board and card assets, and 'Dream Phone Device' dialing behavior and sound effects.

2. Open Dream Dialer: Once Dream Phone Simulator is complete, the goal will be to remove any copyrighted assets from the program and open source release as "Open Dream Dialer". This would include instructions, tools and/or assets for users to create custom game board, card and clue configurations.

3. Open Dream Dialer Device: With the ODD code complete, a "Device" can be made to emulate the behavior of the Dream Phone handset device. This currently is specified as using a Raspberry Pi Pico to run the main game code and audio playback, and I2S audio drivers playing MP3 files in response to the dialed inputs. This would serve as a drop-in alternative to the original Dream Phone handset, as well as opening the opportunity for Open Dream Phone custom user assets to be uploaded to the ODD-Device for custom audio reflecting new clue categories, boy names, responses, etc.

Game Logic Notes for Dream Phone Simulator / Open Dream Dialer

DPS Program Logic Block Diagram.png

New Game Button Pushed:

The game begins when the player pushes "new game" on the device.

Build Game Board (Boy Attribute Table):

For the initialization of a new game to occur, the DPS must create the Boy Attribute Table. This is a static data pool showing which Hang-Out, Sport, Food or Clothing relates to which Boy. Using Dream Phone's Clue Card and Game Board as reference, a table can be built to consolidate all of these relationships. Note that the information is sorted so that the attributes are clustered together.This will be helpful later in the code.:(note to fix table to include boy phone numbers)


Clue Logic

Clue Possibility Matrix
A B C D
0 - empty empty -
1 Crosstown Mall Baseball Cookies Blue Jeans
2 E.A.T.S. Snack Shop Skateboarding Ice Cream Tie
3 Reel Movies Volleyball Hot Dogs Jacket
4 Woodland Park Surfing Pizza Glasses
5 High Tide Beach Basketball Candy Hat
6 Jim's Gym Tennis Popcorn Anything Yellow

Dream Phone works by removing choices - "he doesn't like this" or "he isn't there". Each boy consists of a table of features that is hard coded. The game randomly selects a boy, and then randomly selects deductions from the table for every other boy on the table to reveal to you. For a game to be set up,a selection from one of the 24 boys is assigned as "the crush", and the remaining boys are assigned clues.

For Example: RNG Selects Dave as "the crush". Dave's Location is Crosstown Mall, or A1 on the Clue Possibility Matrix. Thus, he is not A2, A3, A4, A5, or A6. These values would be added to the 'negative clue' table. Dave likes cookies, or C1, thus, he is not C2, C3, C4, C5, or C6. Add values to the negative clue table. Sports and Foods values are mutually exclusive - such that if B = 0, than C = 1-6. If C=0, than B=1-6. Sum of B+C cannot equal greater than 6. Thus, if a C value above zero is found, all of B1-B6 is added to clue table. Dave(a) wears Blue Jeans, or D1. Thus, D2, D3, D4, D5 and D6 are added to clue table.

Example Game Clue Distribution
(Dave's Clue Table -Dave is A1, so Every Other Boy is represented (X1-X24))
X1 Is not at - E.A.T.S. Snack Shop A2
X2 Is not at - Reel Movies A3
X3 Is not at - Woodland Park A4
X4 Is not at - High Tide Beach A5
X5 Is not at - Jim's Gym A6
X6 Does not play - Baseball B1
X7 Does not play - Skateboarding B2
X8 Does not play - Volleyball B3
X9 Does not play - Surfing B4
X10 Does not play - Basketball B5
X11 Does not play - Tennis B6
X12 Does not Eat - Ice Cream C2
X13 Does not Eat - Hot Dogs C3
X14 Does not Eat - Pizza C4
X15 Does not Eat - Candy C5
X16 Does not Eat - Popcorn C6
X17 Does Not Wear - Tie D2
X18 Does Not Wear - Jacket D3
X19 Does Not Wear - Glasses D4
X20 Does Not Wear - Hat D5
X21 Does Not Wear - Anything Yellow D6
X22 BLANK BOY
X23 BLANK BOY
X24 BLANK BOY

The game then randomly assigns the clue X1-X23 to boys B through X in this example. "Blank Boys" Can be Assigned null hints, "I'm not telling! Ha ha!" Because no unique clue can be assigned to this Boy. The game also has modifiers to randomly put a clue on speakerphone (probably a D10 RNG roll). This happens at the end of a turn. The win condition is when a player enters the correct boy code on their turn.

Another point to note is that the table of the boy's attributes is displayed on the game board so deductive reasoning can be exercised. For example, "Oh, he is not that the movies, that rules out the 4 boys that are at the movies.", Or, "Oh, he is not wearing jeans, that rules out the 4 boys that are not wearing jeans." Each clue should effectively eliminate 2-4 boys from the game.

Boy Attribute Table

Boy Attribute Table
Person Location Sport / Food Food Clothing
0 Dave Crosstown Mall Cookies Blue Jeans
1 George Crosstown Mall Ice Cream Tie
2 Dale Crosstown Mall Ice Cream Jacket
3 Alan Crosstown Mall Cookies Tie
4 James E.A.T.S. Snack Shop Hot Dogs Jacket
5 Phil E.A.T.S. Snack Shop Pizza Glasses
6 Bruce E.A.T.S. Snack Shop Pizza Tie
7 Tyler E.A.T.S. Snack Shop Hot Dogs Blue Jeans
8 Jamal Reel Movies Candy Tie
9 Gary Reel Movies Popcorn Blue Jeans
10 Dan Reel Movies Candy Blue Jeans
11 Spencer Reel Movies Popcorn Jacket
12 Mark Woodland Park Baseball Hat
13 Jason Woodland Park Baseball Glasses
14 Steve Woodland Park Skateboarding Jacket
15 John Woodland Park Skateboarding Anything Yellow
16 Paul High Tide Beach Volleyball Anything Yellow
17 Tony High Tide Beach Volleyball Hat
18 Wayne High Tide Beach Surfing Anything Yellow
19 Mike High Tide Beach Surfing Hat
20 Scott Jim's Gym Basketball Anything Yellow
21 Bob Jim's Gym Basketball Glasses
22 Carlos Jim's Gym Tennis Hat
23 Matt Jim's Gym Tennis Glasses

Dream Phone Simulator Python Code

DPS Alpha 1.7

Run the code here: https://www.online-python.com/HFAh9oMD7T