This is somewhat similar to my Hacker Game idea which I haven't written up yet, so I can't link to it right now. This, though, is a tabletop game.
So, we have a gameboard with a grid, and it's got some stuff randomly on it. One gets points in the game from collecting items off the grid and putting them into your target zone. When an item is put into a player's target zone, it is removed from the board and put into the player's stash.
The way you play, though, is with robots that are also on the grid. Each robot, for each turn, can do some number of actions (let's say 4). The types of actions are "pick up item, drop item, move left, move right, move up, move down". The move commands all have some number attached to them, so "Move 3 squares up", for example.
These actions are on cards and are played into slots 1-4 of a robot in the Players part of the round. Then, in the Robots part of the round each robot does each action, as described by the cards, one after another. So, the action in slot 1 is taken first, then the action in slot 2, etc. If at any point it can't complete an instruction, the robot ends its turn. So, if instruction 1 is "Move 4 sqaures up", but there is a box 3 squares above it, then it instead moves 3 squares, until it hits the wall, then it stops. It doesn't run instructions 2 through 4, since 1 failed to complete.
I think players take turns going around laying one card in an open slot until all slots are full, or each player passes. Oh, or, there can be an unlimited number of NoOp cards that a player can always play. So, a player may play a card from their hand, or a NoOp, but they must play a card. That way there are always 4 * (number of robots) turns, and stuff.
So, that's the basic game. Control bots to move to resources, grab them, then move them to your target zone, all without other people screwing you over.
Then there are special cards:
- Firewall N: If you play this card, it gives you N firewall cards of your colour you can immediately play into slots. Other players cannot play cards into those slots, but you can.
- Off By One: You can play this card to modify an existing movement card to make it either one more or one less than it was.
- Glitch: You can play this card to turn an existing card into a NoOp
- Bug: You can play this card to make an existing card do the opposite of what it normally would. Pickup becomes Drop, Up becomes Down, Left becomes Right
- Shift: You can play this card to open up an earlier space, shifting all previous instructions down.
- So, if we're on the 3rd card, and you play this you could move what's previously in 1 and 2 down to be 2 and 3, opening up 1
- Insert: Same as shift, but allows you to play a card into this newly opened slot immediately
- Possibly Insert is Insert X, where X is the explicit instruction you can insert into.
- Like, Insert 2 would only allow you to put an instruction in 2, no matter what stage we're at
- Dual-Core: Allows you to play two more cards this turn.
- Playing (Dual-Core + Shift + Any Card) is the same as playing (Insert + Any Card)
- Playing (Dual-Core + Dual-Core) is allowed if you have two in your hand, etc
- Flush: Take all cards from either a given robot, or maybe the whole board, and discard all of them
- I don't know if I want to allow those slots to come up for grabs again, or if I want them all to become NoOps
- Abort: Like Glitch, this makes an instruction be performed, but no instructions after it are run
- It's possible I don't want this, and instead want a clever use of Insert and a bogus Instruction instead.
The robots have to have some assigned order, but I don't know if they perform all of their operations before moving on to the next robot, or if they each perform instruction 1, then each perform instruction 2. It only really matters when the robots interfere with one another. Do they interfere from stage 1 to stage 1, or from stage 4 to stage 1. I'll say the robots have a defined order, and they run stepwise. Stage 1 Robot 1, Stage 1 Robot 2, Stage 1 Robot 3, Stage 1 Robot 4, Stage 2 Robot 1, etc.
Robot Rules:
- A robot cannot move into a space occupied by a stationary barrier, or another robot. If an instruction would move it there, it will move as far as it can, then abort.
- A robot may move into or out of a space containing an item.
- If a robot is instructed to Pickup while in a space that doesn't contain an item, it will abort.
- If a robot is instructed to Drop while it isn't holding an item, it will abort.
And really, I don't even know about those last two. On one hand, that's an easy way to abort things. On the other hand, if you have a whole chain setup, and someone throws down an Off By One, then it make it move, then miss the item you thought, then pickup nothing, then move around with nothing, and will be more disasterous than if it just moved to right beside the item and then stopped. Yeah, I think I want to get rid of those last two as abort cases.
I'm also not sure how I feel about having the robot carry more than one item, or having more than one item on a space. I think it'd be fine. A robot would have to issue one Pickup instruction for each item, and one Drop for each item to drop, but it should be fine. And again, we're playing these cards from a hand, so you have to have enough Drop instructions, and the more items a robot is carrying, the more valuable it is, and fragile, so yeah. I'd say you can do it if you like, but it's risky. A robot can carry as many items as it wants, but must Drop each of them separately. They Pickup and Drop in a stack. As many items as is desired may be Dropped into a single space.
I think playing order is that each player draws a card, plays a card, potentially playing a NoOp from the bank. So, when it comes time to fill Stage 2, you draw a new card which you can play, but didn't have when you were filling Stage 1.
To pick player order for a given round:
- The player with the fewest cards in their hand goes first, second fewest second, etc.
- If players have the same number of cards in their hand, the player with the lowest score goes first.
- If players have the same number of cards and the same score, then the order is determined by shuffling a set of cards set aside for this purpose containing 1 through the number of players.
- So, if we're tied in all ways for 2-4, then put cards 2, 3, 4 from this tiny deck into a random order by shuffling them, then deal them out to the tied players. This card contains their ordering.
- At the start of the game, all players will have the same number of cards, if no one discards, and will all have the score of 0. This card method will therefore be used until there is more variation.
Before player order is chosen in a round, any player may discard any number of cards to achieve better player order.
I think I like having 4 actions per robot, but that can easily be tweaked to something else. Also, to make it line up more, I think having one robot per player makes sense. Either that or some multiple like 2 robots per player.
Many tweaks to those number will give the game a different feel. Having 1 robot per player with 4 actions per robot will be normal, having 1 robot per 2 players with 6 actions will allow for more struggle and correction. Having 2 or 3 robots per player with 1 or 2 actions per robot will give a faster more chaotic game.