Hamsterdam Exchange: Revisited

July 7, 2023

It was almmost four years ago that I first added Hamsterdam Exchange to Sleuthhounds: Cruise. Hamsterdam Exchange is a playable card game within the broader adventure. It’s one of several challenges that break away from the normal gameplay but still uses a point-and-click interface. These sequences are intended to change things up and keep the game fresh as it goes along.

[Hamsterdam Exhange then.]
Hamsterdam Exhange then.

When I first added the card game in, I was more concerned with how it worked than how it looked. As I typically do, I threw together a quick pencil sketch of what the scene could look like, added in some rough sprites to represent the cards, and focused on getting the functionaltiy of the game in place. All well and good.

[Hamsterdam Exhange now.]
Hamsterdam Exhange now.
Click to view larger.

Fast forward to this year, where I’m now confronted with having to finalize all the rough rooms, including Hamsterdam Exchange. Previously, it was good enough for the card game to simply work. Now, it needs to look good too. Or rather, it needs to look good and be playable.

As can be sceen in the original rough pencil sketch, I’d originally envisioned the card game being played from a first person view, with the other players visible across the table (or ironing board, as the case may be). This had several issues, even at the time I first implemented Hamsterdam Exchange. One of these was that the cards that had been played on the table were two small and were slanted at odd angles to make them look perspectively correct. This made it hard to read the face values of the cards and to figure out which player had the strongest position.

At the time, I “solved” the problem by adding a secondary window on the screen. This window showed, square on, a summary of the cards and their values as per the game’s rules. It was functional, but not great having two views representing the same data (the cards and their values).

When I began breaking the scene down to determine what game assets would be needed to finalize it, the other problem with the view provided in the original sketch became apparent. It was going to require a LOT of specialized animations to be able to have it look credible that characters were taking cards from the deck, passing cards to one another, and playing cards in front of themselves and each other. Hamsterdam Exchange was supposed to be a quick and easy addition to Cruise and here it was threatening to become a full blown game development project in its own right.

With those issues in mind, I stepped back to think about the problem. I came to realize that the way to go was to shift the playing perspective to what it is now. Instead of being a first person view from the perspective of the Ampson character, I moved it to a third person, top-down view where the characters were only in camera enough to be distinguishable. This change in view did a number of beneficial things.

First, it allowed me to better arrange and draw the cards themselves so they didn’t have the skewed appearance of the rough version. I was also able to push the camera closer to the table, since I didn’t have to dedicate so much screen real estate to the characters. These factors made the cards bigger on screen and far more readable so that I didn’t have to have a secondary display to show what was going on.

Second, since the new view is top-down it means that all the character interactions take place going across that view, perpendicular to the camera. For example, if Jane Ampson has to play a card on Beckers Swift, Jane need only move a hand to the left. It doesn’t have to look like it’s moving into the distance, as it would to match the perspective of the original sketch. The significance of this is that I can draw a single arm frame for Ampson and then programmatically slide it across the scene with the appropriate card attached. This is a big production time saver versus having to draw multiple frames of Ampson’s arm moving to accomplish the same thing.

Why is it so important to animate the passing around of cards? I mean, I could just have the cards jump from one place to another. Ampson needs to draw? Simply have a new card appear in her hand. Beckers plays a card on Pedro? Vanish the card from Beckers hand and have it reappear instantaneously in front of Pedro.

In point of fact, that’s exactly how I had created the original rough version worked. Even for me, the developer, it was very hard to keep track of what was happening in the card game. And if the developer struggles to play their own game, it’s really demanding a lot from players to expect them to. As soon as I added the arm movements, the game immediately and dramatically became much easier to track what was going on.

The Hamsterdam Exchange scene was one of the last really complicated rooms in the game that needed to be finalized. In fact, after finishing it, there’s only one really complicated bit left and I’ve almost got that done as well. Beyond that, there are only five rooms left to finish drawing finalized backgrounds and implementing final coding on. Of course, after that there’s still a pile of animations to draw, sounds and voices to record, and all the details that need to go in the in-game journal. BUT having the rooms done, which I’m anticipating being no later than the end of September, will be a HUGE milestone in the game’s development.