2024-09-30
In this post I write about the practice of creating a video game in a hobbyist approach. I describe a practice where one translates a board game into a video game. For me, the term hobbyist is used in order to contrast from the higher stakes of (semi) professional development, best practices, and conceptual novelty.
It can be much easier to try to translate a board game into a video game than attempting to design a completely brand new video game wholecloth. Sometimes I find that simple board games I like haven't been turned into video games, but I would like them to be. So then it becomes my own task to satisfy this need. I'm doing this to scratch an itch. It may become something I share with other people, but may not be. It feels lower stakes than my professional dev practice, teaching practice, or art practice. And it's a way for me to lose myself, get into the flow state, and not worry about the outcome.
Currently, I'm working on a Yatzee-like Catan Dice game. It's quite simple, and I wish it were playable on the computer. It's not highly rated on Board Game Geek for example, but I like it! I just don't play it that often because it requires multiple people, and it's not one for my gaming group. It has a solo mode built in where you try to reach your highest score, so that's a natural for potentially trying to build a game where I could make a computer opponent.
Lately I'm really enjoying making games in Pico-8, so I thought it would be good practice to try to make the game in it. I'm pretty far along, though it did take me quite a few hours so far. I'm finished most of the main game play where you roll dice, select them, and get points and score your hand. I also have primitive sprite graphics to display the board.
As an alternative to translating a board game you could try to make an interpretation or updated version of a game played previously. You could make a new version, new theme, or it was made on a platform that isn't accessible to you anymore, so it's an attempt to prevent the game's loss. I have a few examples of this, including when I remade an old shareware game I played in the 90s that is long lost. I made it with html/css/js for the web. It's a simple resource management game. I've wanted to make my own alternative version of the simple resource game Hamurabi, or the classic BASIC game Lemonade Stand to work in the command line.
For any of these above games, there are 2 different strategies to complete the game. One option is to have a score. So you don't necessarily need to make an "enemy"/computer player. You just simply let the player play the game and have a way to keep score. This works best with games where there are already ways to score points. Then you just need a way to save the player's score, and you could have a top score or scoreboard screen to access these. This is an okay start, but it isn't necessarily the most fun. For me, the point of trying to turn a board game into a video game is because I want to have an AI opponent to try to compete against.
So after successfully building a version of the game that works without an opponent, the next step is to make the game work for a 2nd human player. I don't usually leave that in but then go on to the final step, which is translating some simple game strategies into rules for an AI opponent. By AI I mean really, really dumb basic computer stand-in for a human.
If the AI has a city to build on, and they roll at least 2 total of coal or wheat then hold those and re roll any non coal or non wheat.
If the AI has an open city to build on, hold all brick, tree, sheep, wheat and re-roll anything else.
By the end of the final roll, if it can't build a city or settlement then have the AI randomly select and attempt to build a road or a knight.
etc.
I am oversimplifying, but these simple rules will work for a start. And now I can try to turn them into game code. Over time you can make more complex and nuanced AI, or leave it as is. The great thing about playing against a computer "player" is that our mind starts to ascribe a strategy when really there is randomness in strategies selected by the computer. Over time it may be nice to even build a final version where there are different strategies by the AI and each game, a different strategy is randomly selected.
Even if you spend more time building the game than playing it, it's a fun hobby project, you get to practice programming, hopefully in a new language or framework, or in one you enjoy programming in.
Some simple games that could be fun to try to implement:
There are many many more board games that I don't know. Thousands in fact. You can probably get some ideas by browsing Board Game Geek or looking at your own shelf of board games and considering the simple warm-up games there. Do any of those make sense to turn into a video game?
---
You can leave a comment by emailing lettuce at the ctrl-c.club domain, and leaving your handle and the post you are referencing.