Grafitti Royale & F# & More

Well, last week, return to the cold weather, recovering from the cold and a sore back for the first part of the week and finally getting to a warmer day today, and wanting to get back “in the swing” as it were, I asked my roomies if they wanted to play a game or two.

We played Flag Dash, designed by one of Madison’s native talents.  It was a decent game once we got the general rules down, though I think having to wait to play does change the board a bit so it’s hard to have a perfect plan in motion.  Though I won, so I’m not complaining 😉

One issue I had is the general wordiness of the rule book (I should talk, right?) I’d kinda skim-read it a couple times, sat down and read most of it the other and my roomie read as we went along and I guided questions about specifics I remembered.  There were still details we weren’t sure of, but for the most part it worked.

I agree with my roomie that instead of player colors the team colors should have been used.  I suppose a “hat” could have been placed on for the colors of the players.

Anyways, then we played 7 Wonders and I lost as expected.  It’s been ages, but was fun to dig it out again.  I forgot how much I love it.

Then I wanted to show off the basic concept of Graffiti Royale to them, so I dug out the board, the small tiles I cut out (finally the right size!) Only one set, but it was just to give a basic idea of what I was thinking.  Showed them how the artist/worker placement would work, the basic “market” the layout of the tiles, the scoring concept, the penalties for getting “busted” and the Infamy for the one who was most busted showing that conflict and drive to punish your enemy, but not so much as to drive them to receiving benefits.

I actually had a good feel for it, and feel a lot more inspired on this than Quartiles, which I feel guilty about not doing more on.  So I should really get my ass to focus on that again.  It’s really just needing to get a few more powers that are simple to use but unique, and I’m struggling to find some ideas. Probably need to brainstorm.

The last bit is F#.  I’ve not programmed in a while and I’m curious about trying a functional language.  I’ve done very minimal “Hello World” type stuff in the Racket interpreter, for example.  Or Haskell.  And since I have used C# and know a very little of some of the concept of the CLI (Common Language Infrastructure – not the Command Line Interface), that it might be fun to try F#.

Further since F# seems somewhat lightweight/scripty, I though it’d be nice to use it with a code editor instead of Visual Studio.  There’s a plugin for Atom/VSCode called Ionide, so I tried to install that and after struggling to get it working, found a page on MS’s site that explained the setup better.  Ionide’s instructions already assume you know how to setup F# projects and such.

So, as with any language I’ve used apart from Basic, Turbo-Pascal and Logo, dealing with tooling setup and understanding that is the most pain in the ass of all of it.

Unlike Python and Java, dealing w/path variables was fairly painless (though part of that is how Win10 does the path now, with a nice UI that splits the paths into a list, instead of the string of ‘;’ delimited paths).

But what threw me for a loop was the Project Setup.  I couldn’t just say open an F# file and try to compile it (in Code) or run it in an interpreter, it kept giving me errors about something not being found, so I installed/uninstalled packages (Paket & Fake), nothing.  Finally I hit that MS website post with the instructions and setup a full project and BAM!  It compiled.

I know the FSI can run a script, so I should probably just invoke it that way if I want fast scripting/testing.  But goddamned, I really was hoping VS Code/ionide could give that experience without having to build a whole project infrastructure.

Keep It Simple, Stupid

Overthinking.  Sometimes you can overthink to the smallest details on some aspect, and miss a more simple and elegant system.

When I think of game design I love, it all comes back to the KISS principle.  The issue of the market mechanic for Graffiti Royale, the board game I’m working on with graffiti has been of concern to me.  My original idea used tokens that had a color and a number, from 1-3.  The numbers on these tokens would act as a value for various actions.  So – mitigate “damage” (more like a stealth value since it’s more about getting busted) would be one use.    Movement across regions on the cityscape board would be another.  Finally, the original vision used multiple quantities of colors so you may need 2 red and 1 blue to play a certain graffiti tile. The quantity could be used with a chip, so, you might take two value 1 red tokens or one value 2 red token for this example.  But as you use it, you lose some of its ability to help in the other uses like mitigation.

That got convoluted so I stripped it, so I removed the costs to just 1 color, you still had a choice, but it was more “color vs number” (the number would still be used for mitigation — I also decided to remove movement at this point, will add later if necessary).  Mitigation is important, because you ultimately will pay a penalty for each point of “busted” you get.

So ultimately this went from a “spend and move” to a “worker placement” game.  Simplifying the use of the number to a single use, but still having choice in use.  It reduces complexity.

But my biggest issue was one of the locations for players to place their “worker” was the paint store/market.  I kept trying to think of how to create a market mechanism that worked and created an extra tension: I don’t need a red, but it has a 3.  And that color is only a one and it costs 3, but I NEED that color.  But then I lose possibility of mitigation.  Choices like that in deducing cost.

Well I worried that was getting a bit complex, and I realized that ultimately I shouldn’t work too hard at this.  In fact, I’m thinking of going with some sort of “Ticket to Ride” card drawing mechanic.  There’s no auction/purchase mechanic involved.  Pure worker placement.  1 worker = 1 purchase.  If you wanted, you could place all 3 of your worker/artists there and get 3 color tokens, etc…

The more I think about it, the more it makes sense as a basic way to get this game rolling.  If it needs more complexity?  I can add it later.

Don’t get bogged down into too much heavy complexity.

KEEP IT SIMPLE, STUPID!

On where I realize I should prototype small mechanics individually in a larger game design.

It’s been a while again, eh?  This is the first weekend I had where I have not had mandatory Overtime in … 9 months?  A full weekend, what to do?

A few game design ideas came into my head, one a new thing, and one just pondering about my graffiti game.

1) Movement/Programming game based around hacking.  I have a hacking game concept that I wasn’t sure how to proceed, but I think it might be interesting to have it be a path laying game, where you play hex pieces that have paths/routes between nodes.  All on a sort of original Pandemic board – that “cyber” light on black screen look.  You could have number tokens that indicate things like number of pieces to play or how many rotation steps to perform of an already existing node (in that sense I could see it be a little like “Droplitz” and old X-Box 360 game.  Anyways just thinking of that sort of mechanic.  I’m interested in the concept of programming games, but not quite sure how I want to implement one yet.

2) Graffiti game.  Mostly thinking about what I need to do with what I have, instead of fretting about getting a big board or pieces.  And this is going to seem the most obvious, but… Prototype play small subsets of the game in chunks.  Like – I have an idea for a market mechanism.  JUST DO IT.

Now that I have time to do so, I Just need to play it out, not hard at all.  I don’t need to print pieces as I’ve got the pieces already made.  I can get a basic market mechanic going and then see if it feels right, then integrate with movement/piece playing mechanics, etc…  So prototype that out tonight is my goal 🙂