Papers, please · The devlog

From November of 2012 to March of 2014, the incredible talented indie developer Lucas Pope was covering the development of his famous Papers, please in an indie dev forum.

This website is a compilation of all the articles Lucas wrote there.

2012 November...

2012 November 14

Papers, Please



>> Release info in the announcement post here <<


Old Stuff

Ever taken an international flight to a foreign country and felt nervous passing through the immigration checkpoint? Papers, Please aims to turn that around and put you in the role of immigration inspector. Instead of working in a nice modern airport booth, you're assigned to the Ministry of Admission in the war-torn dystopian nation of Arstotzka.

The glorious and free country of Arstotzka has just ended a 6-year war with neighboring Kolechia and reclaimed its rightful half of the border town, Grestin. Your job is to control the flow of people entering the Arstotzkan side of Grestin from Kolechia. Among the throngs of immigrants and visitors looking for work are hidden smugglers, spies, and terrorists. Using only the documents provided by travelers and MoA's primitive computer dispatch system you must decide who can enter Arstotzka and who will be turned away or arrested.

Ok, that's the setup. Some elements of this are pretty similar to my other game, "The Republia Times". I'm a sucker for dystopian settings.

Let's have a mockup:


Lookin a bit empty at this point. The enemy country is on the left and your country is on the right. The top of the screen is the actual border checkpoint and the bottom is inside your booth. Travelers will queue on the top left, pass through your inspection building, then on to enter Arstotzka on the top right. People will enter the inspection booth, you click on their documents and vet them by looking for discrepancies, then you either approve their entry visa or deny their crossing (with or without prejudice).

A little closer:


I haven't completely worked out the precise mechanics yet, but it's probably going to boil down to inspecting all the documents and trying to find any two pieces of information that don't match. For example, if a traveler's passport says they weigh 70kgs, but their current measured weight is 74kgs, you have reason to be suspicious. Highlighting these two pieces of information in the UI will open up further options. In this case, you now need to run a metal detector over the guy or even strip search him. Turns out he just gained some weight so he's clear to pass. Enjoy your time in Arstotzka.

Motivation
The last few games I've worked on have been programming-first, art-second. This time I'm going to try to focus on the art. I'm envisioning lots of cool little pixel portraits and documents and not so many technical challenges. A big part of the game is the traveler portraits so I want to spend a fair amount of time creating those. I'm also considering a system to create face variations from my initial drawings. I guess that would be a technical task so we'll see.

More About the Art
I don't have any formal art training so I'm just gonna copy what I see elsewhere. One thing I like about some of the better pixel-art games is the limited palette. Instead of choosing a global palette though, I'm going to try limiting individual objects or backgrounds to ~3 shades. That's not a hard rule and if it doesn't look good I'm flexible. You can already see a few places in the mockup like that.

For the initial version of the game I'm going to do everything in mid-res pixel art. Pixel art is just way easier, faster, and more enjoyable for me. When it comes to most commercial games however I think pixel art may not be a good choice. It works great for indies and people close to the scene, but my feeling is that most mainstream players prefer a smoother non-pixelated look. I've made some rough experiments with converting the small character portraits to full vector images and they don't look half bad. If I decide to turn this in to a commercial game it's possible I'll do that for all the art. I kinda did the same thing with Helsing's Fire and that turned out ok.

Technical
I've got a really sweet custom C++ engine built on SDL just sitting here but I'm planning to use HaxeNME for this project. I've done 2 flash games before and really like the fact that they're so easy for others to play. HaxeNME looks interesting and is a slight hedge on this game getting good enough to sell as a native app. Actually I'm a full-time indie developer so I'm really hoping to sell the game when it's done. If it's any good. Next point..

DevLog
I've made a bunch of games but never kept a devlog before. I'll do my best to keep this thread updated with screenshots and builds. I don't expect the entire game to take more than a few weeks months to develop. I'll probably edit that sentence out in a few months. Any feedback is appreciated.

______________________________________________________________________

There are updates throughout the thread, but I'll just put this here:

>> Get the Latest Build <<

(Currently in beta so missing some stuff)

______________________________________________________________________

Want your name in the game?

I'm including real names for the immigrants. Add yours here:


dukope.com/usemyname


______________________________________________________________________


Papers, Please on Steam Greenlight


Please vote!

______________________________________________________________________

2012 November 15

Thanks guys.

Panurge, I just played through your Tower of Clavius Boon and loved it. Completely hilarious with great writing. Looking forward to the rest of it.

2012 November 16

Haha, nice concept. So the whole game will take place in one setting then?

More or less, yeah. There will be some activity in the border checkpoint area at the top, but most of the focus will be in the booth.

If the inspection gameplay works out ok, I'm also thinking of incorporating the contrary mode where you work as a smuggler/spy-chief/terrorist-leader for the enemy state. You'd be assigned tasks ("smuggle 20kg of bullets"), recruit agents to pass through the border, set them up with fake documents, hide contraband on their body (you know where), and send them through the checkpoint. I guess that would take place in a different setting.

A possible extension of that is to have player-created smugglers in the pool of travelers passing through player-controlled inspectors. And THAT... might make a half-decent play-by-day multiplayer game.

2012 November 17

More progress on the mockup (slightly too wide for the forum, scroll to see it all):



At the top you can now see the queue of people and several guards. I'm hoping to have all this animate naturally. It'll probably just look like an unholy mess of swimming pixels but I'm gonna try it anyways.

When called, one person will walk into the inspection booth and appear close-up at the bottom. Likewise anyone you approve for entry will visibly leave the booth and walk off to the right. If you reject someone's entry they may be sent home or arrested. In these cases they'll leave the booth back to the left side of the checkpoint. The passageway off the top leads to jail so the plan is to have the guards drag any smugglers/spies/terrorists up there.

Action
I'd like to include a small action element in the game and from this mockup you can kinda see where it would happen. The wall in the middle is quite tall, but not impossible to climb. If one of the travelers gets restless or desperate they may try to run past the guards, scale this wall, and escape into Arstotzka. If they make it over this wall, an action sequence begins where your cursor becomes a sniper crosshair. You'll have about 3 seconds to shoot them with a tranquilizer before the guards on the right open fire. So you get one last chance to save their life. Or maybe they're a suicide bomber and you're really saving the guards from instant death.

Misc
In the inspection screen, I've added the speaker (to ask questions and view the transcript) and the computer teletex handle (to request information from MoA computers and view results). These both show how many items are available.

Issues
Also in this mockup you can see the tight squeeze for the documents window. I really want to be able to inspect 2 docs at a time, but with this layout there's not enough room. Gonna have to think about how to handle that better.

2012 November 18

That's one helluva clever idea for a game. Really looking forward to it!

Thanks Eigen! FWIW, I consider your Pioneers art utterly fantastic so I'm really happy to see you post here.

Animation


I spent some time today with the traveler animations. Wasn't sure if you could get semi-natural idle, walk, run cycles out of a 1-color 8x18 pixel character. Not sure I succeeded but it's close enough for now. Searched around for a good sprite anim editor before settling on Pixen (OSX). To be honest I'm not that happy with it but it's better than Photoshop for animation. My biggest gripe is that there's no way to preview multiple sequences together. Which leads to...

Programming
I think I'll start putting together some code to preview animation sequences. The current animation doesn't look that great yet but I can probably improve it with better tools and more time. To that end I'm gonna dive into HaxeNME and try to get a simple animation previewer up and running. Just need something to load in multiple animated gifs and string them together with individual repeat counts. Or something.

2012 November 18

This looks really good and reminded me a lot of the original prince of persia's characters' running sequence. Are you using rotoscopy as well?

Hah, thanks! No rotoscoping, I just drew those frames by hand. With so few pixels it's pretty easy to iterate on. Now that you mention it though, rotoscopy is exactly the look I'm going for.  I kept thinking "natural" animation but what I want is that classic low-res rotoscoping feel. I'm glad you mentioned this cuz now I know what better to aim for Smiley

If your resolution is not set in stone...I hope you don't mind me editing it's just that I've wrestled with limited screenspace a lot.

I was thinking it best to stick to 16:9, but after seeing your mockup I'm not so sure anymore. 3:2 gives a lot more room to work with. I probably don't know enough about what kinds of documents the game will include to decide right now but I'm gonna experiment with 960x640 as you suggest. Thank you for the ideas! I absolutely don't mind you editing the mockup and I really appreciate the help.

Btw, this is exactly the kind of challenge I enjoy. I'll take a limited resolution, palette, or game mechanic over unlimited freedom any day. Given Pioneers resolution and (awesome) palette, I'll bet you're the same way Smiley

2012 November 19

This looks awesome! I really liked The Republica Times, looking forward to seeing this develop.

Thanks spolvid. This game will probably have a similar flavor so I hope you enjoy it too.

Slightly updated layout with taller resolution:


Eigen's suggestion prompted me to keep experimenting with the mockup. With a 3:2 aspect, there's room to rearrange the inspection booth a bit and give the doc inspection area more space. Each document can be maximum 150x215 and 2 documents can be visible at any time. Teletex query results, the audio transcript, and the rule book will behave just like documents. This'll be nice for consistency and having the docs side-by-side makes it easier to find and highlight discrepancies. 150x215 is not a lot of space but my feeling is that the docs shouldn't be too complicated so hopefully it works out.

Closeup:


From left to right there's a clock, scale readout, microphone, computer screen, and notebook. Not sure what to do with the clock just yet but there'll probably be some time component to the gameplay. Scale shows the person's weight, mic will show the audio transcript document when clicked, computer screen will show the teletex document when clicked, and the notebook will show the rule book when clicked.

Rule Book
In order to establish the baseline regulations for which documents and information a traveler must have to enter, there's a rule book. This lists things like "Traveler must have an entry permit", "Traveler must be over 18", etc. If a rule is being broken, it can be highlighted for further options. One example would be the "Traveler must be over 18" rule. If you inspect their passport and calculate their age to be < 18, you can select both their passport birthdate and the age rule. This will highlight the discrepancy and open up a teletex query or a question you can ask the traveler.

2012 November 22

Looks rather interesting. I'd have to see how it plays first to make a full assessment when it's done, but I certainly have respect for the unique dynamics.

Thanks Shine and makerimages. After reading this I figured it'd be best to prototype the gameplay ASAP. Instead of spending more time on the animations (which I'm pretty sure will work out ok), I've moved ahead to the core mechanics (some doubt here).

First Build!
In the last couple days I've gotten up and running with HaxeNME. You can "play" the first build here:


Drag And Then Drop
I originally intended to have the documents just be clickable on the left; after which they show up in one of 2 fixed-width columns on the right. Nice and simple. Unfortunately that felt a bit lifeless when I prototyped it. There was also the general problem of space; each document would be limited to 150 pixels wide.

Instead there's now full drag-n-drop across the counter and desk. I think this solves the space problem nicely as you can always shuffle things around to see large documents. It also feels a lot cooler IMO. Much more like actually inspecting a pile of papers and a little bit fun in it's own right.

Haxe/NME
I gotta say, HaxeNME is pretty nice. There are a few quirks but for a non-taxing 2D game it's great so far. With MonoDevelop (on OSX) and the HaxeNME extension there's tab-completion, nice error messages, and one-click building for flash/mac/windows/etc. Some stuff doesn't work quite the same on all platforms but it's as close to write-once/run-everywhere as I've seen.

Curiously, one of the trickier things to get right was the double-size pixel rendering. Flixel makes this easy as it blits everything to it's own sprite, then scales that up. You can do something similar in vanilla HaxeNME but it's not really optimal for the native targets. I ended up scaling the root DisplayObject, snapping pixel locations while dragging, and writing custom functions to generate nearest-neighbor rotated bitmaps at half-res. Also, I'm using a bitmap font class (pxBitmapFont) since rendering .ttfs seems to always have some level of anti-aliasing.

Procedural Generation
I really like procedural generation for puzzle/logic games like this. For one, it keeps the game interesting for me personally during development. For another, it makes generating lots of content much easier. In this case, the travelers will be generated randomly from a set of rules. My next steps will probably be fleshing out the game world and working out what these rules are.

2012 November 22

Thanks for the feedback everyone!

* What if I allow everyone into the country? Are there any penalties for doing that? If so, what are they.
* What happens if I don't allow anyone into the country? I mean a total blockade.
* As the player, what is the end goal? I mean, at what point is the game considered completed.

I think the gameplay will probably be divided into days with daily quotas. I'd say your goal is to process people as quickly as possible and not make any mistakes. There'll be a proper narrative and story arc to tie the days together. The low level day-to-day stuff is random within parameters; the story is scripted.

If you don't let anyone through, you'd probably get fired after a few days. If you let everyone through, you'll be responsible for spy/terrorist/smuggler activity. I'm thinking to show performance reports at the end of each day to let you know how you're doing. Some results will be more immediate. For example, a terrorist suicide bomber may detonate onscreen immediately after he passes through your booth. Bad lookin out.

It would also be interesting if the player has to decide whether the picture on the passport is of the same person as the one standing in line.
For even more complexity make the passport picture always appear younger and with a different haircut.

Actually this is exactly what I'm planning. Even with the mockup I found it fun to dart my eyes back and forth at the passport photo and the dude's face. Same person? Possibly... A proper immigration inspector maintains a suspecting, skeptical eye. Changing up the photos with different glasses/hats/clothes/age should keep it interesting. Which leads nicely to...

Wanted Criminals
The computer terminal, when inspected, will display multiple screens that you can flip between. One of these screens will contain a photo list of known spies/terrorists/criminals/smugglers. As you vet each person, don't forget to compare their face against the current bulletin photos. If you find a match, highlight their face and the photo to reveal an "arrest this punk" option.

Some kind of "urgent bulletin" system built on this could create pretty cool Bourne moments too. You may get an urgent bulletin and expect the criminal to show up (in disguise) within the next few minutes or not at all.

Forged Documents
Along with a list of basic regulations, the rule book will also contain samples of many common documents and passport covers from all surrounding countries. It'll be up to you to cross reference these samples to make sure the traveler's documents aren't forgeries. What I like about this is that after a few days, you'll have memorized how the most common docs should look and won't need to waste precious time referencing the rule book.

2012 November 24

I also threw some documents around, and I personally dont like how the documents move out from "under the desk view" to the open area. Maybe you could do it so that you can drag the closed document to the open area and if you release it there, it opens up?? Meanwhile, I`m really looking forward to this game.

Well damn. That's one of the things I was quite happy with. You don't have to drop the document first before seeing it on the desk. Makes quicklooks easy and enables placing it right the first time if you decide to inspect it. I thought it was kinda cool how it dragged straight across but I concede now that maybe it's a little weird.

You Look Honest
New build:


I've added initial versions of the rulebook, audio transcript, and telex dispatch. I've also hard-coded a traveler so you can poke around in his documents a bit. There's nothing to do except that actually. Haven't gotten to the part where you approve/deny his entry.

This is early days so it's all very rough. There's no story, interesting accouterments, or fun. A lot of stuff is incomplete and confusing which I realize is a bad introduction to the mechanics. The final version will build up gradually and introduce these concepts with glorious clarity. For now, study the rulebook first.

Challenge!
The traveler in this build has 4 errors in his documents. The first person to find and post them here will get a free copy of the game when it's released! Please use a tiny font to avoid spoilers.

2012 November 24

The correct answer

Aaaaaaaaand DONE.

Nice work Panurge! Fast and precise. I think there may be a spot for you in the Ministry.

2012 November 25

Faces
Drew some more traveler faces:


Even though the colors aren't great and the detail level is inconsistent, this is the general style I'm targeting.

Since I won't be able to draw hundreds of unique faces for an endless supply of travelers I'll need some kind of procedural system to generate variations. Originally I thought I could map the face onto a rough triangle mesh and just push a few of the points around. After looking at the drawings though I don't think that'll look any good or give enough variety.

Instead, I experimented in photoshop and came up with a much simpler technique that divides each face into 3 parts:
1. head & shoulders
2. both eyes
3. mouth & nose
#1 defines roughly where the mouth, nose, and eyes should appear so it's possible to take a random #2 and #3 and place/scale them into the generally correct place.

To get something like this:


Hmm... Bro seems fine but sis looks a little off. And using the entire head&shoulders means the silhouette doesn't have any variety. Maybe splitting the shoulders out or adding some headgear overlays would help. But they do look human; and pretty different from the source.

This technique makes generating "slightly wrong" variations for forged documents really easy. And if I'm able to draw young versions of all the original faces, those pieces could be slotted in the same way for older documents. Could also add metadata to the faces ("HasGlasses", "WearingHat", etc) that would make adding accessories possible.

2012 November 26

Got the face generator working. And now. It's time. To dance.




To get 64 generated faces I first draw a sheet of 4, then add a separate layer marking the eye area, nose+mouth area, pupil locations, nose location, and mouth location. Then the game loads those up, cuts out bits from different faces and pastes them together.


Pretty happy with this given how simple it is. If I draw just 8 sheets there'll be 32,768 unique faces.

The one thing I'm gonna do from here is try marking the head and shoulders separately so those can also be varied.

2012 December...

2012 December 02

100 procedurally-generated immigrants and their passports:


100 more here

These are based on 7 passport styles, 8 original male faces, 8 original female faces, and random first/last names harvested from wikipedia. I'll eventually have 32 original male and female faces each to reduce some of the repetition visible here.

2012 December 02

So you could end up with idunno...Michael Jackson standing behind the desk???

Heh, I only mined names from the pages specifically about names. But I just checked and "Jackson, Michael" is a possible combination from what I've got so I guess the answer is: sorta Smiley

Might be interesting to have known names with matching portraits though. Either as a story point or just an interesting detail.

2012 December 03

Thanks for the encouragement everyone!

Just for funsies:



Haha. "If in doubt, keep em out." Indeed.

Played around with some basic animations for walking up to/away from the booth. It's just 2D fakery so I have to black the character out during the movement. Gonna try to explain that with some lights-off/lights-on effect.




The colors went pretty shit with my [screencap -> .mov -> frames -> .gif] capturing technique. Next time I'll write frames directly from the game.

2012 December 04

Have you tried some kind of fade-in from black, so that it looks like they stepped from the shadows? Or would that be impossible given the limited palette? Anyway, the distortion effect looks convincing, good job! Smiley

Thanks!

I'm not using a palette except as an artistic limitation so there's no technical reason not to have them fade in gradually. I tried it out though and it didn't feel quite right. I think because it is a limited palette, a fade through so many shades looks out of place.

Today I got a better screencap system working and tried a shutter reveal:


*SHICK* * SHICK*

2012 December 05

The vertical movement makes it look like they are entering and leaving on a staircase or something. The turning looks good though.

Unlike nice places where the inspector sits at your height, in Artstotzka inspectors sit high above hopeful immigrants in order to maintain a downward gaze. IOW there's a small step up to reach the booth.

Hmm, honestly, I liked the pseudo-fade in and out transition you had, having the shutters go up and down for each person seems a bit odd-- that's more physical effort than any bureaucrat should want to go through.  Whereas with the fade-in, it seems like they only take on life (to you) when they are right in front of you, demanding your attention.

Here's both:



I like the hostility of the shutters. It seems a bit much here but there'll be some time between immigrants so the shutters won't be going up and down constantly. If the player has control of the shutters they could choose to make people wait or cut them off early. Might be fun. The simplicity of the fade also feels good though. Not sure which one I like better right now.

Do want! When new release?? And- I saw a Oliver Campbell there !!!

Sorry, I completely missed this post. I'm probably gonna work on the document generation and discrepancy highlighting next. Not sure when those elements will come together into something playable that I can upload. Hopefully not more than a few days.

2012 December 05

How would it look if they faded in after the shutter opened?
(reasoning behind this being that they walk up to the shutter after it's open)

Well the shutter is a means to explain the shadowing. Doesn't help with that if they fade in separately.

If the shutter stays, could you possibly try to make it so that people seem annoyed or frustrated when you shut the shutter on them?
Maybe even bang on the shutter some?

That's an awesome idea and a great reason to keep them. I can add a hand banging against the shutter if you take too long to open it or close it without giving them their documents back.

Also...These look mostly right and all but I think I see two other things wrong:
-His passport expired three years ago
-He's supposedly only about 6 months old according to the DoB


The date format is 'year.month.day'. I'll have to make that somehow more clear in the game.

You could have the shutters slam shut when someone tries to make a run for it, might add a little to the feeling of danger.

Heh. Another good idea. I was also thinking it'd be cool to have someone pull a gun on you in the booth if you deny their entry. Closing the shutters quickly would be a way to save yourself.

2012 December 05

Is there a reason for that?
Why not just make it a more sensible month.day.year or day.month.year?

I wanted the dates to feel as if they're from an alternate timeline (just 2-digits), and foreign (YY.MM.DD). I'm American and prefer MM.DD.YYYY but I live in Japan where we use YY.MM.DD with a 2-digit emperor year. From the choices I figured YY.MM.DD would have the least chance of being confused for either DD.MM.YY or MM.DD.YY and so would work equally well for EU and US people. Got that one wrong. Mostly because:

Also, that ISO 8601 link also mentions that the year for a year/month/day format is 4 digits, not 2.
...Of course having the year as 2 digits instead of 4 makes it ambiguous again in some cases.

You're both right and I'd guess this is the main problem. In the current build I intentionally chose a date (62.11.23) that could only be interpreted in one way, but dates are an important element of the gameplay and I don't think it's worth the confusion. I'm gonna try to fit the full 4-digit year in there and possibly choose the format based on locale so you'd get either DD.MM.YYYY, MM.DD.YYYY, or YYYY.MM.DD depending on your location.

2012 December 08

This is a wonderful idea. Just playing with the early build I get a good sense of how this will develop. Really looking to playing this down the line!  Gomez

Thanks!

Discrepancy Detected

There's a small problem with your documentation Ms. Jensen. If that is your real name. Which it isn't.



I don't want to strip search you ma'am but it's the only way to be sure about this typo on your entry permit.

Inspect Mode
Clicking the bottom-right button puts you in "inspect" mode. Highlight any two pieces of information and if there's a discrepancy you'll get more options. I like the setup here because every kind of error can be pointed out using this simple interface. For example, if the immigrant is missing an entry permit you can:
- Highlight the empty counter where there should be an entry permit
- Highlight the rulebook line that states "All travelers must have a valid entry permit"
Those two facts signify a discrepancy and you'll be able to ask them wtf they're thinking trying to pull this nonsense when you're on duty this is serious business c'mon be serious.

Forgeries
Along with invalid data, documents themselves can be forged and I spent some time working on a system for this. Initially I thought to vary the document layouts slightly if they're forged. Since the rulebook contains example photos of how certain documents should look, the player would have to visually compare them to detect forgeries. I couldn't really figure out what kinds of layout changes made sense though. If someone goes through the trouble to forge a document, they're gonna get the basic layout right. And at that point I can either make the layout errors very subtle or figure something else out.

Something Else That Was Figured Out (Seals)
Looking to the real world, official documents are often validated with seals, watermarks, holograms, emblems, and other security devices. Copying the structure and layout is easy but getting the right seal is much harder. So all official documents in Papers, Please will have an accompanying seal. Accepted seals are listed in the rulebook:



And must appear on official documents:


There's some nice potential for an arms race here. As the game progresses, more and more complicated seals will be introduced as the criminals catch up. Gotta stay one step ahead. The potential is also there for special infrared seals that must be viewed under a special light in order to verify them.

2012 December 08

@makerimages: Coupla days still.

@FinalSin & Gimmy TILBERT: Super thanks!

Suggestions of things that could happen (dunno if any of these have been made)...

These are all good ideas.

I don't know if this has been addressed already, but what's to stop someone from just pressing on every single combination of information until they find something?

Nothing except the inefficiency of it. On those traveling light (traveler with passport, entry permit, responses, appearance, and your rulebook) there are about 35 unique pieces of information. That's almost 600 unique fact pairs so it's gonna take some time to even click them all. And since not all facts are visible at once you'd need to periodically rearrange the documents.

Much easier to just scan the documents visually and highlight where you think there's an error.

2012 December 10

Your score is based on how much in-game time passed for each examination, as well as how many correct and incorrect guesses you made on legitimacy...
Possibly add a combo system for processing (subtle, not like "MEGA COMBO 46x MAXIMIZER!")...

TBH, I hadn't even considered a score system. There are some cool ideas here, but I personally don't pay attention to scores in games. I could see it making sense with a leaderboard though. For that case a separate score mode would probably work best so the story progression doesn't get in the way. Similarly, Helsing's Fire has a "Bounty Mode" that lets you play online puzzles outside the story arc that works pretty well.

I like the upgrades suggestion. I have some vague ideas about upgrades but I'm waiting to have the basic daily gameplay working before trying to figure out what works best. New equipment and interrogation questions sound promising.

Time
For in-game time, I prefer it to be realtime. You'll be able to pause (blacking out the screen?) to take a break. But all the little rigamarole of clicking things and arranging documents is part of the job and should be on the clock. The faster you can do that stuff, the better you'll be. And just like real life, you'll have to decide if it's worth flipping through the rulebook looking for a specific rule, or sending a slow telex query to check a name. This keeps things simple too; no need for a special hud or an explanation of what does or doesn't cost time. >> TIME COSTS TIME <<

2012 December 12

I loved how you handled this sort of thing in 'The Republia Times' - I really felt the moral dilemma there - and wonder if you are planning something similar for this...

Thank you and yes :D One of my motivations for making this game is to exploit the player's morals and give them tough choices. I think there's more potential for hard choices here than in Republia Times. Actually the examples you mention are spot on.

A Few Faces
One of the nice things about doing both programming and art is that I can take a break from one and focus on the other. Perfect for when I get burnt out on something. I spent a few hours yesterday just drawing faces. Two new sheets:

Click the picture to see a time-lapse of the drawing. Not that exciting really.

You can see I'm running out of ideas for the clothes and they're getting a little crazy.

Lemme Just Stamp This
So you've checked someone's documents and it's all in order. How do you approve their entry and send them through? In the real world the inspector puts a sticker on your passport and stamps it with some time information. My original plan was to put some stamps on the counter (red = deny, green = approve):


To stamp a document, drag it from the counter and over to the desk. Same drag/drop interface as the papers:


It's easy to position, but how do you actually stamp it? With drag/drop, you grab the object on mouse-down and drop it on mouse-up. If you don't drag, it's easy to detect a mouse-up with no movement and apply a click. So that'd work here too. Drag the stamp into place, drop it, then click it to apply. Unfortunately this feels lame. Applying the stamp on mouse release just doesn't have the satisfaction. What you want is a nice solid THUNK when pressing the mouse down, not when you let go.

So I switched gears and am now experimenting with a stamp "bar" that pulls out over the desk. In this case, the stamps are immovable and you have to arrange the documents beneath them before stamping. Feels much better:


Once you stamp the passport and hand all the documentation back they'll grab everything and walk out to the right.

Haxe/NME
I've spent enough time with Haxe now to have both good and bad impressions.

Bad
  • A 'meta-language' with no home
    Haxe is translated into other languages (flash, js, c++, etc) and has no compiler. It supports a lot of target languages and although it doesn't take a lowest-common-denominator approach, it does sacrifice some features. The big one for me is proper class member scoping. There's no concept of true "private" members like you'd see in C# or C++. This makes it hard to build robust inheritance classes without stepping all over your base class's members. I generally keep my class hierarchies as shallow as possible so this is less of a problem but it has come up a few times. The usual way around it is to use adapter or helper classes instead of inheritance.
  • NME has some missing features
    Although the NME build process is fantastic, the C++/js/flash APIs all have little differences that need to be worked around. So far the biggest missing pieces are in the BitmapData class. For now I can handle the necessary tweaks.

Good
  • Modern syntax and features
    Coming from C, C++ (and even C#), Haxe is refreshingly modern. The type system is good and the reflection API is simple to use and powerful.
  • First-class functions
    Having first-class functions that can be passed around as variables is great and can simplify a lot of normally difficult tasks. Love it. As an example, using reflection and first-class functions I was able to create a simple state machine class that handles all the animation and state changes for game objects. Not possible in C++ without pains.
  • Succinct
    I think a good way to gauge the value of a language is to look at how much code is required to perform common tasks. The less code required, the better the language. Haxe scores well here.

2012 December 13

Stampage
Today was productive. Got the stamping system and in-booth flow working.



Pretty tired at the moment but I'm hoping to upload a build late tomorrow.

2012 December 14

got the new build up??

Still tracking down some sneaky logic errors. It's past 4AM here so I'll postpone things until tomorrow.

2012 December 15

Is there a risk factor or an endgame?

There'll be a story arc with several endings.

New Build!


Still early but the inspection procedure is largely in place. Instructions are on the page. Enjoy!

2012 December 15

I can't see a denied stamp

You have to highlight two pieces of mismatched information from inspect mode to enable the denial stamp.

2012 December 15

I can still use it though, and how do I send someone without a pass and entry. Also any way to know if I did right or wrong? On top of that right before I saw documents of a guy I slammed it shut and it's stuck, can't get anyone new or something

Just fixed the invisible stamp still working. Thanks for the info. As makerimages says, if they're missing all documents, highlight the counter and the rule and they'll walk out.

Reload the page if it's stuck for now. I'll look into a proper fix.

2012 December 15

Why do I have to click on the names in the passport and permit to highlight the disperancy if I can clearly see the difference in names and could stamp "Denied" right away?

Just some artificial gating since there's no other reason to highlight yet. In the end, the denied stamp will always be available and highlighting errors will allow further actions like in one of the animated gifs I posted.

I agree it definitely needs some audio. I probably won't get to that until some of the other mechanics are worked out though.

2012 December 15

Wow, this game is amazingly addictive! I've denied, like, 50 people and it felt so satisfying to spot discrepancies, given that some of them were not so obvious.

Thank you goshki, this is very encouraging to hear!

- I haven't got anyone who would qualify to pass, is this on purpose? Currently if someone should be denied and I grant access, nothing happens and I know that I have to look better. Maybe such person should pass and the player should get some negative points with explanation what was wrong with the papers?

Yeah there's only illegitimate travelers at the moment. This build is to nail down the procedural mechanics of inspecting documents. Later builds will have a mix and there will be consequences to letting the wrong people through. The plan is to break the game up into days and somehow report your stats after each day. Maybe there I could have some kind of recap system so you can see exactly what you did wrong.

- wouldn't it be convenient if the documents got auto-denied if I find a discrepancy?
- what's the purpose of the leverage that closes the window?

Stamping is the most fun for me Smiley. The gameplay is really about procedure and rigamarole so I wouldn't want to skip through elements like this. The shutters don't have any function yet. I talked about it a little upthread. It will come into play as a defensive mechanism.

This feeling of contentment while denying entrance is quite unsettling and I guess it says something about human nature.

Hehe. I also get serious satisfaction from denying people. I think the key is that they're trying to lie their way into MY country, GTFO Outraged. I'm going to try to make the applicants a little more sympathetic in the future so the feelings aren't as clear.

BTW, I see you use Haxe, cool! :D Is this HaxeFlixel or your own code? And do you plan to put it up on different platforms also (iOS, Android)?

Just basic Haxe/NME, no Flixel. This is my first Haxe project and I chose it so that I could target other platforms easily. The goal is to do native PC/Max/Linux versions first. The game is a little tight for phones but might work well on tablets.

btw could you please switch all the dates to d/m/y or provide us the option to pick it, it really confused me at the first with "What the hell, are we in the future with 100 day calendar?!"

Eventually I'll have it select the date format based on your locale.

2012 December 15

Ha! I've just found out that you also did 6 Degrees of Freedom. Oh man, I loved this game.  Beer!

Thank you but I hope you mean 6 Degrees of Sabotage  Grin

I also really enjoy your Pole Vaultage. Great visuals and control(s). I got the hang of it after a while and am able to clear the fence pretty regularly.

2012 December 17

Really cool game, it was fun and addictive from what I played.  Using the huge stamp felt so cool, and I liked how you could stamp the passport as many times as you want just for fun.

Thanks. There's not enough stamping in games.

Speech Bub
A simple speech bubble for conversing with the victim applicant.


At the moment I'm working on the stuff that happens after you highlight a discrepancy. Each type of error will lead to a short dialog interaction and in some cases the option to search their body or send a telex.

It may also prompt the applicant to submit more documents. For instance, if they don't have an entry permit and you ask them about it, they could say something like "Whoops, here it is." and put it on the counter.

For this dialog system I'm going to try to categorize responses into different "personalities" which would enable applicants to be dickheads, sympathetic, indifferent etc.

Tracking Performance
One issue I haven't gotten to yet is how to show player performance. If the game is broken into days, there should be some stat thing that shows at the end of each day. I was recently thinking it might be cool to have this be a sort of flash-forward "Where are they now" summary for each traveler you dealt with.

As an example, if you let a smuggler through in error, it would give a small report like "[PICTURE] Anton Sarvoy: Arrested for smuggling. Detained and executed". Or hopefully it's something more positive. If you had mercy on someone with poor documentation: "[PICTURE] Alice Mitchells: Reunited with son. Gainfully employed." So these blurbs are from the far future, not just the next day. Might be kinda weird in that sense.

On the other hand
I think some of an immigration inspector's anxiety comes from not knowing what happens to the immigrants they process every day. In Papers Please there will be immediately visible consequences in some cases (terrorist bomber). But in other cases the person will just pass through and you won't know what happened until the stats screen at the end of each day. Not sure if I want to try to capture that sense of not-knowing and show only minimal stats or treat it more like a game with detailed information on each immigrant.

2012 December 17

...
For example, you may receive a notice warning you that a particular immigrant you let through the previous day was later arrested trying to buy arms on the black market and discrepancies were noted in his documentation. Maybe after so many written warnings you would face a disciplinary hearing.
On the other hand, you might receive a thank-you letter and a jar of pickled turnip from the poor grandmother you let through to join her family.

This is perfect; way better than a stats screen. Definitely gonna do this. Thank you for the great idea, Panurge!

Letters

Each morning there'll be a stack of letters on the counter. Before calling the first applicant of the day you'll be able to look through them using the same drag+drop interface. They might be updates from the Ministry, reprimands, thank you notes from approved applicants, hate mail from denied applicants or....

Bribes

I'm keen to have some form of bribery in the game. Maybe your "score" will actually be your money. Some less-than-honest applicants can offer you money up front, or the promise to mail cash to you later in exchange for a quick approval. This'll give you some non-altrusitic incentive to let the bad ones through.

Progression
The money system could also nicely tie in to the overall progression. Let's say you receive a daily salary from the Ministry based on performance. Each day you lose a little money due to living expenses. Your current income represents your wealth bracket, of which there are several. The story and game progresses as you move up the brackets.

2012 December 29

After a short holiday break, back on task.

Title screen:


Finally added the top screen with animated travelers:


This also has my solution for getting the docs on the table. I tried animating a hand dropping the papers but it looked worse than terrible. This way it's over fast and hopefully doesn't raise much thought.

2012 December 30

Thanks for the feedback everyone.

And a lady is missing her entry permit, but the game is telling me no correlation. Hmph. (Oh, her passport was expired too.)

No correlation between which things? For a missing entry permit (for non-Arstotzkans only), you have to highlight the rule and the counter top. I'll fix the other stuff you mentioned. In the next build you'll be able to click the "Passport ISS field must be valid" to correlate with a wrong city.

I believe that further in the development you should add document forgery errors (different typefaces, wrong paper etc.)

I experimented with this but decided these sorts of changes are too subtle. Instead, documents will have official seals that may be forged incorrectly.

How about marking discrepancies with a right click, that would get rid of the need for extra inspection mode.

I can do the right-click shortcut for native builds, but not flash. Maybe I'll have the space key toggle inspection mode to make it a little faster.

Some thoughts on the rule book. The corner to flip pages could be bigger, as big as possible in my opinion. There is a ribbon on the top left, this seems to be a browser-like "go back" function. It feels a bit strange to have in a book. I think it would be nicer (and more like an actual bookmark) to always be able to quickly get to the contents.

You shouldn't have to flip pages too much but I agree the corner could be bigger. I made the bookmark more like a browser thinking it would be more convenient but I think you're right. I usually just end up clicking it a bunch to get back to the TOC anyways. I'll change it to just go to page one.

2013 January...

2013 January 03

Where did you get the idea for this project?

From the many times I've gone through immigration in the past few years. The anxiety as a foreigner and comfort as a native returning home got me thinking about the whole process and how there's probably enough there for a game. Also inspired by various spy movies where passing through immigration is often a critical moment.


Some mockups:

Verifying Identity



Planning a small (tiny) mini-game to highlight the finger tips.

Strip search



To keep the interface consistent, strip searching will be done via photo. The curtain closes, applicant strips, and the camera snaps two shots which you can inspect as any other document. The photo can be flipped to see the butt-shot. Haven't decided if the nude bits will be censored.

2013 January 05

The new-tech fingerprint kind of detracts from the 1950s 'Cold War' vibe I was getting off of this thing.  Maybe instead of having a fingerprint scanner, have the person use an inkpad and press thumb to a book, then you compare that to the one on file?

Yup, you're right. The game is set in the alternate 1980's so it does (barely) fit the technical level. But we're talking communist 80's and anyways it doesn't fit the aesthetic. I'm changing it to something more low-tech. Thanks for the suggestion. I'll try to post about the new (old) fingerprint system later today.

There were a couple of things that I really didn't catch on to when starting to play
- How to enable the deny stamp. This is in the rules below the game, but why not add it to the rulebook?
- Nothing made sense before realizing that there is a rulebook. How about drawing the player's attention to it early in the game
- I didn't know that you could actually highlight rules in the rulebook to get a denial until reading this thread. No idea whatsoever.

There's a bit of text below the .swf that covers these issues. They're all legit comments though and will be addressed properly in-game in later builds.

1: A lady with a passport but no entry permit. Highlighting "must have entry permit" in the rule book and then clicking the table area resulted in "no correlation" even though when a person has neither passport nor entry permit, highlighting "must have a passport" and clicking the table area discovers the discrepancy. I actually never figured out how to get this lady rejected and just let her pass on since I wanted to see more Smiley

Arstotzkan citizens don't need an entry permit so maybe that's what was happening? Actually it just sounds like a crazy bug. I've changed a bunch of stuff about the underlying logic so hopefully it doesn't happen again.

2: When a person has a passport with an invalid issuing district, finding the issuing district in the rule book and then trying to connect that with the passport/passport nation doesn't work. You have to selected the issuing city in the passport and then select the valid ISS's in the passport nation in the rule book. To me, both of those actions make sense and should be accepted.

Good idea. It's a lot easier to go to the correct nation and highlight the correct issuing cities + wrong passport but I agree that all logical methods of marking a discrepancy should work. Will fix.

But I'm interested in trying the new build. Looks like a lot has gotten done since 12/15!

A lot of stuff is in mid-being-done right now so it'll probably be a week or so before I can get a new build up. This devlog has kept me pretty on-point with the scheduling though so I'm grateful for that.

Thanks to everybody for playing and helping me improve things.

2013 January 06

Revised Fingerprint System



The top sheet is collected from the applicant in the booth. The bottom identity record is printed out based on their passport name. Multiple records may exist for the same name and each record may include an alias. This can be used to verify discrepant names on the different documents.

2013 January 09

Not much new to see at the moment. Been working on straightening out the underlying error-generating logic so I can script the story elements. Also worked out the basic story premise. I'm not sure how much of that I'll share here since it doesn't really affect the gameplay and some may prefer it to be a surprise.

Goodbye Old Fingerprints
I captured this before deleting the code for the old fingerprint system:

Looks ok but it's pretty pointless and as mentioned doesn't fit the theme. Posted here for posterity.

Nightly Stats
Some story-related stuff:


Whereas your performance as an inspector is reported each morning via letters from the Ministry, your home life is reported on nightly screens like this. As you go about your daily work you'll be responsible for your family's welfare. Like a proper communist state, you live together in a small apartment; dogged by rent, heating, food, health, and other various costs. Your small salary as an inspector is barely enough to squeak by so you'll have some tough choices to make about how to spend your money.

If you do your job well you'll be entitled to raises and other perks. On the other hand many applicants are desperate to enter Arstotzka and a few pocketed bribes might go unnoticed.

2013 January 09


What if ...

I appreciate the detailed suggestion but there's a couple reasons why I don't think this is best.

I hate work as much as the next guy but in this case I'm not just being lazy Grin. I intentionally designed this part of the game to be stark and simple. Basically, I want to add another facet to the primary (daytime) gameplay without too much distraction for the player.

My plan is to expand on a similar technique I used in Republia Times. In that case there was only a single sentence about the family each day but it served to humanize the player and make their daily decisions more difficult. I want to take that same effect and give it more weight. Not by defining the family more, but by providing more fine-grained influence over their wellbeing.

Although a single night screen from one day looks pretty stark, your family's status will change and progress throughout the game. If your uncle is sick too long without medicine he'll die. Or his medicine costs will go up each day. Or maybe your son's birthday is coming up and he wants a new toy. Skip your uncle's medicine for a day and you can afford the toy. Or, as you mention, a new apartment with lower rent/heating costs is available for a fee. The choices you make on this screen will have lasting effects and you'll need to be careful about how you spend your money.

About the hints from family members, there will be plenty of story and flavor elements coming from the immigrants themselves. I prefer to keep that stuff wed closely to the daily gameplay as opposed to putting it in the separate night screens.

Having said all that business, I'm not completely against more involved nightly updates. At this point I'm moving forward with this simple implementation. Later down the line it may become clear that something more complicated would benefit the game.

2013 January 14

Also just FYI, I teach a college level Intro to Game Design class and used your project as an example of an engaging game in development. They were all quite impressed at this early stage. Keep up the great work!

Well damn, that's pretty encouraging!

Theme Song
Composed a brief musical theme for the game and hooked it up to the title screen (YouTube link):

The game'll have music for the title, intro, night, and end-game screens, but not during the main day gameplay bits.

Slow Progress
At the moment I'm also putting together new inspectable documents and adding features as I need them. This part's a little slow with not much to show. I'm working to get a build out that has the basic gameplay progression divided into days, but without the night-time/family management yet.

2013 January 16

The music is amazing as well, what program did you use to create it?

Thank you. I composed the music on a Yamaha MOX6 keyboard. It has a full sequencer with effects and stuff so I only needed to grab the audio output using Audacity on my mac.

I only have a very small suggestion. I think the logo should start apprearing on the third beat not the second one, let the first two sound to an empty screen.

Roger that; will do.

2013 January 19

Random stuff that's changed/updated recently:

Speech Chat

I initially had solitary speech bubbles (visible upthread) that pop up for the dialog. The little back-and-forth at the beginning ended up being too slow and stunted with those bubbles so I changed it to more of a scrolling chat window. Flows much better although I'm not crazy about overlapping the face.


Goodbye Telex
In that pic you can also see that the Telex is gone from the console. I couldn't find a good use for it after adding the fingerprint system. In its place is the daily bulletin which you can reference at any time.


Daily Bulletin

First bulletin in the game. These are waiting on your desk at the start of each day. Later bulletins will contain mugshots of wanted people. The Telex was going to have those but I think it fits better here.


Dialog
I've been writing a bunch of the generic question and response dialog recently. Initially I authored it to flow naturally with proper English grammar but the game lost much of its Eastern-European feel. Now I'm trying rougher, less fluent English and it's a little better:

"I'll stay for three months." becomes "I stay three months."

Pretty subtle but I was surprised at how the fluent English destroyed some of the mood. I hope this works better.


Action Buttons

These buttons will appear as the result of an interrogation. After highlighting an error in inspection mode only one option is available: Interrogate. Based on the entrant's response, one or more of these action buttons will appear. They'll stay in place until you click them or move on to the next entrant.


Giving Back

Instead of just returning all the docs to the counter you now have to explicitly give them back. This'll allow confiscations and document trades later down the line.

2013 January 23

A picture worth 8 words. Should work for the whole intro.



Not sure I can capture it better with a proper image tbh.

2013 February...

2013 February 01

I've been meaning to gush about how much I love the idea and execution of this game, everything supports the atmosphere so well I'm freaking out oh my god.  You should call it Pampers, Please because it's so awesome that the first build I played made me do literally every bathroom thing in my pants.  I especially love the Where in the Dystopia is Carmen Sandiego vibe it exudes, you rule.

Thanks roc. YOU rule.

This is pretty cool! It's a lot of information to take in at once, but with a bit of clicking and reading it starts to make sense. I like figuring out games, but I could see some people getting fed up pretty quick.
One thing that is missing for me is the emotional aspect of the job.

Thank you. I'm aiming to introduce the concepts more gradually and add more emotional impact through dialog.

Really enjoying the build, though I keep hoping for a legitimate person to come along. Concerned

Cool. I've been playing with this balance recently. On the one hand I want enough mistakes to make a proper game. To be more realistic and keep you on your toes though there should be a good number of people who have no errors.


New build coming up shortly. Will be native Windows and Mac builds this time since it's getting too big for Flash. Probably breaking all kinds of stuff.

2013 February 01


Alpha 0.1.1 - GET IT HERE


Finally something new to post. Behind the scenes the game has come a long way since 12/15, but the outward progress is less obvious. But I thought it best to stop noodling with little stuff and post some native builds. Not really sure how well they work since the HaxeNME Flash and native targets have quite a few quirky differences.

Briefly, this build has the title screen, intro screens, and the first 5 days of roughed-in gameplay. The night-time screens aren't functional yet and the game badly needs sound effects. There are also a few features (bribery, document trading) that are implemented but not exposed in the gameplay yet.

Because this is the first native build, and I'm working on a Mac, I'd really like to hear if the windows exe works ok for people.

2013 February 01

Works fine for me, but it's a little annoying how it's forced full screen, yet the game doesn't even take up the full screen for me at 1440x900

Cool thanks for the report. I'll make the next builds default to windowed mode. You should be able to switch it with ALT-ENTER now.

At the moment it resizes to the largest whole pixel scale from 480x320 which normally leaves a black border in full screen.

2013 February 02

Post Download: I can sleep happily tonight. By far the most interesting game I've played in quite a while, and it just gets better and better.

Thanks randomshade! You had me a little worried with your enthusiasm Smiley. I can't say for sure if the game is any good at this stage so I'm relieved to hear you like it.

I noticed that, at the end of the day, when the clock went dark, on the first day, it only let me finish working with the immigrant that I was already working with. On the second day, it let 3 more through before ending the day. Confused me quite a bit.

There's a minimum number of people you have to process for each day. If the clock ends before this, you still need to finish out the remaining entrants (sans pay). I set it up like this so that story-critical entrants can be scripted per day and will match up with the daily bulletins. I'll try to explain this quota system in an early bulletin.

2013 February 02

I figured there was a quota.
Now I haven't booted the game back up yet, but will the game still be random with some predefined people?

Yeah. And even the predefined people often have only certain things defined. So likely their faces, nationality, and possibly errors will be different each time you play. I don't think that's too interesting though and I don't really consider a feature. Just that specifying those things hasn't been necessary yet and the random generator takes care of it without any effort.

2013 February 03

Thanks all for the new build feedback.

Only odd thing in game I've noticed that hasn't been mentioned already (that I'm aware of) is that the Denied and Approve stamps now have a date on them which does not increment as the days go by.  I assume you've got plans for that though.
On another playthrough, I realized that neither the kg meter nor the detain button work yet. Is that intentional?

Good eyes. Both of these are just not implemented yet and should fall into later builds.

I got 7? warnings during the playthrough and for most of them I had no idea what was missing/wrong. I double-checked everything.

I was wondering if the warning should mention the exact mistake. I assumed it wouldn't help much since by the time you get the warning the entrant is gone and you can't check their papers anymore. But both you and Armageddon have mentioned it so I'll experiment.

Another problem was that when sometimes there was multiple disparencies, it only let me highlight one of them.

Can you give me more info about this? The inspect mode should let you highlight any two pieces of information. Did you highlight two clearly discrepant pieces of info and it didn't show the Interrogate button?

2013 February 03

Speaking from experience, in my last playthrough, I got 4 warnings on the first day. I had no idea what I did wrong. For the most part, on the first day, I thought I was supposed to approve pretty much everyone since I couldn't highlight discrepancies.
So, even if not exact, more info would be greatly appreciated.

Hehe ok that's good to know. This is a little scary though because the first bulletin states matter-of-factly that you should only permit Arstotzkan citizens to enter due to a security alert. Did you read the bulletin when playing?

In retrospect, people will probably miss important bulletin info no matter what so a detailed warning report seems necessary.

2013 February 03

Got no discrepancies the first day then got slammed with 4 in a row the second day. Facepalm Really wondering what I missed though.

Ok. Thanks for trying it out again. Next build will list the mistake on the warning.

There's a slight issue with the music. Sometimes it cuts off after the first beat with a weird glitchy sound. Next couple of times it may work just fine. This happens both during the intro and the "day over" screen.

Damn. This was happening for me too but I thought (hoped really) it was just an issue with the VM. HaxeNME uses SDL_Mixer for audio and tbh it's a bit shit.

Would there be any way to increase the size of the document inspection area just a tad bit? I know it's probably intentional but there's a lot workspace management just to get the document you want and it feels like an unneccesary action.

If I bump up to 16:9, there'll be a lot more room for documents. Still pondering.

It can get a little repetive after playing for a while but I guess once the "day over" screen is fully implemented and you have to manage your earnings it would break the monotony a bit.

The current build is still a little barren. I'm hoping to have enough story events (plus night mode and sniping) to keep things interesting for a while.

I personally only use inspect mode to double check, or to compare dates. Beyond that, I don't touch it, since I'm already inspecting everything.

I can see where you're coming from but the inspect mechanic is pretty set. The game needs this separate mode for the player to express their intent clearly. The fact that all errors are due to correlation (2 pieces of the same info don't match) gives a clear structure that I think is important. If you can just click on what you think is an error, there's nothing stopping you from just clicking on each piece of info in turn and waiting for the dialog to pop up. With the inspection you have to show you understand each error.

For this situation, you'd pull the audio transcript, which is sorta hidden behind the microphone, then highlight the line where he says he came for work and the line on the entry  permit that says it is for travel, which will reveal the discrepancy.

Yeah this is the way I intended it to work. But actually DustyDrake's method should've also worked. One of my goals is to have all the logical correlations work for any given error. So if they say they're coming for work, you should be able to point out a missing work pass and get them to correct their response. I'll try to get this implemented for the next build.

I'm glad to be posting these alphas as public b/c I can easily miss "logical" correlations like this.

Later on it may not be a bad idea to have a brief tutorial of the items that are available at the start of the game. (I missed the audio transcript the first time around)
"Rule book to right.  Regular updated.  Check each day.  Audio transcript is middle.  Keep track, many lies traitors tell to bring down Arstotzka.  Clock to left.  Time always short.  Coffee break lever at top.  No coffee breaks, do not use."

Good idea and brilliant text. Especially the coffee break lever is perfect. Wish I thought of it! Do you mind if I use it? Maybe I'll even issue a warning if you flip the lever.

2013 February 05

John Polson at Indiegames.com posted an article about Papers Please!



Awesome!  Grin

2013 February 06

@ IAmSerge
Thank you. You can grab the theme song from "assets/music/Theme.mp3" in the windows zip, or rip it from youtube:

. The C++ engine is a collection of stuff I've built on and developed over the last 10 years or so. It sits atop SDL for multi-plat support and has the usual OpenGL engine features like scenes, audio, ui, etc. I like it a lot, but I think my days of maintaing custom engines are over so I chose Haxe/NME for this project.

@ sk2k
Old computers are the best computers.

@ Eigen
Thanks for having your girl check it out. A perspective like that is really helpful. The difficulty will scale up beyond the first few days but I'm definitely worried about getting that scaling right. One person's interminably slow is another's blinding fast. Maybe a difficulty setting is best. The game currently has the partial name errors she suggested, but not partial id number errors. I'll change it so only single digits can be off later on. Ditto with the seals. There's a library of slightly-off seals that come up randomly. When the game gets longer there'll be more chances to see these. About the passport expiration. Not sure what to do about that. I'll either not bring it up, or programmatically ensure that all passport expirations extend beyond the stay.

@ Baobab
Hehe. I think manually dragging the stamp down at the right speed would be cool at first and annoying later. I'm currently adding sound effects to the game, including a satisfying "THUNK" for the stamp, so hopefully you'll like the feel better.

@ wmcduff
My big fear is that ramping up too slowly results in players losing interest. Helsing's Fire had this problem and I still kinda regret the shallow difficulty curve there. For this game, I'm now hoping that by pointing out the specific errors on the warning slips, players can get up to speed faster.

@ corpocracy
Wow thank you for the long comments. About dialog trees, I'm sorry to say that I probably won't go there. From a development perspective, I don't like to write much dialog. And from a gamer perspective, I don't like to read much dialog. I think the game works better by making the motions more mechanical and less like a traditional dialog tree. At least it enhances the bureaucratic feel for me. I do like the idea about requesting a bribe though. I could fit that in with a drop-down button like the fingerprinting. The idea about the newspapers is also a good one. I've kinda rolled that idea around in my head for awhile. The newspaper headlines format is a great way to update the player without much reading. And finally, you're right about the passports. I'll definitely make them more varied since one of the main things people miss is the entrant's nationality. Not sure about color-coding their clothes but that's not outside consideration. Smiley


Thanks everybody for the comments and suggestions.

2013 February 08

@ corpocracy
I definitely understand what you're saying. Part of me wants to color code as you suggest but at the same time I'd prefer a less clear, gamey distinction. I think a better approach would be to divide up certain facial features so different nationalities actually look different.

@ ImaginaryThomas
I've tested the game out on an iPad and it ended up being a little tight. Things are designed for the mouse so far and using a finger makes it harder to tap and drag. Haxe/NME is great and one of the reasons I chose it is for the mobile targets though. After the PC/Mac versions I'm thinking to adjust the UI to work better for touch.

@ wmcduff
Roger that.



Sounds
For the past few days I've been adding sound effects. This is usually a task I hate but this time it's been ok. I get most of my sounds from freesound.org (free) or soundsnap.com (paid) and edit them extensively in Audacity. Sounds definitely help the game feel more alive.

Widescreen
I've decided to adjust the aspect ratio from 3:2 to 16:9 to give more room for the documents. This'd be difficult to do with a proper 16:9 resolution (640x360), but I decided to just make it wider and keep the height the same (570x320).



I might stretch the top space to the right, or add a vertical road with visible traffic. Something more for the terrorists to blow up.

LIBRARY CARD, PLEASE
I had to share this, from johnki:



An ANSI mockup of his take on Papers, Please. Click for the full size original on his tumblr; it's worth it.

2013 February 11

I didn't like the stamping thingy; I feel as if a simpler, manually-operated, hand-fitting stamp tool would be better: Drag either stamp tool on the visa. Click it to stamp down.

I talked about this earlier in the thread. A drag-n-drop stamp would require applying the stamp when releasing the mouse button, which doesn't feel as good as stamping on button down as the stamp bar allows.

It's slightly annoying when you violate procedure, the warning prints, but I can't seem to dispose of it! So it just stays there on the desk. I suppose it's an effective reminder, but... feels cluttery.

Actually I quite like this. It's an incentive to avoid warnings beyond the monetary penalty. You can always throw it onto the far left of the counter to get it mostly out of the way.

I'll try to hook up the bulletin date for correlations. And I'll also see if I can enable calling next before the current guy completely leaves. Shouldn't be too hard. Thanks for the comments.



Confiscating Documents
Just finished the confiscation system:


At some point in the game, you'll be required to confiscate certain documents. The drawer at the bottom can be opened to receive these documents. As part of the larger story, some entrants may offer money for a particular person's passport from the confiscation drawer...

2013 February 12

Almost Made It

2013 February 12

My only problem with this is...you're the guy standing at the desk accepting/rejecting immigrants. You definitely can't get to a position to snipe them. This addition breaks the role down a bit, killing quite a bit of the very well-built sense of immersion. Maybe a button would be more appropriate? You see the guy and you have to press the button in time for them to get the guy?

Sniping is the payoff for having a top "overview" screen so I definitely don't want just an alarm button. If I had to explain the mechanics of it I'd say you're firing from a port on the right side of the booth. Maybe I could show the gun barrel peaking out or something. Or even have the bullet come from the booth so you'd be aiming a dotted trajectory line instead of a crosshair. That might help with the difficulty since currently the crosshair is too easy.

I've planned 3 options to deal with breakthroughs:
1. Do nothing. Guards will deal with it. No bonus pay.
2. Tranquilizer Darts. Harder to aim and takes multiple shots. May still detonate. Full bonus pay.
3. Sniper Gun. Over in one. Full bonus pay.

So...confiscation, this...new build? :D

Confiscation and sniping are technically implemented but not integrated into the gameplay yet. I still have the photo searches and detaining to implement before all the major daytime features are done. After that I'll work them into the actual story. So no new builds for a bit, sorry.

Is your job over for the day if that happens? Do you get bonus money for preventing infiltration by a foreign criminal?

Yeah the day ends when someone tries to break through. If you stop the intruder yourself, you'll be compensated.

Right now it's kinda silly to just give back fake
documents instead of calling police/security/militia.

The DETAIN button will allow you to arrest anybody with bad documents.

So my girlfriend went to try this on her computer (the desktop version). It was oriented sideways when she loaded it up. Then she ran it as administrator and it was oriented correctly. Odd bug. I didn't have to run it as admin on my computer.
The only thing that I'd think would affect that and is noticeably different between our computers is that she has an Intel Integrated (GMA 3000 I think) card and I have an ATi card.

Thanks for the info. Someone else mentioned this bug. Does she have her monitor oriented vertically by any chance? I mistakenly left some iPad orientation logic in the desktop version. Could be messing with things even for a normal orientation so I'll just take it out.

EDIT: Also, she noticed that it seems that if a foreigner that is coming for work and has neither a work pass nor an entry permit, you have to highlight the rule for the entry permit to get a discrepancy. Highlighting the rule for the work pass wouldn't work, even though both are relevant.

I think I've fixed this. Will double check.

2013 February 13

The Guards Will Deal With It


Come With Us Please

2013 February 14

This Is Why We Can't Have Nice Things...
...like friendly border guards.



Spriting Workflow
I've spent some time animating sprites now and thought to post the workflow I ended up with. The basic pipeline is to create/edit/animate the sprite frames and save/export them as individual numbered pngs. Then comes TexturePacker to put all the frames in one sprite sheet which the game uses. I tried lots of different sprite animation programs. Everything was recommended by somebody but since I'm on a mac, I couldn't try Graphics Gale, which many say is the best.

Pixen
Pixen is a native Mac app with all the bullet-pointed features. I animated the basic traveler idle, walk, and run anims in Pixen a few months ago. When I went back a few days ago to do the rest of the animations I quickly got frustrated. Biggest problem is the export process which requires too many clicks to save out the individual pngs. Although I remember Pixen having onion skinning, I couldn't find the toggle again and gave up before spending much effort on it.

ASEPRITE
This app is clunky as hell, especially on OSX. But after learning some shortcuts it got much easier and I made good progress in spite of the completely wonky mouse movement. The load/save process is really smooth and I created the traveler climb and guard walk+idle animations fairly quickly. The onion skinning is nice. Unfortunately, I started running into problems with the explosion. My initial test came out terrible; mostly due to the limited tools available.

Photoshop
Realizing I'd need something cushier for the explosion pixeling, I moved over to Photoshop. Best to make the drawing easier and deal with whatever painful export process there was afterwards. Photoshop's animation system is pretty nice and I felt completely at home with the tools and layers here. PS Extended has onion skinning but I ended up doing ok without it. For exporting, there's a built-in "Export Layers" script but it's absolute shit.  Instead, I ended up saving for web to an animated gif, then extracting the frames using ImageMagick.

ImageMagick
ImageMagick is a set of command-line tools for editing images. The main tool is called "convert" and lets you do all kinds of cool stuff. I've been using ImageMagick more and more recently and it's really come in handy on this project. For example, to take an animated gif, replace the background color with transparency, and export the frames as 32-bit png:
Code:
convert -coalesce 'Boom.gif' -define png:format=png32 -channel rgba -fill none -draw "color 0,0 replace" border/Boom-%02d.png
Easy and fast.

Now that I've got the Photoshop workflow down, I'll probably stick with that for everything. In total, I spent around 6 hours yesterday on the explosion. I don't ever want to hand-pixel an explosion again. In-game, it's gone before you even notice it so I'm leaving it here for rubberneckage:

2013 February 15

WOW, that's amazing. He moves a little bit too slowly to be shot by trained guards tho

Thanks Quarry. I'll have them start shooting a little later so they don't look completely incompetent.

2013 February 16

Do they have the chance to stop the intruders (with bombs or solo)

Yeah they may or may not get the runner before he throws a grenade. For suicide bombers that you personally let through the checkpoint, there's no chance to react.

Search Photos
Working on the implementation for these. Front is fully NSFW but the back is softcore:

Next step is to place the contraband.

2013 February 17

Thanks all!

This might be subtle, but... would it be better if the stamps were in reverse order? Deny on the left side, where the other country is; accept on the right side, where Aristotzka is.

That's... a great idea. Will do.

Oh, and please have it so players who regularly strip search attractive females with little evidence will be placed under investigation!

I have something planned for the photos, but that isn't it Smiley

What can players find in search photos

Probably weapons and illegal contraband taped suspiciously to their body.

2013 February 22

Small updates. Been working on story stuff, which is always slow.

Headlines
Each day will start with a newspaper page:


"Papers, Please" will be the third game where I use newspaper headlines to relay story points. Can't resist.

More Faces
A couple more male faces.

Click for timelapse of the drawing.

2013 February 22

What were the color-coded masks for near the end?

I draw the faces as whole, but their individual parts get split up and recombined by the game to make new faces. The masks are where I mark the different parts: eyes, nose+mouth, shoulders, etc. I also add dots to the eye centers, nose tip, mouth center, chin, and shoulders to handle scaling and placement between different faces.

There's a little more info here in this old post: http://forums.tigsource.com/index.php?topic=29750.msg820306#msg820306
I implemented the bit at the end of that post, so heads and shoulders are also varied now.

2013 February 23

Have you thought about making the search skin color match the person? Seems odd they would be blue then tan...

Maybe originally, but sepia colors for the photo felt natural once I implemented it. It's a b&w photo with a yellowish tint so I think it's ok if the varying skin colors don't show through.

2013 February 27

I think that actively including the option to tranq someone is better than the alternative of doing it yourself. However, you might consider having the option to have someone else lethally dispose of the jumper as your action sequence. That way it becomes a moral implication instead of action.
You could determine the lethality of jumpers based on the threat level of each day. A timed choice button press would act in a similar manner as using cross hairs to click on the runner, and stylistically it might fit into the game better. There's an interesting moral decision about pulling the trigger versus just being the guy who made the call.

I read this a couple times but I'm sorry to say I can't understand what you're suggesting. It's possible to build more moral choices into this but honestly the whole thing takes like 5 seconds. It's basically: "Should I stop this guy myself or do nothing and let the guards do it/get killed... Hup, it's over."

Actually having to pull a trigger might make the game a little too dark, and give the player a little more control over the situation than the theme of the game tends to suggest.

Ok, this part I get and that's a good point that I'm thinking about now. Making it a tranquilizer instead of a bullet takes care of the darkness so I may do that. But having such an action sequence is important for variety. My only concern isn't just to pack as many moral conundrums as possible into one game. I also want it to be fun to play.

2013 February 27

Story Docs
Working on some one-off documents related to the story:


The way I'm setting it up now, there'll be lots of story "threads" involving one or more applicants. Most of the threads will be short (1-3 encounters) but I'm planning on 2 or 3 longer ones and 1 overall thread that spans the entire game. Each thread may have custom docs like this, special news headlines, or customized travelers.

2013 March...

2013 March 03

Data Scripting
A few shots of the game's data scripts. 99% of the time I use XML for text-based data but I've branched out a little bit for this game. The amount of text data here has lead me to 2 alternatives: A simple indentation-based format and CSV exported from Numbers (exel for Mac).

Days

This is the spreadsheet for all the per-day settings, traveler placement, news, rules, etc. Often you'll see spreadsheets like this with design logic and in this case I'm able to use the exported CSV data directly in the game. Working in a spreadsheet makes it much easier to follow and edit the progression. If this were XML I'd be constantly scrolling up and down to edit different sections. This kind of thing would probably be even easier with a custom tool but I decided that wasn't a good use of time for this project.

Travelers

Travelers are specified in a simple tab indention format, which is parsed into a node tree by the game. Syntax highlighting is my fav so I've also made a .language file for Sublime Text 2 to color each indented line. Using this simple format I can script each traveler with as much or as little specification as necessary. So in one case I may just give one guy a little bit of custom dialog when he's rejected; Everything else would be filled in randomly by the game. In another case I can force every detail (face, name, dialog, nationality, errors, etc) to build story threads.

2013 March 06

Is your intent for each day in the final game to be completely deterministic? That is, every game day, from day 1 through 50 or whatever, is mostly scripted as to what story events will occur, and the game has something resembling an "end"? If so, any plans for something akin to an "Endless Mode" that is a long string of mostly random days with the "income generation/family upkeep" metagame attached so that you can keep playing until you get bored/get fired/get shot as a conspirator?

That's basically exactly right. At the moment I'm planning on ~30 days in the final story mode. There will be small branches for some of the story threads, most of the immigrants will have some random properties, and taking care of your family is not guaranteed. Under certain conditions you can still lose but on the whole this mode will be deterministic.

The endless mode is something I'm considering. It depends on how much work it is to set up. Right now I'm feeling it'd be pretty easy so the chances are good I guess.

Everything looks great so far, by the way: I'm looking forward to the finished product! I've already picked out

for you. Smiley

Thanks! Great song.

2013 March 12

I got one work permit with "until" date of a month after the day, and the person was staying for 12 months. The game didn't seem to have a problem with it.

Sounds like a problem with a year wrap-around. I'll take a look, thanks.

Suggestions:
* Add tabs to the guidebook (like http://image.shutterstock.com/display_pic_with_logo/499/499,1109384428,5/stock-photo-planner-organizer-tabs-176244.jpg).
* At least in the first two or three days, the penalty for wrongly admitting or refusing an entry should tell you straight-up what you missed.
* Maybe instead of a sniper rifle, clicking on a person on the top area just calls the attention of the guards to that person. If they're doing something stupid behind the border, they get taken away. If they're over the border, they're shot.

Great idea about the tabs. It's too late for the beta build, but I can get that in the final. For now the game will always tell you exactly what you missed. Runners will only attempt to scale the wall if there are no guards on the left side. And I still feel the sniping is better as 1st person.

2013 March 12

Your Name in the Game



dukope.com/usemyname

Ok, trying something stupid bold here. I'd like to collect real* names for the immigrants. I quickly threw together some PHP so if you have a chance, want to see your name in the game, and don't mind using a working email, please try it out and let me know if you run into any problems.

Thanks.

* The game has a particular eastern-bloc setting so some names work better than others. Best thing is to easternblockenize it when submitting. That'll save me the trouble of having to do the same.

2013 March 13

I didn't see this mentioned in the thread, but noticed a change between the old builds and the most recent: Only passports can be stamped in the 0.1.1 build, while all presented documents could be stamped in the prior builds.

Stamping everything was fun, but I felt just too much busywork (fine line, I know). I could make it optional (only required on the passport), but then it's confusing and you'd end up stamping everything anyways. It's hard to communicate that "you can do this optional thing here, but you don't need to; whereas over here you need to do it."

In the end you'll be stamping so many passports, trust me that you'll be glad you don't need to stamp everything.

Actually, that might be required. I tried the game last week after watching a video on it, and this happened:
No passport to stamp, so the game was over. If it is intended the passport might not be there, we need some way of denying them.

If you correlate the missing document (highlight the "need passport" rule and the counter-top), you should get a visa slip:



..That'll let you deny them and move on.

2013 March 13

New Build


BETA 0.5.5 - GRAB IT HERE


Features:
  • Play through the first 8 days.
  • Sound effects, terrorists, smugglers, criminals, scripted events, and more.
  • Night-time budget management basics are in but unbalanced.

This is likely the last (non-bugfix) release before final.

I haven't tested the windows version much. If you have any issues, please post here.

---------------------
There's a bug with this build getting stuck on day 2. Temporary workaround is to clear 7 immigrants before the time runs out on day 2. I'm working on a proper fix now. Fixed in 0.5.5 along with an iMac crash.
---------------------

2013 March 13

Ha. I didn't realize the stampers were switched and accidentally stamped denied on the first person. I tried to stamp over it, but that didn't count. xD Will you put detailed instructions outside of the ingame documents once you hit final, with every minute detail which can mean life or death for us? Smiley I feel like I'm easily missing some way of correcting misstamping, although at the same time it feels like that is probably intended - to not be able to undo a stamp.

Yeah you gotta be careful with the stamping. A denial stamp can't be undone but an approval stamp can be overwritten with a denial stamp. Don't stamp until you're sure. I kind've expected the stamp switch to trip some people up.

I probably won't have an external readme except for credits or whatnot. I'll see if I can fit something referencing the stamp situation in the bulletin.

2013 March 14

Thanks for the info everyone!

In non-glaring issues, it seems odd that the fellow on the 8th day didn't appear to be detain-able.  I couldn't get any correlation other than "matching data" between the name on the back of the note and any part of his id or passport.  Seems to match the "suspicious" tag quite well.
(I was able to pass the note to him and send him on and send him through without giving him the note.)

This guy is from The Order of the Ezic Star. You learn more about them and why they can't be detained later.  Well, hello there!

I really love this game and the direction it is going. Especially the new scripted parts are great.
Two things I noticed:
- The first days ended quite abruptly without the crowd walking away while there was still the last person in the booth.
- The "Protocol Violations" reset each day, so I can afford a lot of mistakes. I know this would make the game harder, but it would also be more realistic if laxness was penalized harder.

Thanks! I'll check the timing. I think you're supposed to always see the crowd dispersing but maybe if the timing is just right the day will end before that. I had a feeling it was too lenient with the citations. This has an effect on the night-time budget stuff, which I haven't balanced yet, so I figured it was better to be too forgiving for this build. I'll probably end up reducing the number of non-penalty warnings or jacking up the penalty as the game progresses.

I forgot about a third thing. On OS X, the alpha version used the full screen. The current beta is centered with a huge black area filling the rest of the screen. I liked the older way better.

What resolution is your monitor? The game is 90 pixels wider now so it's possible you got boned on the whole-pixel scaling. There's unfortunately not much I can do about it except go back to 3:2, which I think is much worse for gameplay with less space for document shuffling.

I encountered three very, very minor problems in Beta 0.5.5:

Great list, thanks for this! I'll fix each of those before final.

In relation to posts by other people, it seems like a difficulty setting might be in order. Daily violations stack, less forgiveness, etc. Maybe you match the name of the person on our current last day to them for a tiny, tiny dialog? Then you could add some distrust systems for later days where dialog is directly monitored instead of only in relation to documentation being misread.

I'll give some more thought to a difficulty level. It does kinda seem like it's necessary. I don't follow the dialog suggestion though.

Edit: Oh, one last thing. Would it be possible to have a toggle-able setting for the nudity in scans? It would make it easier for people to advertise your game through videos. Smiley

Good point. I'll add a censorship setting.

---
Btw, did anyone catch Dari or Vince?

2013 March 14

Btw, I got penalized for letting a guy in who told me a wrong duration for his stay. When I asked him about the discrepancy, he corrected himself to the right value which was also stated on the entry permit, so everything seemed fine and I thought it was an intentional/scripted slip-up for the guy. It seems I was expected to send him away -- the game is probably a little bit strict here. Smiley

It's a bug! Just checked the logic and it's not clearing the error properly after he corrects himself. Will fix.

- It's odd to me that, even if the fingerprints match, you get a citation if their new alias isn't on the list. The fingerprints matched! What more proof do you need? Maybe the records need updated.

This basically means the permit (or idcard) is forged or from someone else. So his identity is right but the doc is wrong. DENIED.

- The sounds add a lot to the game. My girlfriend thinks the loud speaker sound is a bit creepy, though.
- I get citations for invalid durations when people correct how long they're staying after getting it wrong at first.
- Later, I denied someone for the same thing and got a citation saying they were cleared for entry. >.>

Yup, same bug as above.

- Once, I didn't get the option to collect the fingerprints of a person with a discrepant picture.

Fingerprinting isn't enabled for the first few days so these guys have to be rejected outright.

[minor spoiler]
- The "Brothel Help." It was a little unclear what "do something" meant. I got a citation for denying him and the reason was just "brothel help: invalid."
[/minor spoiler]

That's another bug. It shouldn't issue a citation since the 'task' is outside the legal border rules. If you can believe, I never once let that guy through in my testing (morals) so I never saw this citation.

Surprisingly this game is fairly immersive when it comes down to it.

Thanks!

Will others still try to smuggle contraband in? It's kind of weird how one day there will be one thing you specifically have to look for, and the next it's just gone.
Honestly, almost every one of the people I searched I detained, so I don't see how many of those people could've formally complained!

Yeah every time a new mechanic is introduced, the errors will tend to use it much more. There's nearly a new mechanic every day at the beginning so it definitely feels like the immigrants are somehow cooperating with the inspector's learning process. Lips Sealed There should be more contraband after the learning settles down.

2013 March 14

That's another bug. It shouldn't issue a citation since the 'task' is outside the legal border rules. If you can believe, I never once let that guy through in my testing (morals) so I never saw this citation.
Neither did I. That's what confused me.

Sorry, meant to say that I detained him every time. Never tried just denying him.

Just found the bug. Thanks for the heads up. You should get a citation for denying (since his docs are all clear). But it's supposed to say "Applicant clear for entry" on the citation instead of the "Brothel Help" thing.

I now realize this is kinda weird since your two options are to arrest him or let him through. Seems that if arresting is ok, you should be able to just deny him without penalty. Not quite sure how to resolve that.

2013 March 16

Only thing I noticed that no one else seems to have posted: after taking my third penalty, the printout claimed I had been docked 10 credits, but I was only docked 5 credits in the end-of-day summary.

Nice catch. You're the first person to notice, including me. Gotta fix that.

I'd just like to say that your games are both amazing and inspirational, dukope. I played through The Republia Times and got a few laughs and some quick thinking done, was amazed at Mightier, and am going to buy Helsing's Fire for sure.

Wow, thank you for the kind words! Smiley

Also, I want to offer my services as a linguist-y person and design some languages for you.

I'll keep this in mind but I don't foresee the need for anything quite like that in Papers Please. I appreciate the offer though.

2013 March 16

Upscaling

For a while now, I've been thinking about how to take this pixel-graphic game and upscale it to a modern or even retina res. Although I personally like old-school pixel graphics, I don't think the appeal holds for the general population. Recently I started playing around with some options.


Hello Neighbor

I started with the game's native res of 570x320, then scaled it up x2 using nearest neighbor scaling:



Looks good. As designed. Pixelly.


Vectorize

My original plan was to manually (using Illustrator's LiveTrace) vectorize all the game's graphics, save them as SVG, then rasterize them to the appropriate resolution on load. The faces in Helsing's Fire got this treatment and it looked great. For Papers Please, This is a much bigger task than it sounds like initially, mainly due to the upgrade from pixel fonts to proper TTFs. That requires all new font selections and basically blows the page layouts I've done so far. Working from the screenshot, I vectorized everything to get this:



Hmm.. Not as f*ckin rad as I expected. The docs are much harder to read now and it feels like an inconsistent level of detail. Some of that could probably be fixed with fatter typefaces but I was tired of looking at fonts at this point. I also really miss that "ARSTOTZKA" font on the entry permit. Couldn't find anything like it in TTF.


There's Special Stuff For That

Ok, next try: Fancy pixel rescaling. In these modern times, there are a whole bucketload of fancy pixel rescaling techniques used in the emulator scene: EPX, SuperEagle, Super2xSa, etc. I researched a few of these before stumbling on the daddy of them all, hqx. Searching for resources on that led me to an impressive pixel-to-vector algorithm that regrettably doesn't come with source code. It's not a total loss though, as they've set up a great comparison page where you can compare the results of many different algorithms easily. Here you can see hqx does really quite well.

Based on that promise, I grabbed the hqx source and compiled it for OSX with some help from this post on the cocos2d forums. Some scaling techniques can handle dithered areas well, but hqx apparently isn't one of them. So as a first step, I converted all the dithered areas in the original image to solid blocks, then ran hqx:



Not bad. This has a much more consistent level of detail. The text gets a _little_ weird, but I could fix that manually. It even maintains the pixel style without actually being pixelly, which I like.


Whither Dither

Going back to compare hqx to nearest-neighbor, however, I'm still sorta drawn to the rough original. Especially when looking at the non-dithered version:



Still chunky, but doesn't have the obvious low-res dithering.

No Conclusion

And that's where I am right now. Haven't been able to decide for sure but I'm leaning towards hqx, with hand-tweaking and assets pre-baked at 2x, 3x, and 4x.

2013 March 17

For the game: Would a settings area be added? I'd like direct control over fullscreen instead of clicking a open in browser button, as well as controlling the volume. The music is good, but relatively loud. I assume the difficulty setting and nudity toggle would be in a setting area anyway.

Yeah I'll get a settings page in there. At the moment, you can toggle fullscreen with ALT+ENTER (windows) or OPTION+RETURN (osx).

Bug (?): You can toggle "rent" in the day end screen even without the checkbox. Just click on the amount. (it's a bit finicky about clicking, try hitting the red pixels exact) The name submission doesn't seem to work. I can't edit "YourName, Here" or sex.

Hah, that would explain why someone was mentioning the "optional" rent. I intended to make it mandatory. Just found the bug and fixed it, thanks. To submit your name, you need to enter your email address and click the activation link that gets sent to you. You can't edit that text directly. Maybe I'll bake the text into the image to avoid confusion.

Passports

A while back I mentioned (and it was suggested) that the passports from different countries look too similar. As part of the general filling-out of assets in beta, I've added unique details to each passport style:



They're all still pretty basic designs but hopefully it's now easier to differentiate the nationalities at a glance. Watch out for Kolechia's spears. Those things are sharp.

2013 March 17

Thanks very much for the detailed feedback Panurge!

The key moment for me came on the second day when I found myself scrutinising a man's documents more carefully than usual just because he had brusquely told me that he was in a hurry. You can just wait, you bastard, I thought. Now that's immersion!

I like that encounter because even though he (or she) is a dick, the docs are in order so you have to approve entry. I imagine there's a fair bit of those teeth-gritting moments for real immigration inspectors. I stamp the passport all crooked in those cases.


** SPOILERS IN FABULOUS GREEN **

If I remember correctly, the girl who asked for help actually gave me a brothel card on her way in. Given her story, she seemed unusually keen to advertise!

That card ties her into the other girls and the brothel story thread so I figured it was important to drop. I tried to make her seem less than enthusiastic about handing it over though.

I turned the brothel owner away without detaining him ... Perhaps this course could also be seen as helpful?

Other people have sorta mentioned this. I wanted this encounter to be a case where the player could "do more" than just denying entry.

My family died on about day 4 or 5...Did I miss something I should have been doing (I think I fed and heated them as best as I could)?

No, you didn't miss anything. The night-time family stuff is functionally implemented in beta, but it's not balanced yet. When I'm playing, I completely blast through each day with loads of money so it's hard to figure out what the average player will make. I'll get it tuned better before release.

A smuggler gave me a bribe for letting him through (which I actually did by accident). He told me it was 'as promised' but I don't think he had mentioned anything previously. I still pocketed it, of course!

Whoops! I can fix that so he only gives you the bribe after offering.

The citations troubled me a little because they seemed so omniscient....The citations do serve a useful purpose in letting players know where they have gone wrong when they are learning to play, however. Perhaps you could have an initial probationary period of a few days during which time someone will supervise everything you do?

Yeah the citations are something I decided are absolutely necessary for the gameplay aspect. Going back to the alpha, I find it really frustrating to not know exactly what I missed when getting cited. The immediate feedback also allows me to skip a lot of introductory tutorial text and let the player learn from their mistakes as they go. Story-wise the citations are a little thorny but I have plans to address that as well.

I couldn't work out if there was a time limit to each day.

There's both a time limit and a quota. You only get paid for applicants processed before 6PM, but all days have a minimum number you have to process. So the faster you are at approving/denying, the more money you'll make.

The 'interrogate' button seemed a little small and I missed it quite a few times when clicking. Could just be my problem, of course... I would have liked the countries to be listed in the handbook by alphabetical order, so that I didn't need to keep returning to the map.

I'll see if I can make that button a little bigger. Back when there were supposed to be more options it needed to fit exactly over the mic. But now it's the only thing there so I should be able to adjust it. I'll also change the country order in the rule book. I never flip pages (always go back to the map first), so the order is basically random at the moment.


Ohh... the page says "Enter a working email address for a confirmation link to submit your name." (emphasis mine). The way most websites work is that you fill the form, then they send you an email with a link to confirm the information. Perhaps drop the "confirm" part from the instruction.

I just updated the page, baking the name into the image and rewording the text Smiley


Okay, my girlfriend and I both agree that the vectorized one looks really nice, especially in the first-person view. The hqx one also looks really nice but not quite as nice as the vectorized one.

Ok, good to know. I'm now thinking about vectorizing just the faces separately and using hqx on the rest, with hand-tweaked fonts.

2013 March 20

@DustyDrake
You don't have any control over the quota so I think it's ok to not show it and expect the player to just process until the day magically ends.

@wmcduff
I'm thinking to add tabs for the 3 sections, but probably not one for each country. I kinda like flipping around in the book.

@Core Xii
Clicking the loudspeaker out of turn doesn't have any effect. I just thought to put some dialog there for people who tried it.

@Blambo
Hehe, sorry about the headache.

@accolon, phi6, alastair, etc
The pixel/vector split doesn't surprise me. I like both styles, personally. A few people really prefer the vector since it's easier to read. Most people say the pixels are better. I think that once you get outside the game scene, and especially the indie scene, there's less focus on this and most people would feel more comfortable with smooth vectors.



More Faces
One male and one female sheet. It never ends. Most of the clothes look like they're from Star Trek at this point.

Click for timelapse drawing again.


Bombcasted
Had to share this. The Giant Bombcast guys talk about Papers, Please (at 2:23:50): Giant Bombcast 03-19-2013

2013 March 20

2, 1 is 185 cm with his hair

Heh, there's an xml file where I enter how high the hair goes above the head in order to calculate the height correctly. That guy's hair is the tallest at 18 pixels. True height = ~168cm.

Thanks Glic :D

2013 March 23

Intro Screens

More simple than stunning.









2013 April...

2013 April 02

Back from GDC! Another great show this year. The big surprise for me was seeing my game, The Republia Times, mentioned in the DIY Game Revolution talk by Porpentine and Terry Cavanagh. I should probably quit now while I'm ahead.

I have to say, given the time period you're hearkening back to, the pixelly version seems to evoke that feeling the best, even if it's actually better than what was possible at the time from what I remember/can research.

Thought you had my back, arne!

**Spoilerish**
Anyways, I just had a few clarification I wanted to make. When I played it seems like I completed a few "missions" and I got two token things. At first, I thought this was money and was thrilled. But when I got the EOD screen, I didn't know what to do with my new shiny things. I'm assuming the tokens are just a means to mark advancements, but I think this could be made more clear in the End of Day screen.

I haven't fully worked out what to do with the tokens. I like that they're unmentioned and mostly hidden. They'll probably just stay as meaningless achievements but I'll try to add some explanation.

Yeah keep the pixels, I do like the higher res font but, the pixels are better.

Games that mix pixel resolutions make my eyes twitch. So, unfortunately, going with pixels means accepting the blocky font.

Pixels vs Vectors

When I say stupid stuff like "the general population prefers vectors", I'm really just talking about myself. To me, the look of the game is not dependent on the pixels, but on the clean shapes and colors. Cleaner = better IMO. Pixels are great but they introduce an unintended roughness. My ideal game is nothing but razor-sharp visuals.

BUT, after a week at GDC, considering everyone's input, and some more thought, I've decided to just stick with pixels for Papers Please. I guess the look has grown on me and I'm also not enamored with the vector alternatives. After all the game content is done I may re-evaluate the visuals but for now I'm happy with chunky pixels and low-res fonts.

Thanks to everybody (except traitor arne) for chiming in!

2013 April 06

Trailin'

I've taken a break from development and spent the last few days working on a trailer. This is in preparation for setting up a Steam Greenlight page. There's still a month or so of work left on the game but I figure I should take the time now to get my ducks in a row. I'm not too optimistic about Greenlight so the sooner it's set up, the longer I have to collect votes.

I hate doing trailers until the moment it's done, then I'm glad I did it. For the past few projects I used iMovie but this time I'm upgrading to FCPX. So far so good. I really prefer this clip-style editing over other NLEs like Premiere.



My main problem with trailers is that I am a complete slave to synced music & visuals. I almost always end up writing tons of custom code to export synced frames from the game. I tell myself: "This'll be useful later, I can swap out the characters and re-export easily". It's always BS but I can't help it. Papers Please is even a little tougher because the theme music changes tempo as it progresses. This gives the track a nice racing effect but man is it a bitch to sync video with.



Anyways, I'll probably end up spending a week on this trailer. From there I'll do the rest of the Greenlight rigamarole, then get back to development and finish up the game.

2013 April 11

New Bird
Old bird was boring. New bird is nonstop screaming at top volume.

2013 April 11

Greenlight

Finally finished the trailer and set up a Greenlight page. Please vote the living hell out of it.

2013 April 11

Hmm, the logo on Greenlight doesn't look quite right...

DISCREPANCY DETECTED
No thanks / Not interested
Next item in qeue

There's another way in.

2013 April 13

Thanks everyone!

Here's the current percentages:

Bit depressing really..

..but according to the top averages, in the ballpark:


In summary, Greenlight is weird and I'm still worried.

2013 April 13

Wasn't Valve suggesting to take down Greenlight and do it 'correctly' based on what they've learned or something?

Yeah I've heard this too. But who knows what they're planning or when. For all I know it could be worse than GL. Right now the goal is to get at least one game on Steam. After that there'll be a Valve account manager contact and GL won't be necessary for future titles.

Interestingly, a game I made with my wife, Mightier, was in the very first batch of indie games added to Steam ~4 years ago. But that was freeware and whoever handled it at Valve is long gone.

2013 April 14

Although, I found the citation penalties were too soft, you could actually just stamp everything without looking and still make $70-80 each day after deductions. Also, it turns out that paying penalties is as optional as the rent, and as a result I managed to get $815 in savings at the end of the 8 days, with all of my family "OK".
There wasn't even any consequences for doing so, the only people that went on to cause trouble had legitimate documents anyway...

This is a good point and something I never thought to try. I'll probably end the game after 5 penalties or something.

Finally, if you play the game through again and try refusing those Kolchians entry, it becomes pretty obvious that the game is forcing you to let one through...

I don't have to make the paperwork actually Kolechian, which might help. But really there are certain scripted things that will play out the same each time no matter what. A proper endless mode separate from the story mode should help with replayability.

Perhaps instead of deducting money continually, after 4-5 penalties the day ends prematurely due to the immigration inspector needing "counseling".

Yup, that sounds good.

Oh, and the end-of-day tally is buggy for me and a friend, and text appears over the button to go to the next day. Do you think that implementing a scrollbox for that would help?

I hate scroll boxes but I'll figure something out. Maybe drop to a smaller font if there are too many items.

And last thing! Will there be hotkeys to easily navigate through documents?

I'm not too crazy about keyboard shortcuts and I'm not even sure how that would work to navigate documents. I've thought about simplifying this aspect of the game a couple times, but shuffling things around is a pretty critical element of game's mechanics. Right now you can use the space bar to toggle inspection mode and I'm thinking to add right-click to inspect+highlight in one go.

New Build, Not Exciting

I finally broke down and made a new build with minor fixes. There was a rare game-stopping bug on day 2 that someone helped me track down and I got tired of explaining that the day 3 no-papers guy was not a bug, just bad design. Curious to see if my brilliant solution works.

BETA 0.5.7 - GRAB IT HERE

  • Added better hints for day 3 missing-papers guy
  • Fixed progression stopping bug on day 2
  • Fixed penalty after correcting mistaken visit duration
  • Updated bird logo. Now with screaming
  • Fixed clickable Rent/Penalties on night screen

2013 April 17

oh my god, they are so expensive...they sent me a package and Iwas like "oh sure that would be awes-" $20K  FOR ONE WEEK HOMEPAGE AD

Get the eff out of here right now. 20,000 American dollars!? Although, given the absurd way that it completely dominates the entire page, MAYBE NOT SO BAD.

Just played your beta of your game. I liked it a lot. I hope you will seriously consider your thoughts (quotes above) and adding a MP component to your game....Granted this could get quite complicated. Anyway Ideas a free.

Thanks, and yes. I'm still thinking about a multiplayer side to this, but definitely not for the first release.

Love your game, simple and fun!
But I found a bug in day 6, the suicide bomber wasn't show up which made the game continue forever. He appeared at first time but after I restarted that mission(made many mistakes), he never shows up again.
I tried to restart the game and restart my computer. Nothing fix that bug.
Or could you tell me where is a save file of this game? I will try to edit save file just for a work around.

I need your help to fix this! This is a rare bug that's affected a few people and I haven't been able to track it down. I'll PM you with some questions.  Beg

2013 April 18

Sniping
(Ignore the double cursor. My only LICEcap complaint)


I wrestled for a while with how to handle the sniping. There were a brief few microseconds when I thought to cut it. Those moments passed without incident and now we're left with this.

The Problem
The problem is that sniping with a mouse is way too easy. Previously I suggested it might change from a cross-hair to an aim-line or some other silly thing to increase the difficulty. Obviously that's a terrible idea but I still wanted to make it harder.

Sorted It
So this is my solution. The sniping is still easy. What's hard is getting the gun. It's not just about moving your cursor up to the top any more. You have to be fast. In order to access a gun, you first need a key. You'll get these through the course of the story. Once you've got a key, it sits on your desk wherever you put it, buried under the papers, unused. When the moment strikes, you'll need to find the key on your desk, unlock the gun drawer using the key, select the gun, then shoot the runner/trespasser/enemy. If it sounds like a pain in the ass that's because it is. It uses the same standard interface of paper shuffling and drag and drop, but with an extreme time limit. The level of panic is just right. By the time you get the gun out, there's only a second or two to aim and shoot before the grenade is thrown.

Armaments
There'll be just two guns, unlocked as the game progresses:

Tranquilizer rifle
  • 3 rounds
  • less precise aiming
  • non-lethal drop in one hit (death animation above is wrong, it'll be bloodless)

Sniper rifle
  • 2 rounds
  • precise reticule
  • kills in one hit (bloody)

The tranquilize gun comes first so you'll always have the option for non-lethal force.

2013 April 18

Oh, that key idea is a stroke of genius. It ties the sniping in with the main game mechanic nicely.

Pretty much the only reason I take a shower any more is to think about stuff like this.

Can we shoot people in the crowd or the guard?
Perhaps if we're bribed a certain amount...

SSSSSHHHHHHHHH! Droop

2013 April 18

Finally got around playing it.
It's neat, and very interesting, but on a day 3 I got a man who said "Here we go" on a "Papers, please" request but gave me no paprest. So we just stared at each other for some time. Then I have closed the shutter. Then opened it. Then I have tried to stamp night club ad and give it to him. Then I said that entry is not guaranteed on a megafon. Then work day was over, but me and the man stayed there. I have tried exitind to main menu and trying again, but the same man did the same thing, so I'm not sure if this is a bug, or was I'm supposed to do something else?

Ok, you gotta help me out here. When you closed the shutter, it gives you a citation with instructions. Did you read these? Did you follow them? How much did you understand and how far did you follow this lead?

I added this extra hint (along with a post-it note on the bulletin) for beta 0.5.7 in the hopes to solve the roadblock here. But it still doesn't work. I'd like to know which part is still failing because I've got to fix it for final.

Don't feel bad, my design is still failing here and lots of people still miss this.

2013 April 18

I think it's because you don't need to spot out the differences with your booth software in order to successfully deny people entry.
...
It happened to me the first time I played though as well.

Ohhh, I got it now.
...
I think I got confused because before this moment every time you accept or deny entry by stamping passport. And it's sudden change in this main mechanic.

(on a side note, I wish I could stamp other papers too, without any affect on a gameplay, just for the sake of it)

Gotcha. Thanks for the info guys. I can see now that the leap at this moment from just stamping to being gated by inspection is too much. Citations and bulletin hints or not. Gonna put some more thought into how I can lower this barrier, smooth out this bump, and nail this metaphor.

2013 April 19

@Comrade Beric
Thanks! And yeah, the percentages don't really matter. Valve just likes to dump a bunch of stats onto the author's Greenlight page. It's nice for the curious, but Greenlight doesn't even do approvals on a strict stat ranking.

@Crunchepillar
That sounds like a crazy bug. Gonna look into that one. The "deny everyone" or "approve everyone" technique will get fixed. More than 5 citations or so on one day will be a game over.

@E_FD
The "Brothel help invalid" thing is fixed in my dev builds, but beta 0.5.7 is just a few tweaks to 0.5.5 and doesn't have that fix.

@Comrade Beric
Thank you for the suggestion but I'm probably not going to add a special button or technique just for returning papers. At least, not right now. I'll think about it for a bit. Although it sounds kinda cool at first, I want to avoid adding a right-click-drag function for this one feature.

Pimp Arrest
You need to arrest the pimp to save the girls (talking about the dev builds). Otherwise he calls up his homies and they kill everyone. Denying will also penalize since his papers are in order.

The Missing Docs
Thanks johnki & E_FD for the extra explanations. As Sar says, there are explicit instructions in the bulletin:


But the problem is the conceptual change from:
    Get the docs, check em out, inspect docs for fun
to:
    Get nothing, inspect certain rulebook rule to proceed

Some people make this leap no problem. For others it's so far off the radar as to be nonexistent. It even looks like a bug and once that happens, brain over. I'm working out a way to fix it for everyone. Fun challenge actually.

2013 April 22

Suddenly, Mods

If you've poked around in any of the beta's asset directories, you may know that all the game's assets are editable. Part of this is because Haxe/NME doesn't have an asset packaging system built in. Part of it is because I thought it would be cool if people could see how the game was set up.

While I never planned it, people have already started modding the game. This is a weird feeling for a game creator; especially when the game isn't done yet. There are some cool mods and some tasteless ones. Given the game's subject matter, this isn't surprising.

For the latest beta, I decided to address the issue. There were two options:

    1. Lock down the assets and prevent modding
    2. Support mods properly

I first implemented #1. That meant writing a build process to bundle/encrypt the assets and an in-game module to load/decrypt them. Haxe/NME made this amazingly easy and it really drove home the power of the language and tools.

I was pretty set with that when I came to my senses. Once the assets are out (as in the previous betas), it makes no sense to suddenly lock them down. It's a dick move, even. If I liked a game enough to spend my time modding it, I'd be pretty pissed if the next build disabled mods. Even if they were unofficial. I got my start in games with Quake mods and have some understanding of the effort and devotion that goes into modding.

Ok, so I decided #2 was a better choice in the end. At least for the pre-release builds.


Proper Support

Adding proper mod support wasn't that hard. There are 3 important things in my opinion:

1. Make them easy to distribute
Again, Haxe/NME pulled through here. There's a great exsiting api to extract zip files in Haxe. Using that lets modders zip up their asset directory into one nice .ppmod file that's easy to download. A .ppmod can by played by saving it next to PapersPlease.exe and drag+dropping it onto the executable.

2. Don't require overwriting original assets
The currently available mods are basically just a zip file of the entire beta, including the exe and all (edited) assets. This is wasteful and unsafe. I know I'm less likely to run a strange exe than I am to run an asset-only mod. Working over the original files is also a painful way to develop a mod and it's better to have a set of "override" assets instead. This allows including only the edited assets in a mod, which increases the likelihood that it'll work across multiple versions of the game.

3. Assign visible credit
This is the most important for me and there are two parts. First, it has to be clear that I didn't create the modded content. This is especially true when someone makes a tasteless mod. I don't want people to make a connection when seeing one of those and "Created by Lucas Pope" on the title screen. Second, good mods are a lot of work. If someone puts in the time and effort to make a mod, I want them to get credit. When running the latest beta, the game displays the mod name/author on the title screen and links to the author's website.


Reaction

We'll see. Even with a more complete modding system, it takes a few additional steps to create a mod now. Some people are already complaining about this so I guess you can't win sometimes.

Hopefully a few good mods come out of this, but for now I'm turning my focus back to finishing the game.

2013 April 23

But obviously some people are bothered by it (even though they really aren't very detailed), so if it was just a checkbox in the options menu that defaulted to off, that'd make everybody happy.

This is exactly how it's handled now.



In general, I'll sacrifice message for practicality but it does default to 'on'.

2013 April 24


Thanks to everybody for the comments. I'm gonna dump a huge response here. It's getting harder and harder to respond to people individually as the game gets more exposure. This is a problem I always wished to have Smiley

fleur: Looking through this thread, I am wondering why the player must get a rifle, necessarily?
It's a gameplay thing that I'm stubbornly attached to. That's basically all there is to it. I haven't finished integrating it though, so it may still be cut if I find it doesn't work.

zede: Are you going to release this on mobile as well?
I'm plotting it. After PC/Mac, and likely only iPad due to the size constraints.

John Sandoval: it wasn't clear to me till about day 5 that i had to/was able to feed my family
I've added a message about this on the first day's night screen. (final branch only, not in betas)

Comrade Beric: Point of fact, I'm still unsure of exactly how I get paid.
Yeah the game is intentionally vague about this. And a lot of other things I guess. I may put a small number on the night screen somewhere to incidate how many people you processed. With that it'll be possible to deduce (without being told directly) how the money is awarded.

arkhometha: I detained him [the pimp] and the newspaper gave me he the ringleader was arrested but the girls still died. I thought the blame was on me.
Are you sure about this? There are two exclusive scenarios:

- Detain him and get this news:
   @ News Human Trafficking Ring Shut Down! \ Grestin Checkpoint Officer Nabs Mastermind \ Face:M-11-12-8-5
- Approve/Deny him and get this news:
   @ News Dancers At Grestin Club Found Dead! \ Newly Immigrated Girls Victims Of Human Trafficking

Are you saying you saw both pieces of news after detaining him?

crazysam: Can you share how you handled full screen / windowed switching and most importantly, window resizing?
There is a top-level sprite (child of the stage) that contains all the display objects and handles the resize message:

   public static var kPixelWidth = 570;
   public static var kPixelHeight = 320;
   ...
   private function applySizing()
   {
      ...
      // choose resMult to fit stage size
      var mult = 1;
      while (true)
      {
         if (kPixelWidth*(mult+1) > stageWidth) break;
         if (kPixelHeight*(mult+1) > stageHeight) break;
         mult++;
      }
      resMult = mult;
      scaleX = mult;
      scaleY = mult;
      x = (stageWidth - kPixelWidth*scaleX)/2;
      y = (stageHeight - kPixelHeight*scaleY)/2
      ...
   }


That puts the play area in the center of the screen at the highest possible whole-pixel scale. This often doesn't fill the screen, so there's also a set of 4 black bitmaps (also children of the stage) arranged around the play area to mask it.

Arhemont: So basically all the actions are wrong. ... I would love to see this principle implemented in all of the stories.
Heh, I'm probably not going to take the moral pain that far.

Lt_Commander: [Sweet fanart]
Awesome!

Gimym TILBERT: Make it a facebook game...
Stop right there.

seagaia: Hey, could you document how you did encrypt the assets with #1
I can give you the gist but obviously not all the details. It'll take some time though. Remind me in a PM.

xclpr: [idea]
That sounds kinda cool, but the game is mostly mapped out in my head and such a feature doesn't fit well with what I have planned.

DannySpud: The omniscient supervisors make my "job" feel pointless.
I understand this point of view, but without the immediate citations the game is broken and unfun. You can try the alpha build to see for yourself. In that version you are cited but it doesn't list the actual mistake. There are some posts earlier in the devlog discussing it. I'll address the "inspector inspector" at some point in-game.

szron: Pages of a passport ... Computer system ... "Secondary" ...
I originally envisioned checking previous VISAs but, as Armageddon said, felt the complexity wasn't worth it. Also, the game originally did have a computer telex system for getting information from the Ministry of Admission. It was cut a pretty long time ago. I think there are a few devlog posts about it but the summary is that it wasn't needed after I implemented the current fingerprinting system. Finally, I think a 2nd round of interrogation would slow the game down too much.

whyareall: A suggestion that someone made a while back that didn't seem to get notice was right clicking for discrepancies, instead of having to pull up the big, screen-covering thing that blocks you from moving documents around and wastes time.
That was my suggestion Smiley. It would just be a shortcut for entering inspect mode and selecting with one click. Inspecting will always be a separate mode where you can't move the documents. I haven't implemented it yet because it's such a minor optimization that I haven't felt the need.

SliceOfDog: [bug with rejecting/denying everyone]
This'll get fixed with escalating penalties. Around 5 in one day will be enough to game-over that night.

SliceOfDog: [having a smaller rulebook that pins]
There are many ways I could make the interface more optimal but as mentioned before I'm happy with the current level of required paper shuffling. Makes me feel like I'm working. In a good way.

erikchan002: [bugs] ... Maybe a key for calling the next person in-line?
Thanks for the bug reports. I think it's important to make the player look up to the top area every once in a while to click the booth. This is mainly why I put the button there (instead of keeping it on the desk).

2013 April 26

I've seen lots of people here and elsewhere asking you to increase the desk size -- I have to disagree. Please please please don't. I absolutely love that I have to shuffle papers around on my tiny, disorganized desk to find what I'm looking for.

Yeah, don't worry about that. I'm definitely not changing the desk (or any) size at this point. For those that want a bigger desk, play the alpha to know what a small desk is. The beta IS the big desk.

it would be nice to have some "hot" keys to do some things, in real life you have 2 hands to work with, so it is a little aquward to do it with only one hand

This is the only logically-backed suggestion I've heard for adding hotkeys. I'll think about it.

How about an endless mode where you play day by day and the game randomly gives you different "rules" every day? This way the full variety of the game's mechanics could be in use!

Yup!

The number of users in this thread who've signed up just to post about this game is staggering. A real accolade!

Thanks and lemme just say:

If you signed up recently to post here, please check out the other awesome games in
>>THE DEVLOG FORUM <<
You can start with Bishop's own Trash TV


2013 April 27

I wanted to point out that whenever you have to ask someone to provide a missing document and they produce it, all of their information is always correct. I have tested this over 15 playthroughs and it is always true so far.
Yes, if there's anything superficially wrong with the papers (like a person with different, but known, names, or whose appearance is different from the picture in the passport, but the prints match), ultimately, there is always nothing wrong with them. Red herrings would be more fun.

An interesting thing I found very early is that the more errors an entrant has, the easier it is. The beta is currently limited to at-most one error per entrant. As you guys have noticed that makes it too predictable so I'm changing it to handle this case better. Documents revealed later may have errors in the final version.

Beta 0.5.13

GRAB IT HERE

Just a few bug fixes.
  • No new content.
  •   Show helpful error when trying to run without enough OpenGL.
  •   Fixed some issues with continuing a game in progress.
  •   Fixed "Invalid News0" citation message.
  •   Fixed crash when continuing from day 9.
  •   Fixed double-detain bug on scripted entrants.
  •   Corrected citation penalty amount text.
  •   Removed Jorji and made day 3 a much more casual-friendly experience.
  •   Just kidding. It seems the last fix worked. No more changes to day 3.

There was one major issue I wanted to fix with this build. On some people's machines, the rendering is totally screwed up and the game eventually crashes. Turns out it was related to missing OpenGL drivers. The game now prints a useful error message in this case.

Hopefully there's nothing majorly wrong with this build as I'm hoping to move off the beta and start the push for final release.

Endless Mode

An endless mode is something I've been mulling since the beginning, and it's a common request. So now I'm committing to it.



This will be a separate mode, possibly unlocked after completing story mode. The days/entrants/rules/events will be randomly generated with some basic progression. I may or may not include the night-time money management here. Will have to test it out. This mode also might include some kind of online leaderboards/rankings/integration. Depends on the effort/payoff balance.

From Here

I've got the story and mechanics for the rest of the game mostly mapped out. There's a lot of stuff I think is cool and that I'd like to show in here. But I kinda want the rest of the game to be a surprise and am thinking to avoid posting any further content here.

Not sure how I should handle this actually. Any thoughts? At the very least, I'll respond to comments here. And I'm planning to keep a private devlog of my progress. Something I can post here after the game's release.

2013 May...

2013 May 02

Holy shit! Thanks everybody! That was fast! I'm thinking to write some nonsense on why I think it got greenlit in such a short time. I planned nothing but in hindsight might be able to explain it.

-------------
@gene123: [Ideas]
There are some good ideas here. The reducing food costs was planned, but I completely forgot about it. I'll definitely do that. Luggage is something I cut for good after implementing the search system. It just turned out to not be necessary enough to be worth the work. The other stuff is cool, but not quite what I have in mind.

@qqqbbb:  [rightclick drag papers, slavic gender names]
Someone else suggested right-click for dragging papers back. My response was that I don't want to add a whole new drag mode to optimize out a part of the game that I think is important. For the names, I actually have some gender consideration for the names, but I guess it could be wrong. The problem unfortunately will only get worse when I integrate the user-submitted names. There's over 10,000 of them now so I'll probably just punt on any kind of gender correctness.

@arkhometha:  [newspaper bug]
Thank you for trying to reproduce this bug. Someone contacted me with a video showing the glitch. Basically, you have to correlate his name with the card, then when the detain button pops up, click it and immediately give him the card. The detain button will pop up a second time. If you hit it then, the newspaper will show both stories.

@Gila:  This kind of takes the challenge out of the game and reduces the replayability value at least for me
The main story mode will only have a small amount of randomness. I'm more inclined to get the narrative right than to make it replayable. Hopefully the endless mode can satisfy that itch.

@Angrytemplar:  For some reason medicine didn't work
Medicine doesn't immediately cure sickness. I'm not sure about the exact stats but it can take a few days to get better. Could this be what was happening?

@Monolith:  Consider adding a one-off immigrant who wants to buy your "dirty" photos.
SSSHHHH.

@GepardenK:  [family stuff]
I'm 80% set on the current family setup. But people are pretty consistent in asking for more. So I'm going to keep thinking about it. I doubt I'll go as far as adding a shop menu. I've been thinking about ways to expand what's there while maintaining the vagueness that I like.

Re: Sniping
Trust me, you will want to pull the trigger and it will feel good when you hit your target. I've worked out a story arc that's deeply integrated with the sniping. This is my favorite arc so far so the matter is completely settled in my mind.

Re: The Eagle
As JohnnyG says, the eagle is not only a fascist mark. The world is overflowing with countries that use the eagle. I realize it's not normally associated with communism but it's a more eye-catching government-y symbol for me than a star or sickle. The original eagle was based on the Romanian shield. I wanted something more crazy and so switched to the current mix of screaming bird and American eagle.

Re: Ideas/Suggestions
Part of my goal for this game is to do a lot with very little. It's basically a single-screen game with a mostly-static interface. I've worked out enough of the story to think that I can make a good game using only the elements that are already there. That means I probably won't add new modes like night-time duty, walking-to-work, or pulling-guns-on-entrants. I know this sounds short-sighted, but please just give me the benefit of the doubt. Smiley There is still a lot of unexplored territory in only the features available in the beta. There's more I haven't shown and I want to explore that thoroughly before adding anything else.

2013 May 05

@Eigen: Will you be adding Steam achievements?
Maybe. I haven't gotten the SDK yet so I'm not entirely sure how much work it is. I kinda like achievement systems so I'll probably try to do something.

@Ghost13: [uv light, criminal fingerprints]
UV seals are on my if-there's-time list. It basically depends on if there's a need to introduce a minor mechanic complication later in the game. Criminal fingerprints are a cool idea. I've already got a mugshots system with pictures but I hadn't considered just showing fingerprints. Gonna think about that.

@Schrikvis: [post-effects, terrorist attack on queue, re-using names]
After some experimentation, I found that post effects didn't work well with the low-res minimalist style I'm going for. I have lots of cool attacks planned for the final and that's all I'll say about that Smiley For reusing names, I can't think of a good way to correlate an already-used name without a full list of processed names and I don't really want to do that.

@metasynthie: [totally awesome stuff about different run styles, can't verify gender with fingerprints]
Wow! Those run styles sound really cool. I'm a huge Doom speedrun fan but never expected to see that sorta thing for my own game Smiley Some of those won't be viable when I add the escalating penalties. But it kinda gives me an idea for some achievements. Showing gender on the fingerprint card is a good idea. Will try that.

@Willowcat: [family member job, weather, more corruption, censorship]
There will be lots of scripted night-time events affecting your finances. Family members getting jobs isn't one of them, but there's similar stuff planned. I'm undecided on weather. A couple people have suggested it but so far I haven't felt it's needed. The beta is around one-third of the game so you can expect plenty of interesting and corrupt individuals to follow. And finally, there will be an option to cover up the strip-search nudity.

@TacoDeBoss: [didn't understand inspecting notes or enabling detention]
Can you tell me when/how you realized you could inspect that stuff and enable detaining? Knowing that may help me figure out a good way to teach the concept.

@babac: [interrogation, nudity, don't like issuing city]
Interrogation can sometimes lead to the entrant producing a missing document. If you don't care about that, then currently there's no difference. As a practical matter, the nudity needs to be optional. I'm totally fine giving up a little bite from the game's message for practicality. You're not the first person to complain about the issuing cities. I think TB even explicitly ignored them. Again, this is one of those things (along with the too-small desk and lack of hotkeys) that I really enjoy about the game. An inspector needs to know lots of random facts. And the only cost of not knowing is time to look it up.


If you signed up recently to post here, please check out and comment on the other awesome games in
>>THE DEVLOG FORUM <<
Eigen's Pioneers is a good one


2013 May 07

There's no need to argue over Steam in here. It's a personal preference and I'm working to make the game available on other services.

2013 May 09

I'm not gonna post any more spoiler-ish stuff here, but there's still some dev things I can share.

Testing

As a one-person (and before that, two-person) developer, one issue that's always hard to deal with is testing. Having worked at big and small studios, I know how useful a skilled testing department can be. I also know how expensive they are and how hard it is to find good people.

Instead of all that people-related stuff, I usually try to figure out a way to test the game myself. Without actually sitting down and playing it forever. One common technique is to create an autoplay or 'soak' mode where the game can basically play itself. This lends itself well to procedural puzzle games and is what we did for Helsing's Fire. I wrote a simple bot that could play the game flawlessly and we set it running overnight during the last few weeks of the project. This was really useful in tracking down holes in the puzzle generation (finding unsolvable puzzles due to a logic bug somewhere), and plugging memory leaks (a common point of failure for iOS games).

Papers Please has hooks to do something similar. I could write a bot to move the mouse/click buttons, group these actions, combine groups, build scripts, etc. Some of this work was already done to automate the trailer capturing. But to take it all the way to autplaying would actually be a lot of work. And at this point I don't even want to test these things. What I really want to test is the high-level progression, story elements, and money balancing.

So instead, I split out the game's logic from the UI and built a separate fast-play UI that uses the same logic engine:



This screen lets me quickly play through each encounter. Either in order for a given day, or skipping around between entrants. It's useless for the tactile UI mechanics, checking animations, gameplay pressures from the small desk, etc. What it's great for though is testing the story and progression. And since I'm implementing the full game's story now, this fast-play mode is critical for experimentation.

When the story implementation is done I'll extend this mode to full autoplay for balance testing. I was never quite sure how useful this would be, but seeing metasynthie's posts about play style gave me the needed kick. Using some basic rules about what to do for different encounters, I'll script "play style" bots and send them through the game. One bot may deny all Kolechians. One may make a mistake on the first new rule encounter and never after. One may deny everybody. If I build enough of these simple styles, I should be able to set them loose to get a feel how the game will balance out for different players. This should also be a good way to incorporate an "easy" difficulty for the less-skilled styles.

Story

Most of the story threads are done so now the task is to arrange them (in spoiler-avoiding low res):



Right after taking this picture I copied everything into a spreadsheet to make editing easier.

My typical process for designing high-level game progression goes something like this:

1. Create a bunch of little pieces.
2. Make a grid.
3. Fill the grid with pieces.

From the very beginning I've been creating little pieces. For Papers Please a "piece" is an encounter, a character, a story thread, a document idea, a puzzle idea, an attack method, etc. I've got a lot of these and now is the time to arrange them. I want to front-load some cool stuff to hook the player, expand on longer stories in the middle, add new elements to maintain interest, and ramp things up to a climax at the end.

Once the initial pieces are laid out, I can easily rearrange them or add new ones to fill the gaps. I really like this part of development because it's when the whole game comes together. It's also hopelessly formulaic. I've tried designing by feel before and unfortunately it just doesn't work for me. I find it much more natural to impose a hard structure and systematically break problems up into small pieces, then combine them afterwards.

2013 May 12

Please stop posting about the pros and cons of Steam here.

TacoDeBoss, MegaScience, and ktom: This is a devlog for Papers, Please. It's not even remotely close to a discussion thread about Steam, of which there are surely thousands peppered across the internet. I'd appreciate if you could edit out your recent Steam-related posts since they have nothing to do with the development of this game.

2013 May 12

By the way - is there a chance that in the finished game there'd be multiple problems with a passport? I mean mainly situations where you need to take fingerprints and they turn out to be fine - it'd be interesting if that could happen, but there'd still be a problem somewhere. As it is it's a bit silly that if for example the passenger forgets to give you their passport and you ask for it, you can know with 100% certainty that they're clear. Smiley

Yeah. This was mentioned in the last few pages. The counterintuitive thing is that more errors makes the game easier, not harder. So in general, each immigrant will have at most one thing wrong. But this makes certain encounters too predictable (immigrant hands over a document after forgetting it) so I'll add an exception in those cases. In the final version, there may be errors in the newly-provided docs.

2013 June...

2013 June 04

@Phugmeister: [tokens, empy spaces on night screen, issuing cities]

There are only 3 tokens in the beta, so you got them all. The empty spaces will come up in the final game. And as RobRendell mentions, the issuing cities aren't as ignorable when the penalties are escalating. I still haven't gotten to actually balancing the escalation, but my goal is to force the player to think long and hard about ignoring any piece of information.

@Frostiken: [fingerprints]

You need to compare the fingerprints. Sometimes they don't match. I was surprised to see a few playthrough videos where people give the fingerprint card to the entrant, then completely ignore it when it's given back with actual fingerprints. I've added some text to the identity record to hopefully make this a little more clear:




New Domain

I dragged my feet about registering a proper domain for the game so when I went to get paperspleasegame.com it was already taken. Squatters are the best. Luckily the name works with one of those new-style trendy domains. Thanks Sweden!

>> PapersPlea.se <<


Price Announcement

Instead of just announcing the price right-out, I decided to take a day and throw up a small mini game:



I used Haxe/NME's html5 target for this. It was written from scratch and took only a couple hours. Surprisingly, the hardest part was getting drag-n-drop working right on iOS. I had to add a little javascript touchevent handler to cancel the normal page-scroll events. And due to whatever quirk of Jeash (Haxe/NME's javascript flash API library), the canvas element needs to be the first thing on the page to get the correct mouse coordinates on a touch device. So if you play it on a mobile browser, the top "PAPERS, PLEASE" title thing is removed in order to put the canvas div at the very top.

Even with these few hiccups I'm amazed with how smooth it went. I definitely wouldn't have bothered if it required writing pure javascript, which I loathe. So add another point to the Haxe/NME column.

2013 June 10

Would it be possible to prevent comparing items which currently can not be related to anything?

This is one of the things I've fixed since the beta. Basically exactly as you suggest. Items that can't be compared aren't selectable. The fingerprint sheet is a good example but there's a bunch of similar cases.

Edit: And it'd be nice if the citation could fit "Fingerprints did not match" if the player got to that point and still let them through.

Good idea. I think it currently says something like "Identity Record: Invalid Fingerprints"... "Fingerprints do not match" would be a lot clearer.

2013 June 10

Actually, in the current public version, it seems to only list the original problem: http://www.youtube.com/watch?v=2pDnGt5jM10#t=14m4s It listed the problem as the name, which was what prompted the fingerprint check. But it doesn't mention that the fingerprint check failed as well. I'm not sure how you'd fit a list of problems onto that, and having that any bigger would be bad, but since a player might try to compare by eye and not notice, somehow the information has to be there.

The fingerprints match there. The problem is that the alias doesn't, so the id card listing a different name must be forged.

2013 June 23

...Tutorial stuff...

There are a lot of good arguments for a tutorial. But as a gamer I vastly prefer to learn things on the fly, even under pressure. The game will make it easy to go back and replay the day so you can always look at this as an implicit tutorial. I found myself doing this a few times on a recent play through and it was kinda fun to try optimizing a day before moving on.

By the way, I don't recommend watching Sips' (Yogscast) video on the game. I couldn't watch through it.

Yeah I actually can't watch more than a few minutes of any PP let's plays. Combination of horror at all the things I don't explain well enough and general fatigue from working on the game.

With the modding functionality, is there any way to add more days to the beta?

I don't remember the exact status of the beta anymore. It may be possible but there's also a good chance it's hard-coded.

After taking fingerprints, I tried to match "no known aliases" text from a fingerprint slip with an ID card name (which was different from the name in passport), but it shown "NO CORELLATION". Shouldn't that work?

This should work, yeah. At least, it works in the current dev builds so probably something was broken for beta.



First Playthrough

I just got to the point where the game can be played from start to finish with no placeholder content (missing only the ending sequences). In total it took just over 4 hours. Even though I felt rushed the whole time, 4 hours is a little longer than I intended. The general gameplay progression was pretty good but unfortunately some of the longer story threads fell flat.

I'll be taking time this week to flesh those threads out more. Hopefully I can get the "thriller" part of it to come out better.

2013 August...

2013 August 01


Done!

I made it! It's still summer! Thank fuck!

Papers, Please is all set to release next week, August 8th on Steam, GOG.com, and the Humble Store. Pre-orders are open now on PapersPlea.se

My apologies for the silence on here. These last months have been completely insane with finishing, testing, fixing, tweaking, polishing, signing contracts, making store assets, redoing websites, setting up support systems, check user-submitted names, and stressing the fuck out.

Pre-orders open today and I'm actually still working on small things for the game. The final build needs to be boxed and shipped by Monday morning to hit the Thursday release.

From the Beta

I took feedback from the open beta and tried my best to fix everything while adding as much content as I could. Originally I had planned on 30 days for the full game but when laying out all the events (by far the hardest part of the development for me), I just couldn't fit it all in. So the final game has 31 days.

20 Endings

There's 20 endings in all, which is honestly way too many. Adding a new ending became a logical and elegant way to handle all the different things the player could do. 12 of the endings are considered "early" in that they appear before the 31 days are up. The remaining 8 are attainable at the end of day 31. Which ending you get is dependent on the decisions you make during the days and nights. The branching save system makes it easy to go back and try different things.

Endless Mode

The full version features a separate "Endless" mode that's unlocked by reaching a certain Story mode ending (or finding the unlock code on the net). There's 3 game-types (Timed, Perfection, and Endurance) and 4 rule-sets (which documents and rules are in effect at the checkpoint) to choose from and Steam leaderboards for the score rankings.

Launching

I've done my best to coordinate everything (press emails, twitter announcement, this post, greenlight update, website update, stores going live, etc, etc) to make the announcement today. Honestly I've been pretty overwhelmed by this part of the project. Making games is great fun until the last 10%.

Support

The thing that scares me the most about releasing this game is the support. Mainly, I'm worried about someone buying the game and having it not run properly on their system. I fixed a lot of issues from the beta but wasn't able to run a complete system test on the final build. My plan is to work as diligently and quickly as possible to fix any issues that come up after release. Steam makes it very easy to update a game in the wild which is great for a small developer like me. GOG and Humble Store are a little harder, but I've at least set up a pipeline that lets me create update builds quickly and easily. There'll also be a support page where I can put common problems and their solutions and players having issues can fill out a form to request support directly.

2013 August 01

So where should I get the game? I suppose you have different deals on all these places. Or maybe you want steam sales to have a better chance of front page display?

You know I'm not sure. Humble Store gives the biggest cut but yeah, that means it won't get a feature on Steam. I think Steam at least isn't that interested in the preorder phase since there's no bonuses or discounts. I really wanted to add bonuses, but Steam isn't built for extra non-DLC content that's external to the game.

I'd like to congratulate you on this victory.
Finishing a game is difficult, but you pulled it off in quite a nice fashion. You've got loads of fans and hype, and with good reason!

Thank you!

2013 August 01

Congrats man, I'm really excited to pick this up.  Good luck with the sales (with all the publicity you've gotten, I think it should go quite well Wink)!

Thank you (and everyone else)!

It's been so long since the last public beta, I'm beyond nervous about how the game will be received. So many little things I want to tweak and fix but at the same time I'm completely burnt out. The last big task which I'm forcing myself to do is go through more of the submitted names with the goal of including as many as possible.

2013 August 10

Thanks for the support!

Busiest two weeks of my entire life. Since the launch I've been working 20 hour days on support responses and putting the first update together, which fixes a shit ton of stuff.

On top of that, there's been an endless stream of review code requests. To help deal with all this stuff I ended up preparing several user-facing websites beforehand and tweaking them throughout the launch.

So I've finally got things puttering along on the support/media side and just finished a test run of the first game update. If you want to try it out, I've set up a preview release on Steam. The fact that Steam allows this kind of branch distribution is really great.

Just a quick post now but I'll be back when things cool down a little bit with more info about the launch.

2013 October...

2013 October 11

PAPER PLEASE IS ON A VALVE VIDEO ;OOOOO
W00000T

Haha yeah!

Valve emailed me yesterday asking if it was ok to show Papers Please in the demo vid. I appreciate them letting me know but this is a question that needn't be asked :D

Localization

At the moment I'm working on adding localization support to the game. This is much harder than it should be, mostly due to the large number of tiny pixel fonts in use (12) and the precise document layouts. Anyway, this is proceeding slowly.

My goal is to do professional translations for French, Italian, German, Spanish, Japanese, Korean, and possibly Russian. I've gotten a lot of offers for help here but I think there's a general underestimation of how much work a translation will be. There's over 10,000 words in the game; much of it is gameplay-critical with common terms that have to be cross-referenced.

Instead of loading up on every possible language from the start, I'll release the localization tool publicly. That will make it easy (easier) to create a fan translation for the game, package it up into a single file, and distribute it for others to use.

Post-mortem

When this localization work gets done I want to write up a full post-mortem on the game. Before I forget everything. The bulk of the development is already outlined in the thread here but there's a lot of shit that happened in the weeks before and after launch that might make a good read. Also sales figures.

2013 November...

2013 November 06

Gonna start posting some postmortem stuff here now.

After The Beta
The last beta (0.5.13) was released in April (?) and had 8 days of gameplay. It feels like a solid demo but nothing beyond that had been implemented. In the time between April and July, I worked to fill out the mechanics and story.

Story
Of all the things that went into the game, the hardest part for me to do, by far, was arranging the overall progression and narrative. During the entire development I collected and implemented small encounters or mechanics. Coming up with these was really fun; spy document handoff, nosy reporter, time bomb defusing, corrupt guard, etc. The task of tying all that together with a logical progression and interesting story was not as fun. I wanted the gameplay to evolve at a good pace but also to motivate each new mechanic with a story element. And with lots of these things to lay out, it's also important to avoid having too many things happen at once that can misdirect or confuse the player.

As an example, there's a secret document hand-off encounter early in the game. You get handed two identical documents and need to keep them straight:



Implementing this was easy but there was no clear place to put it in the game. The event involves a bulletin callout, 2 travelers (the spy and his follower), and 2 documents. It's a pretty heavy event actually because once you read the bulletin, you're on the lookout for the first spy and his follower; it somewhat consumes the player's headspace. This meant that I didn't want it to overlap with any other days where you have an important bulletin message, when you're expecting someone specific, or when you have another document handoff. It finally wound up on the same day you meet Calensk. Now the problem is that as soon as you read the bulletin about a spy coming, this military-looking guy walks up. Naturally you'd think he was the spy. If I had any other choice I would've moved this encounter or Calensk's intro but out of the 31 days there was no other place. I ended up just letting these events overlap but made one small dialog addition to clear up any confusion. When Calensk walks in for the first time, the inspector asks "Are you the spy?", to which he responds "What? No". Ship it.

This is one example but there were lots of cases like this where I had to be very careful with the arrangement. Each event, encounter, mechanic, introduction, etc required coordination with everything else. I started by layings things out on paper but that didn't last long. Eventually I do what I normally do and wrote a tool to help:

 
Full-size

This is the basic story layout tool. Each column is a day and the boxes represent mechanics, rules, news stories, travelers, bulletins, etc. I define the dependencies in a simple text format then load it up here and slide the boxes around to visualize how everything will play out. Some events have multiple boxes spanning several rows and several days. Once everything was set up I could quickly see empty or crowded spaces and tweak things accordingly.

Economy
For the beta release, the game had a very simple economy. I didn't put much thought into it at the time and there were lame ways to exploit your income. For the final game I knew I'd need better planning to put the average player under constant money pressure. Again, this is something I tackled with a custom tool.

 
Full-size animated gif

The days are listed from top to bottom this time. Each row represents one day and has the news stories, processing (T=traveler, P=penalty, D=detain), special encounters (bribes, story events), nighttime messages, and expenses. Each element is a button and allows quickly testing different scenarios by toggling each effect on and off. For example, clicking the [P2] on the first line will simulate getting 2 penalties on day one. That effect will propagate through the entire game to show nighttime earnings, adjusted events, and even when the family would start dying.

This economy simulator was one of my more useful tools made for the game. The stuff I learned with it fed back into the story layout to let me know when it would be good to add a bribery or other money-affecting event. The niece event was laid out this way. I saw a dip below zero on one day and came up with the story for her to appear with her mom's savings as relief.



Stuff That Was Cut
Coming soon...

2013 November 11

Thanks guys. I'm reaching the limits of my memory and figured I should write it down sooner rather than later.

I love your game, I hope you get more involved with the technical side as well, or is that early on in this Dev log here?

Yeah any postmortem stuff will just cover the last few months when I stopped posting here. Check back through the thread for lots of technical details up until the beta.

2013 November 11

Stuff That Was Cut
One of the most valuable lessons I learned working in AAA is that nothing is above being cut. Developing (and finishing) a game is just as much about removing things as it is adding them. Cutting stuff out that doesn't add to the experience or when the payoff doesn't match up with the cost of implementation is actually something I enjoy. It keeps me constantly thinking about the core of what makes a game fun or interesting.

Baggage
From the very beginning I envisioned a simple baggage-inspecting mechanic. Basically just like the body scanner but with randomized contents and a gun or two every once in a while. I kept putting off the implementation until eventually it wasn't needed. The game was already fun without it and adding it would've been a sizable task. Instead, I made it a point that baggage is not allowed so it sorta fit well with the narrative.

Booth Shenanigans
The booth screen was supposed to have more going on. The shutter switch is some evidence of that; there were plans to have immigrants pull a gun or otherwise threaten the inspector. When this happened you'd have to close the shutter quickly or pull your own gun or something. Like the baggage though, I held off implementing it long enough to decide that it wasn't necessary. Normally I'd remove any vestiges of a cut feature but in this case I left the shutter switch in. It's a fun little thing to role play and it comes in handy for triggering a hint early in the game. I still get comments about the pointlessness of this switch though. Maybe I should've removed it.

UV Seals
I think these are mentioned briefly in the devlog somewhere. The document seals were supposed to grow more involved. As part of the general progression of complexity, I wanted to add a special UV light in the late game that would be needed to verify a new type of document seal. The idea was to have only a small area of the desk lit by UV light. You'd have to move the document into this area to reveal a second "hidden" image in the seal that needed to match the rulebook. It seemed like a cool way to increase the difficulty and would've been a nice technical effect. Unfortunately and once again, this feature got pushed back far enough that it fell off the edge. Unlike some of the other cut stuff, I held out on this one for a bit longer though. I was ready to add it in until the last few weeks, when I'd laid out enough of the story and progression to find there was no room left for it.

Search Photo Confiscation
This is the latest major cut I can remember. An early assumption was that the game would have both the search mechanic (which left naked photos on your desk) and a way to sell those photos for money. There's even a devlog post where I'm wink wink hinting at this, as if it's not an obvious extension of the search mechanic. This is basic low hanging fruit when dealing with the concepts of security and privacy wrapped up in body scanning. Surely those security personnel are keeping and/or profitting from naked pictures of people. Now you can too! The mechanic worked like this:



I didn't want (too many) documents crowding your desk so I created the confiscation drawer. Search photos would automatically move to your confiscation drawer and stay there until the end of the day. Unsavory characters would come in and offer you 5 credits per photo, which you could drag out of the drawer and give to them. Easy.

The confiscation drawer was a nice solution to the technical problem of having a full day's worth of unique documents loaded in memory. As soon as the person walks out of the booth, the custom photo is unloaded and the confiscation envelope changes to become a generic "closed envelope" with some descriptive text.

Everything here was completely implemented before I started laying out the final days of the game. That's when I noticed a few problems.

  • Why are only passports and search photos confiscatable?
  • Passport confiscation is a critical end-game revelation.
  • Search photo confiscation is a setup for a few obvious (and superfluous) encounters.
  • All the rules about confiscation have to mention both photos and passports.
  • Search photos appear very early in the game but passport confiscation only makes sense near the end.

The big problem for me was a softening of the focus on passport confiscation. Taking someone's passport is a clear escalation on the things-are-getting-serious scale. This sets up the scenario of having your own family's passports taken and leads directly into the end game. Selling someone's bodyscan photo is just another notch on the creeper-security-agent-is-selling-my-naked-pics scale. Under the original scenario, the drawer appeared along with the ability to search, near the start of the game. This meant you could confiscate photos for a long time when suddenly you'd have to start taking passports too. There'd be no obvious UI hint for this change (the drawer was almost always there, just now you should put passports in too). From a mechanics and progression perspective, I found there was a lot more impact if the confiscation drawer was introduced for the purpose of taking passports.

Giving up for-sure features like this can be hard, especially after they're implemented. Whenever you have a bunch of issues pile up related to a specific feature though, it's worth taking a step back and asking yourself what you gain or lose by cutting it.

Ultimately, even though I'd already implemented photo confiscation, it was an easy choice to remove it. Taking it out gave me a better game in every way, leaving the concept of confiscation limited to passports. Probably my favorite cut.

The Overwatcher
If you go back through the devlog, you can find some discussion of how weird it is to get detailed citations for mistakes. As if someone is watching over your shoulder. Why not have that guy check the passports? This bothered me for most of the project and I considered a few different ways to handle it. My original plan was to incorporate this "overwatch" theme deeply into the core gameplay and story.



In the beta, you can see the not-yet-functional overwatch light on the stamp bar. It wasn't going to be explained until much later, but the overwatcher worked in shifts. When this light was on, he was watching; if it turned off, he wasn't. If you wanted to approve someone with a mistake on their passport, you could avoid a citation by waiting until the light went out to quickly stamp/return the documents. With the overwatcher part of the core mechanics like this, he was also going to show up in the story. Sergiu was originally supposed to have some kind of connection with the overwatcher. I hadn't worked out any details but figured there was potential for favors to be exchanged. I also wanted one of the EZIC agents work his way into the overwatch position with your help. If you approved a certain agent, a few days later you'd receive a printout letting you know that EZIC is now in control of the overwatch post and all the rules have changed. That would've created an interesting situation where the printed bulletin and rulebook meant nothing and the player had to work against a different set of secret EZIC commands.

So that was all well and good; lots of potential. I really like this kind of subversion of expectations, where the rules change suddenly or the player is faced with something unexpected and has to change their thinking.

After working through a few scenarios though, I was left overall with a worse game than before. The moment the script flips is all well and cool but it's at the cost of everything before and after. If the overwatcher works in obvious shifts then all the sob story immigrants just become a case of waiting a few seconds for the light to go out. It changes the focus from the interesting stuff to watching for a light to turn off.

After that realization, I considered ditching the light mechanic but keeping the tangible overwatcher. There'd be no way to "cheat" the citations but I could keep the EZIC overwatch-takeover concept and have all the rules change in the late game. Maybe that could've worked with a lot of careful thought but in the end I was left feeling that it weakened a central premise of the game that you're a powerless cog in an uncaring machine. If the overwatcher is a guy that can be so easily reached then maybe the system isn't so overbearing. Unaddressed and untouchable though, it becomes an implicit force outside of any influence. I feel this works better for both the gameplay and the story. In the final game there's only a touch of mystery behind the citations but it's (I hope) quickly accepted as an implicit construct.

Even beyond these two (good) reasons, messing with the citation system subverts the right-or-wrong judgement tied to the core mechanic of finding discrepancies. Once that judgement is abandoned, the discrepancy hunt falls apart completely. That was especially decisive for me since I strongly believe in the importance of gameplay systems in effective interactive media. This cut goes all the way to the top.

Also I removed the overwatch light. People were clicking it like a button.



Stuff That Was Added at the Last Second

Coming soon...

2013 November 11

There's more coming but I'm gonna put this here to make previous entries easier to find.


After The Beta
The last beta (0.5.13) was released in April (?) and had 8 days of gameplay...

Read full post


Stuff That Was Cut
One of the most valuable lessons I learned working in AAA is that nothing is above being cut...

Read full post


2013 November 18

Fantastic read! It must have been damn tough pulling the trigger on some really cool-sounding features.

I'm at the point now where I actually really like to cut stuff. Like I mentioned, it gets me to concentrate on the core of the game and why it's enjoyable. I feel like the more I chip away, the more refined it becomes.

2013 November 18

Previously...
1 - After The Beta
2 - Stuff That Was Cut


One More Thing That Was Cut
Forgot something...

Obristan Escape Sequence
Long before relase, as a way to announce the final price for Papers Please, I created a simple HTML5 game:


Note: this is a random face sprite, not the player character from the final game

You give this guy your documents and a small bribe equaling the price of the game. Bribe him too little and he denies you; too much and he arrests you; just right and you'll get your entry granted => you figured out how much Papers Please will cost on release.

This was more work than you could really justify for announcing the price of something. That's because this interaction was also intended to be included in the final game. When you and your family escape to Obristan after day 31, you were supposed to play this minigame again while passing through the Obristan checkpoint as an immigrant. You'd go through an interactive sequence of waiting in line, approaching the counter from the other side, giving the inspector your docs, and sweating it. This was a nice "tables have turned" payoff for the entire game.

The downfall here was that it was too much work for just one ending. This price game was done, but the waiting in line, entering the booth, the result screens were all to-do. And it wasn't really interactive anyways. Did I want people to fail at this point, by offering the wrong docs/bribe? How would that be handled? Would they have to play the final day through to try again?

Eeventually, I decided that the best approach for the game endings was a generic system that could be used for everything. The picture-with-text system used in the intro worked great for that and was much easier to implement. I restructured the Obristan immigration sequence using this much simpler system and kinda liked it. It also lined up better with my neutral treatment of the endings. Adding a special minigame just for the Obristan escape ending would've given it extra weight, implying that it was more correct than any of the other day-31 endings; which wasn't the case.



The facial hair is for warmth. This guy is on fire.


Stuff That Was Added at the Last Second
Still coming soon...

2013 November 19

I thought Obristan being so easy to immigrate to was a way of showing how ridiculously complicated your own job was. No checks, no questions, it felt like the game was exposing the overly bureaucratic Arstotzka border control checkpoints.

Yeah this was a happy result of changing to the simple ending style. The full interactive segment would've been much closer to Arstotzkan-level bureaucracy in order to force the tension. Switching to just image+text gave me the freedom to treat it differently.

I especially like how Obristan doesn't give a shit about reason for entry. It's almost like a complete retrospective commentary on the entire game in just two lines of dialog.

2013 November 19

Previously...
1 - After The Beta
2 - Stuff That Was Cut
3 - One More Thing That Was Cut


Stuff That Was Added at the Last Second
Sometimes when you cut something, a big hole is left behind. Or, after bringing a bunch of different elements together near the end of development you run into stubborn problems you couldn't foresee and that you can't cut your way out of. I hit a few of these. I tried my best to avoid adding things near the end but it still happened. (A lot apparently, this is a long postmortem entry.)

Reason for Denial Stamp
I consider this one of the better late additions. During the beta, a common question would come up: "Do I even need to interrogate a discrepancy?" The answer for the beta is "No." For a long time, the answer for the full game was also "No." There was a similar issue with detention, where it was never required and had no concrete benefit in the beta. I changed that by adding Calensk and giving you an incentive to detain. The interrogations were harder to solve. Very late in the development, I decided that I needed a way to outright require the player to interrogate. That's nice but how?

Let me take you back to an early alpha:

Early alpha denial gating

That's a really old version (Check the bell and computer screen, also dithering), but it had a cool feature. You couldn't deny people until you found something wrong. It was a great way to gate your progress but ultimately felt too gamey so I took it out. Now I needed it back, only gooder.

Something that people (including me) said about the game was that "stamping is fun". I had a general desire to add another stamp somewhere and this ended up being the perfect place. I came up with the REASON FOR DENIAL stamp that appears only after you find and interrogate a discrepancy. If you want to deny somebody, you need a reason. Some nice things:

  • It can be introduced midway through the game.
  • It changes how certain players play (those that never interrogate before denying).
  • It fits in with a nice story element (journalist complaints).
  • It lets players stamp more.
  • It adds more procedural rigamarole.
  • It looks bitchin.



It even has a circuity-look to justify how it can be enabled only after interrogation. Because of circuits.

Additional Rulebook Pages
One of my mantras for the design in Papers Please was "keep it vague". That goes for both the story elements and the gameplay mechanics. I wanted the player to be overwhelmed at first and to have to feel their way through the interface and ruleset. Unfortunately, a common complaint from the beta was that things were too hard to figure out and weren't explained well. I really liked the idea of "winning" a labor lottery and being thrown into a job with no training though, so I was hesitant to fix this. Eventually, in the last few weeks before shipping, I decided to add a ton of pages to the rulebook to centralize what was previously a slew of scattered information.


Detailed info on the Access Permit and its seals added to the rulebook

Previously, new mechanics were introduced in special bulletin pages. To help the player out, I was keeping these instructional pages in the bulletin for a few days after they first appeared. Things started piling up though and the bulletin got pretty bloated as a result. The proper long-term place for this stuff is in the rule book.


Bulletin and rulebook version of the confiscation instructions

Important information is still introduced in the bulletin but it also gets a place in the rulebook and disappears from the bulletin on the next day. Doing it this way unified enough instructional material that I could actually be more vague in other areas. A lot of work near the end of the project but worth it.

31st Day
Me, right after the beta: "The game will be 30 days." Later, I put in a supervisor encounter (Dimitri) every ten days and it was settled: the game would end on the 30th day after the last talk with your supervisor. Perfect.

When it came to actually lay out the story though, it was obvious that not everything would fit in 30 days. The biggest problem was too many events near the end game that required exclusivity.



In particular, the final story pressure deals with illegally confiscating Obristan passports for your own family. Due to other events, the earliest I could introduce this pressure was on day 29. If the game is 30 days, that only gives you 2 days to get 5 passports; not enough.

One option was to cut more stuff to make it fit. But then I'd be removing completely finished encounters or events just to get a nice round number of days. Dumb reason so I extended everything by one day and the endgame events got just enough space to spread out well.

Not Completely Incompetent Guards
This is one of those things that took a rare moment of clarity to even notice. The guards in Arstotzka can't aim for shit. They missed every single time throughout the entire game, 8 attacks in all. This actually worked well with my desire to make the player responsible for stopping these attacks on their own with the sniper rifle. But really it makes no sense. These guys can't be that bad.

Honestly I didn't even consider this until coming back to tweak a terrorist attack after working on something else for a while. One of the benefits of doing code, design, art, music, and sound for a game is you often get a fresh look at old work. After noticing it, I quickly modified a few of the attacks to actually end with a guard stopping the terrorist(s). This was a case where I had to put game mechanics in the back seat just to keep the overall logic reasonable.


All that training, all those bullets

Lots of Endings
Once the image+text style from the intro was recycled for the endings I had a good system for adding endings easily. This had a bigger effect than I expected. Now it made more sense production-wise to allow the player to do more things with more consequences. Instead of carrying player decisions through the entire game I could terminate things early with an ending. Or decisions that did carry through could have their own unique variation of a later ending. It sounds like a cheap trick but honestly the alternative was to not have these decision points at all.

I also felt like the endings didn't need a huge payoff. At least, not one that I could produce. Like most other things in the game, they're succinct and a little vague.

One thing that I think made these simplistic ending sequences more satisfying was the added music. Most of the gameplay takes place in near silence. There's only one song that plays during the title and night screens. By having two more songs just for the ending sequences the tone changes enough that it feels like more of a big deal than it objectively is.



Should be out soon.


Testing
Coming soon...

2013 December...

2013 December 10

Just watched the documentary Video Games Changed The World on BBC 4. You got a fairly big mention near the end of the show even before they started talking about the indie scene.


look at the number one slot (this guy pretty popular on youtube) just thought you would like too see that people really enjoy your game

This is insane. First, the Channel 4 thing, which is really amazing. Then, nominations for best Indie and best PC game at the VGX. It's also in the running for best PC game at GameSpot. Nerd Cubed picked it as his GOTY, saying it was a "perfect game". With support from Russian fans, Papers Please made it to round 2 of the Escapist's GOTY brackets, where everything else is AAA. I've been speechless for days.

During this flurry, I've mostly kept my head down with work on the localizations. There's more postmortem stuff coming, I just gotta find the time to post it!

2014 March...

2014 March 23

It's been a crazy few weeks. First the BAFTAs and now IGF. I started this game as a small experiment and it's exploded beyond all of my expectations. Here's a recap:



I have a bunch more postmortem stuff I want to finish; including a lot of detailed info on the localization process. That'll hopefully get posted over the next month or so while I'm taking a bit of a break. All the recent travel has really worn me out. After that I'll dive back into a new, smaller project.

2014 April...

2014 April 18

I've finally put together the localization postmortem. Unfortunately it was too big to post here so I put it up on tumblr instead. Tumblr has the same problem with big posts (only when trying to publish, previewing works for any size) but I had no energy to move it again.

>> Localizing Papers, Please <<

About

Lucas Pope is an incredible talented indie gamedev. Analysing his work building Papers, please is an exercise for me to try to get into his mind, with the hope I can get some inspiration for my own game development endeavors. I built this scraper to read in a confortable way all the articles Lucas wrote on his devlog.