Game Review: Unfair

March 14th, 2017


We backed Unfair by Good Games on Kickstarter having no idea what it would be like. But any game that shows a roller coaster on the box is my type of game!

I’ll get right to the point of this review: Unfair is a really fun game.

Now for some details and some pros and cons. The game is a card collecting game of sorts. But not like deck building games where you use some type of action to give yourself better cards in your hand. I haven’t played deck building games other than a few rounds of Dominion and it is nothing like that. But it’s not a board game either. it is a little bit like 7-Wonders and Sushi-Go in that you are trying to make sets of cards that go together in useful ways. but unlike those games, the mechanics of how you gets cards is very different.


Pirate Theme Cards

When we opened the box, we found that it was much bigger than needed. There is room for more sets of cards to be added later. Cards are in sets that each have a theme park “theme.” The different sets have a variety of strategy and difficulty. The sets have a bunch of different types of cards, and once the appropriate number of theme decks are picked (based on player count), cards from each deck are combined and shuffled into decks of the different card types. We discovered, hopefully correctly, that the theme decks that the cards came from means nothing during play. More on that later.

imageRobot Theme Cards

The types of cards are Park cards, Event cards, Blueprint cards, and a few others. There are lot of park cards, a lesser number of Event cards, and lesser still of the others. Each player gets the one Main gate card of the theme that they want (from one of the theme decks picked for the game). I won’t describe the entire game in this review; suffice to say that there are other things to do in the game than the few things I describe here. Players have a bit of game money to start with and anything thing that is built in the park and any employees, need to be paid for.

imageTypical Board and Player Setup

So onto the play. The starting player changes each round. There are typically 8 rounds to play. In order form the start player, each player takes an event card and saves it for a moment. Then one City card is drawn that has a global effect for the rest of this round. The City cards are just a way to throw in some random changes that affect all players. The players then in turn order play event cards until all players are done playing as many events as they want. This is an interesting part of the game because the event cards almost always have two options, one that affects the player that played it, and one that lets the player affect someone else. Simply put, there is an event card that lets you take half of someone else’s money if you want to play it that way. My family doesn’t do that sort of thing much.

Play continues with three or four sets of Park card plays. This part of the game is where you buy or build stuff in your park, or hire staff. All of the things you can build, including new attractions or upgrades, as well as staff you can hire, are in the form of Park cards. During these Park steps, you can also get new Event cards as well as Blueprint cards. Blueprint cards describe plans for your park that if you meet them, you get a bonus. Failing results is some points lost, so it’s not always wise to pick a really difficult Blueprint card.

imageNice Step Tracking Marker

After the three or four steps of dealing with park stuff, players essentially count guests in their part and add up bonuses to get more money. there are then some cleanup steps, like all players discarding cards if they have too many, and then the starting player changes and the next round is played.

My family has thoroughly enjoyed the game. Although we don’t play events that hurt other players (too often), the game doesn’t feel like group solitaire at all. The amusement park theme of the game fits with our like of amusement parks and the game is well designed and plays well enough that we stopped looking up instructions after the first one or two games. As a contrast, we still sometimes get out the instruction book for Firefly: The Game.

But there has to be something wrong with the game, right? Well, there are very few unclear instructions. In the setup, one step mentioned placing some City cards into a temporary pile. temporary? What does that even mean? it means that you are making a City card deck/pile and that you need to just start that deck/pile with some red city cards. There is a single other cards added into that deck/pile and then four blue City cards are placed on top of that. The word “temporary” didn’t make any sense because that deck or pile of cards isn’t temporary, it gets used in the game. Or maybe I just read it wrong.

What else is wrong? The instructions didn’t make it clear that the tiny theme icon in the lower right corner of each card is only there for you to sort the cards back into theme decks when the game is done. They don’t means anything during game play (although each player does get to pick which theme they use for their Main gate card, Loan card, and cheat-sheet card). It is only the large icons in the upper left of each card that have any meaning related to theme during the game (and other stuff depending on the icon).

Oh, and the different theme decks are not all cut on the same card cutting machine so some of the decks didn’t shuffle together easily.

Those are really moot points since we figured out that stuff during the first game and we were sure about all that by the end of the second. And there are many ways to shuffle a deck if needed.

imageTypical Employee Earning You Extra Income

The game is very pretty, well designed, and has a very usable board in relation to the space you need for laying out the cards that you play. The instructions are awesome compared to some games that I have. Play is competitive and very well paced. Siskel and Ebert would give it two thumbs up. If it were a hotel, it would be a five star hotel.

I must say, the Kickstarter page has a very good overview of the game and a link to a video. Ignore anything I said about game play and just check it out there:

Lifter #3, Maybe?

March 3rd, 2017

Here’s a picture of a lifter ideas I threw together. The cool part is that the ball is lifted almost straight up – this is a straight line approximation mechanism – without a typical elevator or chain lift.


The line where the ball goes up is drawn for analysis bit when done, there will be no vertical supports in that spot. The ball will be lifted straight up along that path.

I am also going to build a lot more track around this lift. The lift is interesting but I’ve spent too much time on mechanisms lately. I want to build some track so I can design in a solid state reversing mechanism.

It’s funny how the picture looks like a bicycle design. Those circles, just like the vertical line the ball lift follows, are just drawings in the simulation and won’t be in the final work.

Ball Lifter #2 Done!

March 3rd, 2017

Rolling Ball Lifter #2 is done. Here’s some video and pictures of the finished product. A quick search of this blog will yield other posts about the construction process.

This Rolling Ball Sculpture, Marble Run, or Kugelbahn, is mostly a mechanical ball lift. The track is minimal to keep from hiding the machinery. It took two years of very intermittent work to finish.



Hilarious Comment on Programming Stupidites Page

February 10th, 2017

I was reading a bunch of funny programming related stories on a page dedicated to programing stupidities, and came across this:

About four years ago, I was working on a project that, among other things, involved porting several million lines of code. While not technically real-time, the code needed to be reasonably fast. At one point, I found the following gem:

unsigned long reverse(unsigned long theWord)
    unsigned long result = 0;
    int i;
    for (i = 0; i < 32; ++i) {
        if (theWord & (unsigned long) pow(2.0, (double) i))
            result += (unsigned long) pow(2.0, (double) (31 – i));
    return result;

Obviously, the purpose was to reverse the bits in a word. Naturally, I called all of my colleagues over to see this, and we all marvelled[sic] at how someone would think that a conversion to floating-point, a function call, and a conversion to integer could be faster than one shift operation. To say nothing of the possibility of rounding errors completely screwing up the, um, algorithm.

Not wanting to leave an exercise for the reader, here’s the replacement:

unsigned long reverse(unsigned long theWord)
    unsigned long result = 0;
    int i;
    for (i = 0; i < 32; ++i) {
        if (theWord & (1 << i))
            result += 1 << (31 – i);
    return result;

I just wanted to point out the irony of it: I could say that “I marvelled[sic] at how someone would think that using an “if” test in this code is at all optimal.” But I won’t do that since my replacement might not be the pinnacle of performance either. I’m just pointing out that it’s funny to see someone write unoptimal code while condemning someone else’s unoptimal code. Here’s my better replacement, which may not be the best but is better than that person’s best:

unsigned long reverse(unsigned long theWord)
    unsigned long result = 0;
    int i;
    for (i = 31; i >= 0; ––i) {
         result |= ( theWord & 1) << i;
        theWord >>= 1;
    return result;

There is no “if” test in this. There seems to be one less math operation too, but I’m not sure if the loop counter is optimal. I could have left the loop as “for( i=0…” and then written slightly more complex code but I’m not sure if the more complex shifting counteracts a more efficient loop counter.

The lesson? Humility is important. Don’t condemn someone’s code unless you are 100% sure that yours is not also condemnable. Or at least admit that you are not sure yours is the best either.

Also, long values could be more than 32 bits in these modern times, so a bit count check at the beginning of the function, or a comment about assuming that “long” is 32 bits, would be appropriate in there.

New Linkage 3.4

January 13th, 2017

Linkage 3.4 is now available. I got rid of the Elements panel and button. You will now need to right click to insert elements into the mechanism.

There are other changes mentioned in the first section of the PDF documentation and in some previous blog posts.

Get it here.

RBS On/Off Switch Beta Test

December 31st, 2016

I made a makeshift part to hold the far end of the on/off switch pull rod. Here’s a few pictures:



Once I make the decorative part to hold the end of the rod, I’ll cut some threads in the end of the rod and screw on a steel ball. The switch pulls out to turn on the machine, making it easy to turn it off in a hurry.

Oh, and the base is going to be 3/4” round acrylic the size of that piece of wood.

Working On An RBS Again

December 18th, 2016

I cleaned my garage and I’m back to working on a Rolling Ball Sculpture again. My garage was figuratively knee deep in stuff and almost literally knee deep in some places. I wanted to make some room to work on projects while also uncover the climbing wall. Yes, I built a simulated rock climbing wall 15 years ago and it is the first place I start to lean things when I’ve got too much junk to store elsewhere.


Climbing Wall Mostly Uncovered

I built the climbing wall for my then five year old kid. That’s why there are hand and foot holds cut right through the plywood. Then I added climbing holds for more difficult climbing, and finally, added the parts that lean out from the wall. For my casual use, it’s fun and just hard enough to build a little climbing strength.

The opposite view shows what my work bench looks like when it’s clean. Amazingly, this is the clean version“


“Clean” Workbench

It’s actually a bit cleaner than this now. When I too the picture, I was still moving things around. But it’s not much cleaner. The Benchmaster milling machine had been sitting in front of the climbing wall for a year and I finally cut away an L shaped extension of the workbench and moved it. It weighs a lot and the cheap casters I got for under each leg bent a little when I moved it. but it worked and it’s now bolted to the workbench and the wall ( the table, not the mill itself).

On to the project…

This is what I was working on a long time ago:


Ball Lifter #2

The movie is more recent and shows it actually picking up and dropping off balls:

Ball Lifter #2 Running

Skip ahead to 1:01 to see a shot of the whole thing at once.

I decided to add an on/off switch to this sculpture because the power switch on the cord of the previous sculpture seems cheap and is at the back of the sculpture. This new one will have the switch next to the motor with a few links connecting it to a push/pull switch in front. To convert the push/pull action to up/down action for the switch, I built some new parts shown here:


The Big Lever


The Big Lever After Cleaning Up


The Big Lever and Small Connecting Link (And Switch)


The Big Lever and Small Connecting Link (And Switch)


Opposite Side of Lever, Link, and Switch

The lever that sticks down will have a rod connecting it to the front of the machine with a small steel ball on the end. Pushing in on the rod will turn off the sculpture. I think that this cool switch mechanism will be a nice addition to the machinery.

New Linkage Beta Test

December 2nd, 2016

Get the Beta Linkage here!

If you need this Beta program for Windows XP, send me an email and I’ll send it to you…

There’s a new beta test version of the Linkage program. This new version has some bug fixes for things like the crash that sometimes happens when a fastened link is deleted. There was also a crash sometimes happening when a connector is deleted that is a slider on a curved slider path.


Press Alt and Left Mouse Button
to Drag Selection Box On Top Of Elements

For new features, I added support for the Alt key so you can select objects by dragging a box around them even if you are pressing the left mouse button on top of another element. the Alt key stops the element selection that normally happens when the left button is pressed.


Selected Actuator Control Knob

I also changed the way the actuator throw/stroke distance is set using the mouse; in order to drag the end of the “cylinder”, you will need to first select the actuator element. Then the little black dot, the same size as the little black squares used to resize selected elements, will appear. And the same type of control knob is available for drawing circles. You will need to set an initial size for the circle by selecting a drawing point and opening the properties box, but once set, a selected drawing circle has a control knob too for setting its size. These changes are leading up to me adding cams. Cams will need control knobs for creating their shape and those knobs should not be visible unless the cam is selected.


Circle Size Control Knob

There are other smaller bugs that got fixed, like a weird problem with link outlines going through the wrong connectors when some of the internal connectors are in the exact same location. I also fixed the way connectors are automatically moved when their curved sliding path is moved.

And I mentioned in in another post but maybe never made the software available for it: when elements are selected, entering a number followed by the letter ‘D’ in the text box in the tool bar will result in the elements being rotated by that number of degrees. remember that 60D will rotate the elements counter-clockwise as is typical of polar coordinates in math and unlike the typical compass headings used in navigation. I have no idea why they are different in direction but they are!


Entry of Rotation Value

Get the Beta Linkage here!

Linkage Adjuster Knobs

November 9th, 2016

I’m not sure what to call them. On an actuator, there is a small circle that can be used to change the throw length. That little circle is an adjuster knob or adjustment controller or something like that. I’m working towards in-mechanism editing of cams and changing the code to support those on any element is part of that work.

The first big change that is visible to the user is the addition of an adjuster knob on the drawing circle. The drawing circle is a drawing point element that is set to include a drawing circle. When the point is selected, the little adjustment knob circle will appear and can be dragged around.

The second big change is that I am making the adjuster knob on the actuator only visible and selectable when the actuator is selected. from now on, adjuster knobs of any sort are only visible when the element is selected.


Circle and Actuator “Un” Selected


Circle and Actuator Selected

Notice in the first picture that the actuator doesn’t have the little circle at the end of the “cylinder” portion of the drawing. Also notice that when either or both elements, the circle and the actuator, are selected, the adjuster knobs are visible. Either of those adjuster knobs can be dragged with the mouse when they are visible and it will not unselect the elements.

This is important work because there will eventually be a few types of cams in the program and they will all be modifiable right in the mechanism window. Of course I will also have some types of cams provide special properties boxes that let users set some properties by entering numbers (especially needed for engine valve cams) so this won’t be the only way to modify a cam. But for a cam with a variable number of Bezier curves defining the shape, having these controls is the only way to design the cam shape.

I am still testing this work and it might change in the future. I might also add adjuster knobs to other elements if there is any reason to do so; maybe chain sprocket size should be settable this way.

Linkage Update

November 8th, 2016

A new version is available in the usual place. I was finally able to spend the hour needed to fix the crash that happened when deleting links that were fastened to gears (or vice-versa). Version 3.3.13 has this fix.

A few other changes and fixes:

You can now rotate the selected items by typing in a number into the text box in the tool bar (the only text box) and then adding the letter ‘D’ after the number. The number is the number of degrees to rotate. I use polar coordinates, not compass coordinates, so positive numbers rotate counter-clockwise.


Polar Coordinates
The center of rotation, which you can set by selecting elements to rotate and then dragging the center mark to where you want to center the rotation, is now remembered if you are using the rotation-by-text-entry feature mentioned above.
I fixed how the sliding connector on a curved path is adjusted when it and it’s limit connectors are moved and rotated. It was just broke before.
Fixed bug that let a simulation run if both ends of an actuator were anchored.
Sped up some code from Microsoft to load the tool bar more quickly on high resolution displays. Some of their code resizes the images in the tool bar and it was resizing the same images more than once. I can’t seem to fix it to use my own pre-sized images, but at least the current change makes it a little quicker to start up the program on pesky 4K displays.

That’s it. Get the latest version to get these cool new features!