diff options
-rw-r--r-- | README | 137 | ||||
-rw-r--r-- | TODO.org | 11 | ||||
-rw-r--r-- | apple-town-fair/game.scm | 21 | ||||
-rw-r--r-- | apple-town-fair/place.scm | 9 |
4 files changed, 163 insertions, 15 deletions
@@ -0,0 +1,137 @@ +-*- org -*- + +#+TITLE Lisp Game Jam 2022 + +* Idea + +A Boku no Natsuyasumi-like about a long weekend in the Massachusetts +countryside in October, culminating in a town fair. + +* Gameplay + +The player traverses several different location and interacts with the +people/objects in them. The player wakes up in the early morning +(6am) and goes to bed in the late evening (9pm.) Most actions advance +the game by 1 hour, some will take more. Certain actions are only +available at certain times or if certain other conditions are met, so +doing *everything* in the game requires replays and being careful +about order of operations. However, there is no failure state. The +game can just be enjoyed as an experience. The exact ending will vary +based on how many story points the player earns for accomplishing +certain tasks, but every ending is a good ending. + +There are items that can be bought in the game. The player has a +fixed amount of money and cannot buy everything. What they buy +influences later events and possible story points. + +The game takes place from Friday-Sunday in October. The exact days +will not be specified. The game concludes at 9pm on Sunday. + +Not everything is realistic. There will be some supernatural events +for fun, such as a ghost encounter. + +Boku no Natsuyasumi has several references to WWII. This game should +have some references to the genocide of Native Americans by European +settlers. Fall in New England is wonderful, but our cultural +traditions of apple pies and pumpkin carving are built on top of land +stolen from natives. + +* Locations and what's in them + +** Home +- Where the player starts and ends each day. +- Animals: + - House cat +- Action: Bake + - Condition: when player has apples + - Condition: Only on Saturday + - Player gets choices about how to make the pie: + - Which apples to use (if they bought more than one type) + - How much cinnamon + - How much nutmeg + - How much flour to thicken filling +- Action: Carve Pumpkin + - Condition: when player has Jack o' Lantern pumpkin +- Action: Go to bed + - Condition: Anytime after 7pm. +- Action: Watch TV + - Add some fun slice of life informational nuggets here that change + a few times per day. + - One of the TV bits should be a baking show that explains how to + bake a good pie. + - Another TV bit should give some native american history + - At least one of the TV events should unlock something cool + elsewhere. +- Action: Inspect garden + - The garden is mostly done for the year, but there are carrots that + can be picked. On Saturday morning, there has been a frost. + Picking the carrots that day yields frost-sweetened carrots + instead of the regular carrots of Friday. On Sunday, if they + aren't picked, the player will find that the groundhog took them + all. + +** Trail by the river +- This trail offers a break from the other, populated locations, and + is a necessary step to get to the orchard. +- Add some interactable elements for classic New England forest finds: + - old stone walls + - types of trees + - ferns + - wildlife +- Action: Forest Bathe + - If player has learned about pumpkin contest and has Jack o' + Lantern, they will become inspired, improving their carving and + increasing their rank in the contest. + - Otherwise, just share some interesting observation about the New + England forest with the player. +- Event: Deer encounter + - If the player has carrots and shows up between 6am-9am on + Saturday, the deer will approach the player. + - If the player has frost sweetened carrots, there will be very + pleased and will lead the player off the trail to a small defunct, + overgrown orchard with an heirloom apple tree of unknown variety. + +** Farm stand +- People/Animals: + - Farm stand cashier +- Store is open from 9am-5pm each day + - Buy pumpkins (Sugar or Jack o' Lantern) + +** Orchard +- People: + - Orchard store cashier + - Dog +- Store is open from 10am-4pm each day + - Buy 1/2 peck of apples (Cortland, Macoun, Honeycrisp) + - Buy cider/cider donuts?? +- Event: Ghosts in the orchard + - Condition: Friday night on or after 8pm + - Just a fun spooky event. Nothing bad happens. + +** Town common +- Interact: Stone marker memorializing when the town was burned down, + righfully so, by native Americans. +- People: + - Person on bench (Friday and Saturday) +- Action: Learn about upcoming town fair and associated contests. + - Condition: On Friday or Saturday +- Event: Sunday, 10am-4pm, Town Fair + - Apple pie contest + - Player gets first place if: + - They found and used the heirloom apples + - They used 1tsp of cinnamon + - They used 1/4tsp of nutmeg + - They added flour to thicken the filling + - Quilt raffle + - Action: Buy raffle tickets + - 0-3 tickets can be purchased. If player has enough money left + to buy all 3, then they will win the raffle. +- Event: Sunday, 5pm-7pm, Pumpkin Walk + - Pumpkin carving contest + - Players gets 1st place if: + - They carved Jack o' Lantern (not Sugar Pumpkin) + - They got inspired during forest bathing + - Player gets 2nd place if: + - They carved Jack o' Latern + - They did not get inspired forest bathing + - Player gets 3rd place otherwise diff --git a/TODO.org b/TODO.org new file mode 100644 index 0000000..b292c37 --- /dev/null +++ b/TODO.org @@ -0,0 +1,11 @@ +* TODO +** DONE [#A] Time/day progression +** DONE [#A] Game reset +** DONE [#A] Going to a new place +** TODO [#A] Interacting with places +** TODO [#A] Actions available based on game state conditions +** TODO [#A] Core story events +** TODO [#B] Ambient environment sound loops for all locations +** TODO [#B] Backgrounds for all locations +** TODO [#B] Dialog box background +** TODO [#C] Endings diff --git a/apple-town-fair/game.scm b/apple-town-fair/game.scm index 5ede549..71ee13a 100644 --- a/apple-town-fair/game.scm +++ b/apple-town-fair/game.scm @@ -490,29 +490,28 @@ August 1675") (define-class <choose-action-mode> (<major-mode>)) (define-method (advance-clock-once (mode <choose-action-mode>)) - (advance-clock (parent mode) 1)) + (advance-clock ($) 1)) (define-method (quit-game (mode <choose-action-mode>)) (exit-catbird)) (define-method (up-selection (mode <choose-action-mode>)) - (up-selection (& (parent mode) menu) 1)) + (up-selection ($ menu) 1)) (define-method (down-selection (mode <choose-action-mode>)) - (down-selection (& (parent mode) menu) 1)) + (down-selection ($ menu) 1)) (define-method (confirm-selection (mode <choose-action-mode>)) - (let* ((scene (parent mode)) - (place (& scene place)) - (chosen (selection (& scene menu))) + (let* ((place ($ place)) + (chosen (selection ($ menu))) (action (find (lambda (a) (string=? (name a) chosen)) (actions place)))) - (run-script scene - (hide (& scene menu)) - (perform action scene) - (hide (& scene dialog)) - (show (& scene menu))))) + (scene-script + (hide ($ menu)) + (perform action) + (hide ($ dialog)) + (show ($ menu))))) (bind-input <choose-action-mode> (key-press 'r) reset-game) (bind-input <choose-action-mode> (key-press 'escape) quit-game) diff --git a/apple-town-fair/place.scm b/apple-town-fair/place.scm index b96130d..01750da 100644 --- a/apple-town-fair/place.scm +++ b/apple-town-fair/place.scm @@ -17,6 +17,7 @@ #:use-module (catbird config) #:use-module (catbird node) #:use-module (catbird node-2d) + #:use-module (catbird scene) #:use-module (oop goops) #:export (<action> condition @@ -34,11 +35,11 @@ #:init-form (const #t)) (exec #:accessor exec #:init-keyword #:exec)) -(define-method (performable? (action <action>) scene) - ((condition action) scene)) +(define-method (performable? (action <action>)) + ((condition action) (current-scene))) -(define-method (perform (action <action>) scene) - ((exec action) scene)) +(define-method (perform (action <action>)) + ((exec action) (current-scene))) (define-class <place> (<node-2d>) (title #:accessor title #:init-keyword #:title #:init-value "Unknown") |