Day limit
The game gives the player a fixed number of game days, and what they have done by the last one decides how it ends.
On this page
A day limit gives the player a set number of game days to reach a goal. Pikmin allows 30: all 30 ship parts give the good ending, and the ending after the 30th day is neutral or bad by how many of the others the player holds1.
Games
| Game | Year | How | Note |
|---|---|---|---|
| Star Trader | 1974 | a set number of years, 5 by default, ending on January 1 of the last | |
| Pikmin | 2001 | Ending by progress | 30 days to recover the ship's parts; all 30 give the good ending, and the 25 parts other than five optional ones give the neutral one |
Every claim about this mechanic, by game (4)
References
- ^ abThe game allows
MAX_DAYS= 30 days, counted bymCurrentDay(getCurrDay()returns it minus 1). At the end of a day with all 30 ship parts (MAX_UFO_PARTS) the good ending plays. Otherwise, a day count below 30 goes up by 1 with the end-of-day results, and once it has reached 30, the ending is the neutral one if the player holds at leastMIN_HAPPY_END_PARTS= 25 parts, counted without five named parts (the Nova Blaster, Space Float, Massage Machine, Secret Safe, and UV Lamp), and the bad one if not. Computed: of 30 parts with 5 not counted, 25 means every one of the other 25.CodeprojectPiki/pikminHow we know
9#define MAX_UFO_PARTS (30) ⋮ 11#define MAX_DAYS (30) ⋮ 13#define MIN_HAPPY_END_PARTS (25) // NB: also need to edit the hard-coded IDs in PlayerState::getUfoParts
include/GlobalGameOptions.h lines 9–13 at 9a21636 · upstream ↗ 1565 if (playerState->getCurrParts() == MAX_UFO_PARTS) { 1566 // we collected all the parts! play the good ending take off :) 1567 gameflow.mMoviePlayer->startMovie(DEMOID_GoodEndingTakeOff, 0, nullptr, nullptr, nullptr, CAF_AllVisibleMask, true); ⋮ 1569 } else if (gameflow.mWorldClock.mCurrentDay < MAX_DAYS) {
src/plugPikiColin/newPikiGame.cpp lines 1565–1569 at 9a21636 · upstream ↗ 1586 // advance the day and handle the end-of-day results entries 1587 gameflow.mWorldClock.mCurrentDay++;
src/plugPikiColin/newPikiGame.cpp lines 1586–1587 at 9a21636 · upstream ↗ 1624 // we've hit max days, and haven't collected 30 parts :( 1625 if (playerState->happyEndable()) { ⋮ 1627 flowCont.mEndingType = ENDING_Neutral; 1628 gameflow.mMoviePlayer->startMovie(DEMOID_NeutralEndingLeaveOK, 0, nullptr, nullptr, nullptr, CAF_AllVisibleMask, true); 1629 } else { ⋮ 1631 gameflow.mMoviePlayer->startMovie(DEMOID_BadEndingFailEscape, 0, nullptr, nullptr, nullptr, CAF_AllVisibleMask, true);
src/plugPikiColin/newPikiGame.cpp lines 1624–1631 at 9a21636 · upstream ↗ 273bool PlayerState::happyEndable() ⋮ 275 return mRequiredUfoPartCount >= MIN_HAPPY_END_PARTS;
src/plugPikiKando/playerState.cpp lines 273–275 at 9a21636 · upstream ↗ 1090 if (partID != UFOID_NovaBlaster && partID != UFOID_SpaceFloat && partID != UFOID_MassageMachine && partID != UFOID_SecretSafe 1091 && partID != UFOID_UVLamp) { 1092 mRequiredUfoPartCount++;
src/plugPikiKando/playerState.cpp lines 1090–1092 at 9a21636 · upstream ↗ 778int PlayerState::getCurrDay() ⋮ 780 return gameflow.mWorldClock.mCurrentDay - 1;
src/plugPikiKando/playerState.cpp lines 778–780 at 9a21636 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^A Star Trader game lasts a set number of years and ends when the next arrival falls in its last year,
Y9, after the January 1 report for that year and before the landing.PublisherPCC Games, 1974revisedHow we know
826 PRINT "THE LAST YEAR OF THIS GAME IS ";Y9;" BUT IF YOU" 828 PRINT "WANT TO QUIT BEFORE THEN, YOU CAN TYPE 'SAVE' AS" 829 PRINT "YOUR NEXT PORT OF CALL - THIS WILL PUNCH A TAPE" … 840 IF Y1<Y9 THEN 900
p. 25, lines 780–870 · archived copy ↗ 730 Y9=Y1+5
p. 29, set-up module line 730 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Revised after a check by a second AI model, 2026-10-22.
- ^When any player hasn't played before, Star Trader skips the setup questions and starts a game for 2 to 4 players with two ships each, three stars per player plus one, lasting 5 years.PublisherPCC Games, 1974
How we know
590 PRINT "HAVE ALL PLAYERS PLAYED BEFORE"; … 690 PRINT "2,3, OR 4 CAN PLAY" 700 GOTO 660 710 T9=2*P9 720 S9=3*P9+1 730 Y9=Y1+5
p. 29, set-up module lines 590–740 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^A custom game of Star Trader takes 2 to 12 players with at most 12 ships in all, 4 to 13 stars, any whole number of years, a cargo limit of at least 25 tons, a minimum star spacing of 10 to 25 light-years, at least one bid, and a profit-margin setting that the prompt asks to be 1 to 5 and the code caps at 5, with no lower bound.PublisherPCC Games, 1974 · What to Do After You Hit Returnrevised
How we know
970 PRINT "2,3,4, ... ,12 CAN PLAY"
p. 29, set-up module lines 960–970 · archived copy ↗ 1030 IF T9 <= 12 THEN 1070 1040 PRINT "I CAN'T KEEP TRACK OF MORE THAN 12 SHIPS;" … 1100 PRINT "FROM 4 TO 13 STARS" … 1120 PRINT "ENTER THE LENGTH OF GAME IN YEARS"; … 1140 IF X >= 1 AND INT(X)=X THEN 1170 … 1200 IF W<25 THEN 1180 … 1240 PRINT "MIN SPACING 10, MAX 25" … 1280 IF K9<1 THEN 1260
p. 30, set-up module lines 1030–1330 · archived copy ↗ Pick any length game (a million years?)
p. 96 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Revised after a check by a second AI model, 2026-10-22.
Sources
Code
- projectPiki. 2026. “pikmin: a decompilation of Pikmin (projectPiki/pikmin).” Commit 9a21636. projectPiki/pikmin @ 9a21636 · licence, all uses