Skip to main content

Posts

The 9 Greatest Boardgames Discovered in 2022

 It’s the end of March and now the dust has settled enough to look back at my game-discoveries from 2022, and do a write up of my favourites…   Read more .

Top 50 Boardgames of All Time

Back in 2020 I decided to do a top 25 games as a countdown to Jul over on Instagram . That was a fun experiment. This year I’ve decided to revisit it in a more… scientific manner. Part I: 25-50 Part II: 16-24 Part III: 7-15 Part IV: 4-6 Part V: 2-3 Part VI: 1

Criss Cross AI

Some weeks ago, to end an evening of board gaming, I was introduced to the Knizia roll and write called Criss Cross (or Détrak here in France). A fascinating two dimensional dice placement game with very simple rules. As we left my friends place we discussed that it should be feasible to implement a simple AI for the game. So, when I got home, I started the process… Part 1 Part 2

Blog migrated!

  The blog has now moved to  https://blog.ervik.fr/ !

The 9 greatest boardgames discovered in 2021

This post has moved to my new blog:  https://blog.ervik.fr/2022-04-05-the-9-greatest-boardgames-discovered-in/

Benchmarking Dynamic Programming with Python

In this post I'll explore and benchmark some simple dynamic programming concepts in Python. The example I'll use is a classic recursive implementation of the fibonacci series . (And for simplicity I'll skip the first element in the series (fib(0)=0).) Naive approach  This implementation: ...works well (enough) for small numbers: but becomes impossibly slow quickly... ...since it has a time complexity of O(2 n ). (So our seemingly harmless fib(42) would result in more than 4 trillion calls to fib... (Or about 4 times the number of bacteria on the human body... Or 2 times the number of galaxies in the observable universe... Or more than the estimated population of fish in the ocean... Etc.)) Enter dynamic programming Since the result of these recursive calls to fib are all deterministic, we can cache the results instead of recalculating them. @functools.cache First a test by simply leveraging the cache in the library functools ... This speeds, as expected, the runtime up si...

Metaballs Revisited

The new visual identity of my work place (and the re-ignition of an old lava lamp) made me think of the good old metaballs from the Amiga demo-scene of yonder and how it has been a while since I have implemented them from scratch. This time I wanted to play around with Python and numpy to see what that could bring. But first, what are metaballs?  It's, for example, this: Wikipedia defines them as: In computer graphics, metaballs are organic-looking n-dimensional isosurfaces, characterised by their ability to meld together when in close proximity to create single, contiguous objects. https://en.wikipedia.org/wiki/Metaballs As cool as multidimensional metaballs are, we'll stick to 2D ones in this post. The algorithm The algorithm behind them is quite straightforward -- in their simplest form. Basically for each pixel in each frame, or buffer, you add up the influence of each metaball in the simulation and then cut off below a certain threshold and normalize what’s left. The...

Crafting an artificial opponent for Fjordar

Fjordar is an epic, tactical strategy game for 1 to 4 players, set during the Norwegian Civil War. The game begins in the year 1130, when the old king Sigurd Jorsalfar dies. Each player begins the game as one of Sigurd's heirs or one of the other influential people in Norway at the time, who is vying for power in the vacuum left by the old king's death. – Fjordar, BGG A while back, after a lengthy exchange on ideas around this topic, the designer of Fjordar, Frode Brændø, asked me if I would be interested in helping out with designing a solitaire variant for this upcoming game. Of course I would! Here are some brief notes on some from the design process. Idea We wanted to make an artificial opponent based the following criteria: Non-fiddlyness Running the opponent should not lead to a lot of overhead for the player. Readability The player should to some extent be able to read the artificial player enough to predict future actions and react to them. Keep ga...

The 9 greatest boardgames discovered in 2020

2020 was an… interesting… year boardgamewise, and in this post I'll summarize some of my key findings, but first, some stats: I played 42 … things… for the first time according to BG Stats . 8 of them were expansions, so 34 new games, then. (Down from 97/88 last year.) Interestingly, 8 of my top 10 most played games of 2019 was new-to-me games, whereas in 2020 it was the opposite – only 2 of them were new-to-me.  Every year, since I started logging my board game plays semi-consistently back in 2013, more than half of all games played has been new-to-me. In 2020 it fell below one third. I seem to have been more keen to show my kids the classics than seeking out new games in these confined times… (Or, maybe even more importantly, I have hardly been to local board game cafés to test new games, I have hardly rented new games from our friendly board game rental store, I have hardly played games at friend’s ...

PICO-8 on an ODROID-GO Advance Black Edition

UPDATE 2021/06/30 : This whole procedure is now super simple if you go the EmuELEC way following this guide:  https://retrogamecorps.com/2020/11/12/guide-pico-8-on-retro-handhelds/#EmuELEC  It's basically just to put the pico-8 in a specific folder, and any roms (unless you just use splore) in another. Last weekend I built the ODROID-GO Advance Black Edition with my daughter. (Apart from re-experiencing my childhood's Commodore 64 an Amiga games,) One of our goals was to run PICO-8 , the great little fantasy console, on it. That seemed possible, given that it shares a similar CPU to the Raspberry PIs – where it runs great. However, it was not that easy to get it up and running. Here’s what worked, but first, what didn’t… Official image First we installed the official image from HardKernel on it. But alas, no luck getting things to run properly. EmuELEC Next up was EmuELEC . There we managed to get PICO-8 to run in all it’s 8-bit glory! But! Controls didn’t work when la...

Games in the time of Corona

We can't stop playing games together even if we are confined, now, can we? But, what are our options? (Apart from spawning players within your confinement, but that tends to take 7-10 years...) This is a living post -- constantly updated. (Last update 2020-04-06.) Table of content Video conference compatible boardgames Tech Random-Writes Eurogames Party games Forever alone Solitaire games Games with official solitaire variants Games with unofficial solitaire variants Games I have played as solitaires Virtual board games Online tools Dedicated apps Unofficial web apps Play by (e)mail Video games Video games without (too much) screen Discussion Video conference compatible boardgames One of the reasons boardgames are so appealing is that it gets us away from our screens. Using video conference technologies might be the best way to play games with remote players, with the least screen nuisance. The basic idea is that one player runs the game...