PAX AustraliaIt's been quiet here for a while - blame
PAX Australia and
Day of the Devs which kept me working around the clock for the last 2 months in preparation for the shows in early November. I kept it pretty low key because Obra Dinn is not a great expo game. The external deadline was a good milestone to push myself into finishing the last major core mechanic, though. Since the dates for PAX and DotD overlapped I ended up traveling to PAX and just handing off a build to the DotD guys.
The booth. Cozy with a couch to suit the game's slow pace.
As part of preparing for the show, I had to order a bunch of stuff for the booth: printed curtains, signage, PC laptop, 55" TV, controller, headphones, etc. Not a huge deal but painful to sort out while also crunching on the demo.
I arrived in Australia the day before PAX to meet
Rami Ismail and
Adriel Wallick strolling up to their empty Vlambeer floor square with exactly zero preparation. Rami looked around and said, "Let's buy two TVs and we'll cut out a logo from fabric or something".
On the first day of the show, I noticed the huge TV I bought a month in advance (with
LoG's help) was 4K @ 30Hz, which looked like creamed dogshit running my 640x360 60Hz game. The frame rates didn't match up so there was tons of tearing and stuttering. Meanwhile Vlambeer's last-minute booth looked and ran great. Luckily, Rami has a heart of gold-dipped diamond and let me swap one of his smaller 60Hz TVs for my huge 30Hz one. Lesson: Don't prepare, just be Rami.
Build UpdatesObra Dinn is a bit of a slow burner in that the player starts out lost and confused, learning the mechanics as they play. This is not great for a busy expo where people are watching over your shoulder. But, PAX is not going to reschedule their show to give me more time to hit a milestone so booking a booth there was a great way to force my schedule.
In this case, I wanted to get a few more flashbacks fully completed (most of the game is at least blocked out), and add the last of the game's core mechanics. In the old public GDC demo, you wander around the boat for a bit, finding skeletons. The gun deck opens up after one of the flashbacks and you head down to end the demo. This was a quick way to end things but wasn't final. Instead, a new mechanic is introduced in the kraken flashback to push things forward.
BUNCH OF SPOILERS BEYOND THIS POINTIt's too late. You've already seen the gifs.Phantom CorpsesInstead of finding more skeletons on the ship, the game makes a major pivot after the deathbed skeleton and requires that you find corpses in the past and "pull" their phantoms to the present.
Flashback corpse "pull" effect.
Pulled corpse phantom on the current-time ship.
Flashbacks marked on the manifest deck map, with animated death chains.
The phantoms use the same maze blur effect as the magically opened doors to signify ~from the past~. Once pulled, you can walk up to any corpse phantom and view their death flashback, just like with a skeleton.
This whole phantom thing is a bit convoluted but I need a way for the player to follow the chain of deaths in a sensible way without littering the ship with skeletons and locked doors. The three options were:
1 - Auto DropLike the doors, just visiting a flashback would drop any corpse phantoms in the present.
Good: Simple, consistent with doors
Bad: No challenge or clear awareness of what's happening; corpses are more spread out and less obvious than doors so it'd be easy to miss if they just magically appear somewhere without any particular callout.
2 - Inception StyleFinding/activating a corpse in a flashback immediately jumps you to their death flashback.
Good: Simple, easy to understand
Bad: I feel like returning to the ship often is important to ground the player and balance the game's presentation. Environmental audio/animation, manifest access, etc are only available outside flashbacks and going for a long time without these would get tiring. And, unless it's combined with also dropping phantoms, revisiting flashbacks at the ends of long death chains would be confusing/time-consuming/annoying.
3 - Key StyleFinding/activating a corpse is like finding a key. Return to the present ship to visit the newly unlocked flashback.
Good: Adds an additional mechanic of actually finding corpses in the flashbacks
Good: Can switch to Inception Style after the pulling animation for special cases
Bad: Convoluted and needs explanation, at least in its current implementation. More on this in the problems section below.
My strong preference was for Auto Drop, but the end-game and a few flashbacks would really benefit from Inception Style. Key Style lets me combine both of these - I can jump directly to a flashback after the pulling animation in cases where the corpse phantom wouldn't be accessible otherwise. This wouldn't be worth it except I really like the ending I've worked out, which requires Inception Style.
Correlating ManifestThe big manifest update I posted about earlier is in this build, with a few tweaks.
Muster page with fate details.
Sketch page (still a placeholder render) with visage details
Deck Map page with death details
I simplified a lot of the UI and tried to streamline the functionality as much as possible. But even looking at these flashing animated gifs now I'm confused. Watching people play with this highlighted the structural problems, mentioned below.
More FlashbacksThe PAX/DotD build has two new flashbacks, both set during the kraken attack, that lead to the gun deck where the demo ends. I would've
liked to include a few more but it turns out that most players didn't even get that far. And two is the minimum required to clear the "learning" phase of the game - beyond that things continue on as just a logical/observation puzzle. Hopefully it was enough to watch how players fared through this demo to know how they'd get on with most of the game.
Better Controller SupportLike Papers Please, this is a desktop-first game. Unlike Papers Please, I'd like it to be easy to exhibit publicly. That basically means supporting a controller instead of keyboard/mouse.
Lamination. Quality.
This wouldn't be a big deal except for the manifest. I spent a week or two cleaning up the input to support both mouse/keyboard and controller, mostly focusing on the manifest sketch and deck map. I originally wanted these to use a grid-based up/down/left/right selection method but the characters in the sketch and markers on the deck map are placed totally freeform. Going up from one control then down again doesn't necessary return you to the original control, making getting around with a d-pad frustrating. Instead, I've made a virtual cursor that you can move with the mouse or the controller's analog stick.
Cursor on the analog stick
ProblemsWatching PAXers play the game, most of them for the first time, highlighted a few problems.
Manifest ConfusionThe Manifest is made of 3 main pages: the muster list, the crew sketch, and the deck map. Each of these pages scrolls vertically and has L/R buttons in the bottom corners to navigate between them. Each page also has a details popup for each crew member or death. I drastically simplified this whole system before PAX but it seems I didn't go far enough. Players were confused about the separate pages and navigating between them. I'll change things around to make this more clear.
A good suggestion from one of the players (I forget who, sorry!) was to make the pages animate sliding left/right while navigating. I've been avoiding this sort of flashy animation so far but it may be worth adding these navigational clues here.
Manifest OverloadPicking up the manifest is the "Ah ha" moment when you realize what this game is about. With the GDC demo manifest, you get a huge list of names and it's a nice "oh shit!" too.
With the latest manifest you get a huge list of names, an image showing every crew member, maps of all 4 decks of the ship, and a sea chart showing Europe and the coast of Africa. I'm not a practicing socialist but that's bordering on excess.
One solution would be to have the player find additional pages for the manifest as they play. That turns the game, at some level, into an item hunt. It probably wouldn't be so bad except that I'm worried players would hit a wall somewhere along the line and think, "well, there's just some manifest page I haven't found yet" - instead of focusing on finding corpses and solving identities with what they have in hand. This is also why you're initially faced with rooms full of drawers and cabinets that you can't open: to make it clear to the player about what kind of game this is/isn't.
I don't have a solution for this yet but it ties into the next problem so maybe I can package-deal them out of my life.
Invisible Game Mechanics PivotAfter the GDC demo content, the game takes a turn and (implicitly) requires the player to start looking for corpses inside flashbacks. No problem. Except that right before this turn, the game just told them to
determine the fate of everyone on board and gave them a 50lb manifest to do it. The player is heavily focused on using their newly-found manifest to solve the 5 identities they've seen so far. Flipping around the pages, reviewing flashbacks, puzzling through who is who. And since there are no more obvious skeletons, this is where they circle round and round. It's mostly wasted effort since only 3 of the 5 identities are solvable at that point. I added a bunch of timed hints to try to smooth this out. Nobody reads hints, even when shown large, unskippable, against a black screen.
What I want to happen is that the player, seeing that massive manifest and all those names, tells the manifest to go f itself and carries on checking out cool new flashbacks. Gradually as they play they'll fill in an obvious name/fate or two until their own OCD will tickle them enough to push them into filling out the whole list. Then the manifest becomes a useful tool for reviewing and correlating everything they've seen.
This might've worked out ok in the current build except the corpse you need to find in the first kraken flashback is inexplicably hard to see. Players walked right past it so many times and let me tell you this is a hard thing to watch for 3 days in a row. I'll bet if I just make that first flashback corpse more obvious (the player's hand raises when near, just like with doors/lanterns), this problem will mostly go away. Instead of exiting that flashback and carrying on with the identifying, they'll be swept up into finding more corpses and following the chain of death.
Unity CollisionI'm using Unity's CharacterMotor and FPSInputController with a bunch of tweaks for the character movement. Everything works ok on my dev machine but apparently this code takes "the floor is solid" as a loose suggestion instead of a hard rule. I ran the PAX build on a PC and the player would frequently fall clear through seams in the floor and get stuck or drop to lower decks.
As a last-minute panic fix I constructed a huge solid block of collision under the top deck, leaving only one hole down the fore stairs.
The floor is solid
Because the game uses separate scenes for each flashback, getting this change to propagate across all of them could've been a huge headache. Luckily, I spent years slaving away to get the pipeline for this cursed game into shape so rebuilding all the scenes was relatively smooth and quick. I won't say all that work has finally paid off but there's a whiff of suggestion here.
Not that it totally fixed the problem. There's a tiny sliver of the fore hole that the player can still walk over where the collision code flips me the bird. Of the ~100 or so people that played the demo, 2 of them dropped down to the gun deck there and I had to restart their game.
I'm on the verge of rewriting the movement controller to use navmeshes instead of physics casts for floor collision. The ship's floors are relatively simple and limited so this kind of solution might work ok to resolve the problem for good. Haha.
ReleaseUnlike the GDC demo I'm not planning to release this build publicly. There's a bunch of stuff that would need to be fixed up and I'd rather just push on to the final release instead.