UFO 50 is a collection of 50 retro-style games by Mossmouth. According to the in-game lore, those 50 games were created by a fictional game company called UFO Soft, which was obscure but ahead of its time.
Party House is a strategy game in UFO 50 where you aim to throw the ultimate party. Each day your guests make the party more famous and larger, allowing you to invite more special guests, but you also have to avoid shutdowns due to having too many trouble makers or overflowing your house. To win a scenario, you have to invite 4 extra-special guests called "star guests" in one party.
Information
- Version: game v1.9.5 + CoffeeTools v1.5
- Goal: Gold disk (complete all 5 pre-made scenarios)
- I added "Gold" to the branch name because Cherry completion (complete 5 random scenarios in a row) also counts as Gold in the game profile and it's actually faster. An optimal Cherry TAS would be just doing the same fastest completion 5 times, so I thought Gold would be a more interesting TAS.
- Applicable tags
- Heavy luck manipulation -- the entire run is about luck manipulation
- IGT: 5:43.350
- Human WR: 13:00.556 by Spooty
General Comments
Game
Refer to the UFO 50 Wiki page.
Strategy
For simplicity, I will call "adding a guest to the rolodex" as "buying" them, even though we're really just doing phone calls and telling them that our party is so cool and they should join us.
In general, an effective Party House strategy goes like this: buy a few guests that give cash, then guests that mitigate troubles (Security Guards, Cute Dogs, etc.), then guests that give lots of popularity, ideally those that synergize with each other, then finally Star guests and some other guests that make it easy to bring them in.
This TAS roughly follows the same guideline, except I usually skip trouble mitigators and fetchers and just get lucky instead.
The choice of guest types matters greatly since we're also looking for fastest completion. It would be best to pick the guest type that gives the most popularity values (pops) and is not too expensive. On the other hand, some action-based guests like Greeters and Photographers take a long time to use their abilities, as well as Mr. Populars and Celebrities who automatically waste 100 and 200 frames on entry, so relying on them too much is not worth it over using someone else and taking a few more in-game days instead.
On a smaller scale, it takes 8 frames to score or pay a guest's base pop if they have any; same for base cash. If there are any guests that award bonus pop or cash, each such guest type takes 30 frames. Therefore, even if two different runs with the same strategy end in the same number of days, the time can differ by a few seconds depending on who got into the house each day.
RNG
So I just need to manipulate RNG and bring the best guests every time, right? Unfortunately, that's not possible due to how RNG works in this game.
Each day starts by randomly shuffling the rolodex, and inviting guests simply add them one by one in that order, skipping any that are banned or already invited (e.g. by fetching). Kicking guests out, fetching, peeking, etc. do not change the order; the target guests are simply marked as kicked, invited, peeked, etc. So any manipulation for the guest order must come before the starting that day.
To manipulate the RNG, we can:
- buy a guest, which advances the RNG 4 times for Old Friend, some amount for Rich Pal (I didn't look into them since I never buy them in this run), and 1 time for the other types of guests;
- start a day, which advances the RNG (rolodex size - 1) times due to the rolodex being shuffled;
- try to use the Magician's ability, which advances the RNG once even if it fails due to having no substitutes available.
...and that's it. Random input or idling doesn't advance the RNG. Magician is only available in scenario 5, so mostly you can only buy guests to manipulate RNG, which can't be done a lot, takes more time, and makes it less likely to invite the guests that you really need because the rolodex gets larger. Even in scenario 5, RNG manipulation via Magician is coarse-grained, because you can only affect shuffling the rolodex, and you can use it only once if there actually are substitutes available.
Therefore, the best we can do is pick a good seed which resets at the scenario selection screen, and pray.
Brute-forcing
To find the good seed, I ported the relevant game logic, decided on the purchasing strategy, and ran a brute-force that simulates each seed and estimates the number of frames taken. The estimate isn't very precise, but it was good enough since lower estimates generally gave fewer frames when replicated in the game. Codebase can be found in (TODO: add link). General information about the RNG in UFO 50 can be read in the Game Resources page.
Level-by-level Comments
Scenario 1: Alien Invitation
I start with 2 Rock Stars for early money. Since they are trouble makers it's usually advisable to get some trouble mitigators like Hippies or Security Guards, but since this is a TAS, we can ignore those and just get lucky. Ticket Takers give the same amount of money and are not trouble makers, but Rock Stars turned out to be a better choice, maybe because they also give decent amount of pop.
Comedians will be the main source of pop. Each comedian takes 1 cash, and if the house is full, gives 5 pop. I grab all 4 of them and get lucky enough for full houses, while hoping to get many Comedians into the house.
Since this is the intro scenario, we only have one option for Star Guests, so I get 4 Aliens eventually and finish it.
I also tried adding Drivers to fetch some missing Comedians, but that never resulted in a faster completion.
Scenario 2: High or Low
I start with 2 Gamblers for early money since they turned out to be a better choice over Gangsters.
For pop, I get 2 Cute Dogs and 4 Writers. Each Writer gives 1 base pop + 2 pop for each trouble in the house. Each Cute Dog cancels out 1 trouble so that more trouble makers can get into the house. So they synergize greatly; each writer can give 9 pop in the best case with 2 Cute Dogs and 4 troubles. Cute Dogs' 2 pop is also pretty good for being supplementary guests.
For stars, I take 4 Mermaids because they are much cheaper than Superheroes. Each Mermaid takes 100 frames on entry though, so I get lucky enough to avoid them until the winning day. 100 frames of delay is worth taking as long as you can shave off an extra day by saving 15 extra pop.
I also buy 2 Old Friends on the winning day to manipulate the RNG.
Scenario 3: Best Wishes
I start with 1 Rock Star for cash, because I don't need that much money this time.
Three types of guests are at play to generate enourmous pop quickly. First is Stylists, which can increment one guest's base pop by 1 for the rest of the scenario, up to 9. Then comes Cheerleaders, which can refresh the guest actions for all other types of guests. That means each Stylist can style a guest once again. 2 Cheerleaders and each Stylist gets to style 3 times. I buy 2 Stylists and 2 Cheerleaders, and upgrade one Cheerleader's base pop to 9 just in 3 days since buying one. The reason why I upgrade a Cheerleader instead of a Rock Star will be explained soon.
By the time the Cheerleader is upgraded, I add 1 Photographer. Each Photographer can take one guest and immediately score their pop & cash gains. That guest still scores pop & cash on their own when the party is closed. Of course, Photographers are affected by Cheerleaders refreshing the actions. Now I get lucky for all 2 Cheerleaders and 1 Photographer, and take the fully upgraded Cheerleader's photo 3 times. As a result, that Cheerleader alone can score 36 pop in total.
However, each photography takes a long time. If a guest has base pop and no base cash, taking the photo takes around 100 frames (not exact). If they have both base pop and cash, it takes around 150 frames. Even worse if they also have bonus pop or cash. Since cash is not of utmost importance by the time I am ready for the 36 pop, Upgrading the Rock Star instead for 8 additional cash at the cost of 200 more frames was not necessary.
Upgrading a Wild Buddy would take 1 less styling, but they are really bad guests. Requiring a fully upgraded Wild Buddy would mean you have to be extra lucky to not have even more trouble makers and be forced to close the party early.
Despite the total delay of 600 frames, it was worth it compared to just using more Stylists and Cheerleaders to upgrade multiple guests.
For stars, I take 4 Dinosaurs. They are the cheapest Star Guests in the whole game, and one of the only two Star Guests that you can buy twice in a single day. But they are also trouble makers. Since you can only let 2 trouble makers in by default, I also buy a Counselor, who can remove the trouble status of everyone in the house for that day.
Scenario 4: Money Management
I do the same as scenario 1, but with 1 Gangster instead of 2 Rock Stars, and 4 Dragons instead of Aliens. Dragons are the other one of the two Star Guests that you can buy twice in a single day.
Scenario 5: A Magical Night
2 Gamblers for cash. I also buy 1 Magician for RNG manipulation; refer to the "RNG" section above for details.
For pop, I take 4 Introverts. Each Introvert gives 1 base pop + 1 pop for each empty slot in the house. So once the house is moderately big, Introverts can give massive pop boost by closing the house earlier than usual. One of the days in this TAS ends with just 2 Introverts and no one else, and I score 24 pop that day. As a side benefit, since the house ends up with fewer guests, it takes fewer frames to score pop and cash.
The two Star guests have equal cost. I choose Ghosts since they can kick other guests out, including themselves, giving more room for Introvert bonuses. Until the winning day I just let the Ghosts kick themselves out. Sometimes kicking a trouble maker may be a better choice, but brute-forcing was already too complicated with all those Magician manipulation.
Credits
Input ends by going back to the scenario select screen. Idling there initiates the credits sequence, though I didn't show that in the temp encode.
Potential Improvements
There might be better strategies for scenarios 4 and 5. I feel like scenario 5 is especially flexible.
Since buying guests affect RNG, subtle differences like buying an extra Old Friend or buying necessary guests in different order or days can make a difference. I've brute-forced several different setups in this regard. To save at least a few seconds you would need to shave an extra day off, which I think is very rare at this point.
Suggested Screenshots
TODO: the last day of scenario 3
You can take a screenshot in CoffeeTools by saving a state.