This project served its purpose or is considered complete. I'm no longer working on it.
Tech Used
It’s that time of year again. GMTK’s annual game jam, which I’d say is now the largest game jam, is just around the corner. Despite being in the middle of several other projects, I decided to participate with a team.
The team was originally YouTubers Jake (BeamBuddy) and Jack, along with my good friend Lucian Light-Gray. I say originally because Jack would go off to attempt a game on his own1, leaving it up to the 3 of us to create a game together.
If you don’t want to know about the behind the scene details of the development process, you can watch us talk about the game jam in this video on Playable Workshop.
The theme of loop was extremely open ended2, but we landed on the idea of you playing against yourself in some way. At one point it was a turn-based RPG before we settled into the idea of a card game where the hand you play becomes the hand you have to play against in the next round.
Instead of a standard 52 card deck or cards with monsters, we decided to lean into a religious theme and have cards that were loosely inspired off of tarot cards. Each card has roman numerals on it up to XIII (13). You would play a hand of 3 cards, at which point the “daemon” would tally your score and then play the inverse of your cards.
The roman numerals were a key part of the design because some cards, when mirrored would still be the same (I, V, X) while others would be completely different. For example, you could play VII (7) and the daemon would play IIV (3). This created some interesting strategic decisions around which cards to play and when.
We also added some special cards, like the “Burning Bush” that immediately removed the daemon’s card across from it on the table, or 0 which would null out the score tallied up to that point. By playing these cards in strategic ways, you could help yourself outscore the daemon or make your next hand easier to play against.
We decided to go with a black and white color palette for our assets, making heavy use of dithering in order to quickly make a large variety of assets with a lot of forgiveness for mistakes. Not only did this allow us to make assets faster, but let us create some insanely optimized texture sheets… not that we needed it.
Relying on dithering let us create a large variety of assets quickly.
For the cards themselves, I quickly created a tool using Go that would take in a folder of card assets and pack them into a single texture atlas. Thanks to the monochromatic nature of our art style, I could pack the “normal” card into the red channel and then pack the inverse/mirrored version of the same card into the green channel.
The card atlas, with the normal cards in red and the inverse cards in green.
One of the main tasks I had in all this was creating the face of the daemon that would be featured in the game. I already had a lower poly model of a face that I had created for a previous project, so I decided to reuse that and just create some textures for it.
The blend shapes I created for the daemon's face.
Using projection mapping, I was able to map several face textures onto the model and then switch out which texture was used at runtime to create different possible faces for the daemon every time you played.
Many faces of the daemon
Several of the faces were based on real people, including ourselves and other friends of ours. This included Boofcan, Jack, and Angyl. Other faces were just randomly grabbed from Google and photoshopped with the rest to fill out the roster.
The face texture atlas showing all the different faces that made it into the game.
Much like my last GMTK entry, we did wind up having a bug that we only discovered right after submissions were closed. This bug didn’t completely break the game, but it did make it insanely confusing to play.
When the daemon takes your cards and curses them, they should be returned to your deck as the inverse. But we never finished the code that showed you the cursed cards. The values and scoring worked, but the tooltip and image both remained the same as before. So you’d play VII (7) only to score a IIV (3).
Though we did fix the main bug in our local build, we haven’t uploaded a new build. Since the game jam ended, Jake and I did attempt to flesh out the game a bit more, but further play tests didn’t get people all that excited to play and we decided to drop the project entirely.
That said, trying to see what we could do with this game concept did spawn other ideas that we’re actively exploring as possible future projects, so this project may live on in spirit (hah) even if the game itself is dead.