Terry's game looks great but I'm going for a more stylized, almost cad-like look. Thanks for the reference though!@gambrinous
Here's the title screen without post-processing:
Quite terrible looking actually. Reducing the bit-depth looks better and makes asset creation much easier for me. A better artist or a bigger team could make true-color or grayscale look great. The best I can do on the art side is much less, so I'm compensating with the one bit restriction. Also I really like the challenges that come up when you have no shades to work with. Much more interesting for me than trying to make realistic stuff.@Mef
I may consider a tinting option in the menus, so you could change from b&w to black&amber for instance.@collider
Hypercard was the first thing I ever programmed on. Made a bunch of different cards for little toys and tools when I was ~13. Such a great application.
I'd never played Colony as a kid but checked it out recently. Really beautiful look but terrible controls and impossibly hard.@Willy Chyr
The trick is to combine the world-space position of the object (to get edges against other objects) and the normals of the face (to get edges against nonaligned faces). I consider the normal's relationship to the current camera to get the most resolution, and I amplify the differences using frac. The colors all change when the camera moves, but this doesn't matter since you're only using these colors to find edges. To avoid putting edges everywhere, I set up some control over the normals using the red channel of the vertex color. Here's the basic vertex shader for the sectioning pass:
v2f vert(appdata_full v)
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
float3 origin = mul(_Object2World, float4(0.0,0.0,0.0,1.0)).xyz;
float3 area = float3(100,100,100);
float3 cameraDir = mul((float3x3)UNITY_MATRIX_V,float3(0,0,1));
float3 norm = mul(_Object2World, float4(v.normal, 0.0));
norm *= v.color.r;
float light = saturate((dot(norm, cameraDir)+1.0)*0.5);
o.color = ((origin + area) * 0.5) / area;
o.color.x *= light;
o.color.y /= light;
o.color *= v.color.g;
o.color = frac(o.color * 100);
I do a bit of tweaking and other work but this is the basic idea. Don't want to give away too much yet. @John Robert Matz
The sound design will likely be modern. I've never been good with beeps and boops. And I find realistic audio engages my imagination more, which should hopefully complement the visuals well.@Gorman
Check the "The End" section here for my localization plans for this game: Localizing Papers Please - Part 2
. Basically, I'm going to (hopefully) keep the text to very basic formats, well-separated from the logic.
Modeling in Maya
I've been making good progress with Maya. Once I stopped longing for Max's modifier stack, and worked out how to keep deformers non-desctructive, things got easier. Right now I'm filling out the aft deck (POOP DECK
). Adding all the little details is a lot of fun.
I've also got a pretty good look for the 3D rendering worked out. I'm able to combine the drawn edges with a touch of lightly-dithered texturing. Looks pretty decent and not too busy currently.
Hopefully I'll be able to post some screenshots in a few days.