Game Complete


Another fun month, although if I'm honest I was starting to get really frustrated by the end of it. I now know there are simpler card games out there that I could have implemented instead, but apparently Hachi-Hachi is comparatively popular, so I still think it was the right choice.

I don't think I'm getting burned out at all. It's probably good to reserve a month this year for "no game this month, I'm burned out", but I don't see any need to plan that far ahead. End of last month, I was really excited to start the card game, and I don't necessarily have such a strong idea for March, certainly not one I'm so excited about, but I'm still motivated and ready to start putting something together, after I take tomorrow off.

I'm really happy with how neat and tidy I was able to keep the game logic. Game states map directly to methods where logic can occur, input handling is entirely dependent on game state, so there's no risk of being able to click things when it doesn't make sense. Dialogs being initialized, then having their contents set, all within a single run of the game state method, then blocking all future game state methods from running until the dialog is dismissed, was pretty ergonomic (maybe having different specific dialogs wasn't the right play, and they could have been created from scratch when needed). I also think I left space for development that I would have liked to have done, but was unable to due to just wanting to finish the damn thing.

Weirdest aspect of developing it by far was the layout. I kept making the game window bigger and bigger, and now it's enormous, so I guess the cards should have been smaller? Didn't feel like reworking the art I'd made, and the cards would have been harder to make look good, so I think this was as good as I could have done.

Probably the most important unfinished aspect of the game is AI. That is to say, there is none. When the AI has to choose something, it loops through moves until it finds a legal one, then plays it. No consideration is given to point values, dekiyaku, or other players' hands. In an ideal world, each AI would see its own cards, what it had scored so far, exposed cards from teyaku, other players' scored cards, and would aim to score certain cards each turn. It would also have been fun to have different players with different skill levels, or different levels of risk. Ah well.

I'm also not thrilled about the artwork. Again in an ideal world, I would have looked at a bunch of hanafuda decks, gotten vibes from different designs, settled on a style, and drawn each of the 48 cards. I instead basically traced the card images from Wikipedia, making the necessary pixel art adjustments. When I implement Koi-Koi or Stop-Go, I'll remake the deck from scratch.

I also would have liked to put some music or SFX in the game. I don't really have a music production workflow at the moment; if I need music quickly I'll throw something together in Bosca Ceoil, but I'd love to get better with Reaper and be able to record something that doesn't sound like dogshit. No such luck so far, though. I think I'm fine releasing games without any music, but I'd like one or two of the Fatal Distractions games to have a tune or two.

Despite the shortcomings, this definitely feels like a higher-effort and higher-quality product than last month's product. Right now I'm so sick of Hachi-Hachi that I don't want to play it at all, but I feel like I'll have motivation to play it again in the future, whereas I don't think I'll ever return to Thrive.

I feel like I'm coming up with cooler ways to use C. Eventually I'll probably want to do something involving the creation and deletion of polymorphic entities, which means void pointers and unions and all kinds of silliness. I probably want to start looking into macros so I can eliminate boilerplate, standardize ArrayLists, figure out arena allocation, and investigate the Plan 9 method of having all of your includes, correctly ordered, in a single place, to eliminate the need for "pragma once" or "ifndef define endif" nonsense.

Long story short, the train's still rolling, the next station is coming up at the end of next month, the train is still enjoying the journey, it's me, I'm the train.

 - Bill

Get Hanafuda Hachi-Hachi

Leave a comment

Log in with itch.io to leave a comment.