Image size: ~279KiB. "Papers, please" CLI clone. USER: nobody.
3.9K
docker run -it --rm --log-driver none --read-only --net none defnotgustavom/officer
"Officer" is a story-based RPG (role-playing game) based on the game “Papers please”. Although we have borrowed concepts such as checking documents and secret missions from the original game, the gameplay and story of “Officer” is completely original.
Year 2077: Earth is opening after 30 years of self-isolation
Location: Earth Border
Role: Border officer, B-263-54
In this game, players take up the position of a border officer to Earth, where it is opened after 30 years of isolation. By cross-referencing the documents presented by visitors and data provided by your superior, players have to approve or disapprove visitors’ entry to the recently opened Earth. As the difficulty rises (weeks elapsed), more details will need to be inspected by the players and more events (secret missions) will be prompted.
Players will be provided with related information, such as years till expiration and planets to disprove, to cross-reference against this passport. As more weeks have passed, there may be more than one document to check, so players will have to input “A” or “B” to access (print out) different documents. This function can also be used to access the data/documents provided by the superior.
After each week, players’ performance will be evaluated by the time spent and the accuracy of approvals. Players are incentivized to reach a high mark as our rare condition (caused by The Infected blood) requires an expensive medicine (although money will evanually run out no matter how well we perform) and food will take up a majority of our paycheck (starvation can be one of the endings).
Normal encounters: 40% should be disapproved
Week 1)
Introduction to the setting and job. Only humans should be approved. (easy, introducing how to play)
Week 2)
Only: Humans
Aliens with passports from approved countries/ planets with entry passes. (A rebel,alien spy, introduces us to the existence of The Rebellion by handing us a pamphlet.)
Week 3) Only: Humans with passports from approved planets
Aliens with passports from approved countries/ planets with entry passes. (The last case will be an encounter with a rebel.)
A major twist is revealed by a letter from the player’s mother. 300 years ago, Earth was origainlly occupied by the alien species, The Infected, but was since taken away by humans. As victory is often written by the victors, history books has referred to the deportation of “The Infected species” in 1800s as a victory of humans defending their motherland against external aliens powers. Even the name “The Infected” is to associate the species with a negative stigma to further alienate them from Earth.
In the last part of the letter, it is also revealed that the player secretly bears the bloodline of The Infected. The player will then be more incentivized to join the rebellion (secret missions) against humanity, or even feel guilty about prior disapproved entries for The Infected.
Week 4)
Only: Humans with passports from approved planets
Aliens with passports from approved countries/ planets, with approved entry passes. Name is not mentioned on ‘The Wanted” list (The last case will be the encounter to introduce the Earth officials visit)\
Week 5)
Only: Humans with passports from approved planets
Aliens with passports from approved countries/ planets, with approved visas Name is not mentioned on ‘The Wanted” list (Includes the 3 cases) (Gameplay will not be the highlight of this day as to let the story shine.)
Prerequisites: False approved alien entries/ disapproved human entries x times
Died immediately- killed on the spot by superior (will be warning prior to this event)
Prerequisites:
Run out of money (poor grades in previous weekss- time, accuracy...)
Events:
Starved in the next week
Prerequisites:
a) Encounter “invitation from assassin” (x approved alien spies entries)
b) Approved all 3 (tbd) Earth officials to Earth
Events:
Awarded medal of honor in week 6
Died in week 7(final week). Killed by Office Kim.
Prerequisites:
a) Encounter “invitation from assassin” (x approved alien spies entries)
b) Did not approve all 3 (tbd) Earth officials to Earth
Events:
Officials were ambushed in space by assassins
Died when week 6 ended- killed by superior
Prerequisites:
a) Encounter “invitation from assassin” (x approved alien spies entries)
b) Disapproved all 3 (tbd) Earth officials to Earth
Events: All 3 officials were ambushed in space by assassins
Ruling party was overthrown
Rebellion was a success
You were celebrated as a hero.
Prerequisites:
Accepted the bribey in week 3
Events: Killed by Officer Kim for treason.
Prerequisites:
The user manually changed the amount of money in the file (outside of the game).
Events: Game over.
Players may struggle to pick a stand or wish to play out differnet scienarios/endings, so we believe our game has a compelling story and high replayablity. Our game also has different elements of programming that meets the requirements as explained as follows.
List of features
Requirement 1- Generation of random game sets or events
Random game sets:
Entrants’ information including name, passport number, gender will be created in the program and stored into arrays. For each entrant in the game, their information will be randomly drawn from the arrays. False passport information (E.g. not existing country or typo) may also be randomly drawn from the list. For this situation, the player may consider to disapprove of its entry. (60% True, 40% False)
Requirement 2- Data structures for storing game status Array and struct will be used for storing the random cases.
E.G.
struct cases { // Stored into struct cases.h //PP = passport std::string icon; std::string PP_name; std::string PP_gender; std::string PP_birth; std::string PP_issue; std::string PP_country; std::string PP_number;
//EP = entry pass
std::string EP_name;
std::string EP_gender;
std::string EP_birth;
std::string EP_country;
std::string explanation; //For invalid passport or entry-pass
//Return true if no erros occurs in the EP and PP (consistent information)
bool vailidity;
};
record[0].icon = "Human - Male";
record[0].PP_name = "Lian Ho Yeung, Michael";
record[0].PP_gender = "Human - Male";
record[0].PP_birth = "1998-04-22";
record[0].PP_issue = "2043-09-31";
record[0].PP_country = "Earth - China";
record[0].PP_number = "3035714260";
record[0].EP_name = "Lian Ho Yeung, Michael";
record[0].EP_gender = "Human - Male";
record[0].EP_birth = "1998-04-22";
record[0].EP_country = "Earth - China";
record[0].vailidity = true; \
Dynamic array structure will be used to store the probability of the random cases. As some of the game status data will only exist when drawing the cases.
E.G. The p1 variables in icon function , which is a probaility to decide which icon to be printed in the icon function. After using the p1 variables, it will be deleted and release the memory.
For the end of each week, players can save their gamestatus The save will be stored into a text format file. The format of the game save is “week money wrongattempts” in a line. It is designed not to encrypt deliberately so that the players can get a particular ending of the game. Easter egg endings are also designed for players who modify the money data, gameweek.
Format of the game save is as follow:
5 0 10 (Week, Money, Wrongattempts) in save1.txt
The program codes will be saved in multiple files based on the different functions. Main file for programming the functions of the main function including start(), exit() when executing the game program.
Gameplay file for programming the main game-play and including the dialogues that provides the introduction and different special rules each week.
Event file for programming some special event that may happen on a particular gameweek. Those event functions will be called on particular game-weeks.
Ending file stores different endings of the game and the functions inside the ending files will be called when the player meets all the prerequisites of the ending.
Saving Load files will involve the saving and loading function of the game status.
Content type
Image
Digest
sha256:99168b415…
Size
306 kB
Last updated
over 3 years ago
docker pull defnotgustavom/officer