Ghosts & Laundry is an Idle game made for Summer Slow Jams!


Did you think you would escape doing laundry after death? Think again!

Help your ghost friend run their beyond-the-void laundromat by spending their hard

earned cash on upgrades.

No, seriously, that's it. That's all I was able to get done. This is my second game jam and I grossly mismanaged my time.


Oh yeah! Made with <3 and Godot 4.


Controls:

A/Left Arrow - Pan Left

D/Right Arrow - Pan Right


Attributions:

- All of the artwork and game code is mine.

- The background track was downloaded from: https://opengameart.org/content/bossa-nova


Known Bugs:

- The Ghost Speed and Fold Speed power ups are not working for some people.

- Panning too far right causes the camera to stick, just keep holding the Pan Left button and it will eventually unstick.

- The bottom right dirty laundry basket never gets picked up.

- The "end game" isn't well balanced, you tend to do things faster than laundry can "manifest"


Note: I might get to these after the jam is done and over..


The Original Vision

The original idea for Ghosts and Laundry was to actually have Ghosts in Pajamas  (because everyone does laundry in their pajamas, right?) coming into the Laundromat to deliver their dirty clothes. Then having your worker ghost begin to perform its duties by washing and folding the clothes only to finish off the loop by delivering the clothes to the "delivery bin" where they would wait for the owner to pick them up. 

From there you would be able to hire more ghost workers to help your one original worker on top of the other upgrades that are already available.


In Retrospect

I should have focused more on the AI, right now its a little naive in its implementation, and its implemented directly on the Ghost Object.

Currently it:

1. Checks to see if there's any open washers. If there is, and there's dirty laundry then it delivers the dirty laundry to  the open washer.

2. If 1 does not pass, then it checks to see if there's any laundry to be folded and then folds it if it's available.

3. Delivers folded laundry and then waits for either 1 or 2 to happen.

The AI being implemented on the Ghost Object, in the way that it currently is, makes it difficult to add more than one Ghost to the game scene. In order to keep the AI code on the Ghost Object and add more than one Ghost it would require an "intents" system, which would allow a ghost to indicate to other ghosts what it intends to do before doing it. Each Ghost has its own internal Timer that lapses every half a second or so before it decides what state it needs to be in. That timer also makes creating an intents system difficult, if each Ghost was instantiated at the same time then each timer instance would timeout at exactly the same time creating a race condition in the intents system.

I probably should have had a proper AI Conductor that kept track of all the Ghosts in the scene and then delegated states to them one after another, then an intents system and the internal timer system for each individual Ghost wouldn't have gotten in the way.

StatusIn development
PlatformsHTML5, Windows
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorGrumpyCatDad
Made withGodot
TagsIdle

Download

Download
Download for Windows 65 MB

Comments

Log in with itch.io to leave a comment.

(1 edit)

Cute game.

I'd like to have a marketing upgrade that increases the "manifesting laundry" speed. (Maybe a second one, which increases the amount of laundry that is spawned each time.)

Also one that increases price-per-laundry.

And please increase the max speed upgrade level to something really high.

These changes would increase the playtime a lot.

This is really cute! I like the idea and it's just kind of a nice vibing game.   Unfortunately, I can't get either of the speed-up buttons to work? The first two buttons work fine but no matter how much more money I have I can't buy a ghost or folding speed up.  It's a super cute idea though.

I’m glad you like the concept! I’m sorry those buttons weren’t working for you, I can’t seem to reproduce it on my end in Chrome but I’ll certainly add it to the list of known possible bugs.

It might be because I use firefox but I decided to come back and give it another shot and it's working perfectly fine!

Thanks!