Al Sweigart's tumblr

Short blog posts on my random ideas and thoughts.

Feb 27

Game idea: Robotic Ant programming game

A programming game. Players write bots that control robotic ants in a 2D world.

Each ant has limited ability to sense nearby, but broadcast to a wider range. Ants have a specific color that acts as their species. A single player writes bots for ants of a single color.

Food has a single color and can only be eaten by that ants of that color. Ants search for food and can pick up and carry food. Ants need food to live and asexually divide. When ants run out of food, they hibernate. If they hibernate for a long time, they die. Hibernating ants need to be fed by other ants.

Ants do not attack each other. Ants can pick up and deliver other color food to other color ants. Ants can also broadcast locations of food. The broadcast messages are in JSON. Players can construct their own messages and “language”, but I assume a generic message system will evolve and be published by players.

Ants have names that are revealed to any nearby ants. Ants can expend a large amount of energy to change single characters of their names. Ants can disguise themselves by giving themselves the names of other ants. Ant colors are not readily apparent. Ants can emit a pheromone that proves their color. The pheromone does not have to be emitted, but also cannot be faked.

Cooperation, reputation, and deception play into this game, since the game world is large and information or trading food pellets can become important.

Only one ant can occupy a square in the game world at a time. Ants can pick up and move pebbles, and also “plant” them permanently into a square to block off areas. Ants can form buildings and passages this way, and use their bodies to block the passages.

Ants do not know their absolute coordinates in the game world. Ants may or may not start off scattered around the game world. The game world has terrain that has varying degrees of energy to cross, and water is completely impassable.


  • Communication
  • Teamwork
  • Path finding
  • Resource Management
  • Deception / Reputation

Jan 29

Game idea: “Bicameral”, a bot-programming Ingress-like game.

Ingress is an AR game where, using your smartphone’s GPS, you visit IRL landmarks which are “portals” in the in-game universe. You then “hack” or “access” these portals to receive items, which you can then deploy to other portals to claim them for your team. Once a portal has enough items deployed, they can be linked together. Three linked portals form a triangular area. The point of the game is to have the most claimed area.

There are other items too: defenses you can set up for your portal, bombs to attack other team’s portals’ items so you can then claim them, etc. You can strategically create links to block off potential links for your opponents.

I had an idea for a bot-programming game that is like Ingress. Instead of humans playing an AR game, you program bots to move around the game world and access landmarks and link them. Bots can be as simple or sophisticated as you want. They can coordinated with each other, or use simple algorithms and rely on emergent behavior (like ants or other colony insects).

I originally had an idea for a theme of Neanderthal-like humans wandering areas. The human player acts as the cognitive part of their bicameral mind, programming them what to do. Instead of portals, you have sacred sites. Instead of deploying resonator items, they build alters. You then want to link alters and also destroy the alters of the other team.

This could be implemented as a HTTP game with a REST API for issuing commands for your bots. The bot-controlling program could then come from anywhere, or even just be a human-controlled player (though humans have jobs and need to sleep).

This would also be a perfect information game, with the positions and statuses of the sacred sites and bots in the game world known to all.

The bots would have to handle several interesting programming problems:

  • Finding new targets, and prioritizing targets.
  • Calculating efficient travel paths to target sacred sites.
  • Knowing when to attack and when to reinforce alters.
  • Various traveling-salesmen type problems.
  • Coordinating with several different bots, including bots on the same team but controlled by other programmers.

Dec 24

Game Idea: “Dragon Strength”

"In a remote valley a large community of hobbits live. However, during a dark time an evil army was poised to massacre the town. The town wizard summoned a dragon from the astral realm and bound them to the task of protecting the valley. The dragon’s might slew the evil army, and the valley was protected for the next hundred years under the watch of the dragon."

"However, as news spread of the hobbit valley’s might guardian, would-be aggressors were cowed. Able to devote their lives to peaceful pursuits, the valley prospered with commerce and order spreading beyond the valley and throughout the neighboring kingdoms."

"But with no army to fight, the dragon became reclusive. Her strength was no longer needed, and she worried that in this age after war she was less dragon and more dinosaur. She grew reclusive in her mountain cave."

"But now plague has hit the hobbit valley, one so virulent as to threaten a slow, agonizing extinction of hobbit-kind. Immune to the plague but unable to fight such a tiny enemy, the dragon knew she had to fulfill her duty to protect the valley. She just had to figure out how…"

"Dragon Strength" is a game where the player controls a dragon and must protect and grow a valley of hobbits. This presents unique challenges, as the dragon is not quite suited to solve the non-combat problems the valley faces. I envision the game as a general city sim and resource management game, with some action components involving direct control of the dragon.

The dragon can fly and breathe fire, but this often is far too destructive for what the hobbits need. You have to convert the dragon’s strengths into more constructive aims, such as:

  • Moving people and goods, as well as dictating where the hobbits should set up their “dragon-ports” and trading centers.
  • Using your immunity to fire to thwart forest fires.
  • Provide mapping and aerial information and perform patrols.
  • Lending out parts of your dragon hoard to stimulate economic development.
  • Clear road paths and other earth construction tasks.
  • Earn the trust of hobbits and reduce their fear of you.
  • Not inadvertently destroy the town or things around you.

(Personally, I won’t have time to develop this game, but I thought it was an interesting concept.)

Dec 19

The Bad Roommates Situation

I think this is a metaphor that could apply to a lot of social/economic dynamics:

You have a clean roommate and a messy roommate who live together. The messy roommate doesn’t mind a messy apartment or a clean apartment. The clean roommate doesn’t mind cleaning their own messes but does mind messy apartments and cleaning other people’s messes. The messy roommate does mind cleaning and hearing the clean roommate complain.

It takes effort for the clean roommate to clean the messes the messy roommate makes. One person pays the cost of cleaning, but both benefit from the clean apartment. However, the messy roommate doesn’t see this as a “benefit” (they don’t mind a mess) but they do see the “cost” of cleaning.

This isn’t quite the Tragedy of the Commons: the messy roommate honestly doesn’t mind messes and couldn’t care if clean roommate cleaned or not.

Each roommate considers the other to be a “bad roommate”. Aside from getting separate apartments, what is the “fair” agreement that should be reached? Should one accommodate the other? (The messy roommate by sharing in the cleaning, the clean roommate by not complaining about cleaning the other roommate’s messes.) UPDATE: Assume that hiring a cleaner and splitting the cost is just as odious to the messy roommate as sharing in cleaning duties.

UPDATE: Some more thoughts. This situation easily applies itself to software developer “code reviews”. You may have one developer who thinks code reviews are effective ways to prevent bugs, but one who thinks they’re a waste of time. The pro-review developer needs the other one to do the review, while the anti-review developer hates taking time to do something they think is ineffective.

I think one of the things that makes this situation so insidious is that it cannot be solved with the Golden Rule. Clean roommates would like the messy roommate to do unto them and clean their share, while the messy roommate would rather they both not complain about messes.

Dec 5

Things I Have Considered Buying, Held Off, and Ended Up Not Buying

  • Mac laptop (Powerbook or Air)
  • A nice, $100+ wristwatch
  • A Hulu account
  • Oculus Rift dev kit
  • Dremel tool
  • Three copies of the Mythical Man Month to put on my desk (inside joke)
  • A Newton’s cradle
  • Wireless bluetooth headphones

This is a list I hope to continue updating. This is not a wishlist; I only want to take a simple pride in the things that I have decided not to purchase. This list is a reminder that it would be irresponsible if I did come to own these things, and that I’ve lived my life so far perfectly content without them.

Oct 30

On women in tech.

I like the quote, “Not everyone can be a genius, but genius can come from anywhere.” Personal computers are in the hands of more people than ever, and they are powerful tools that let an individual create castles in the air. The right idea implemented in software can literally change the world. But how gobsmacking it is to think that the next software tycoon instead had thought to herself, “Maybe this isn’t the kind of thing for me.”

Oct 25

Hardware & software idea: InstaCRT-type photo setup for online chess games.

TL;DR: A robotic system for setting up chess boards with arbitrary configurations and take photos of it. Use these images for online chess games.

A CNC-like device that can move magnetic chess pieces around a board into new positions. Whenever people online make a chess move, instead of drawing a computer-generated image of a board, it shows the actual photo of the chess board. We can’t pre-photo every possible combination board beforehand (between 6 pieces for each player and 1 empty space, iti s 13^64 or 1.96 x 10^71 possible photos. Times 8 if we want to have multiple perspectives of the board.)

Instead download a large quantity of chess games and photo each of those positions and save them to a database. We can then have common photos taken for most cases, and then move the chess board in real time and take a photo in other cases.

The system would need to be able to move pieces on and off the board as they are captured, and handle knight jumping, and also have duplicate pieces when pawns are promoted.

Oct 16

Idea for Homelessness Awareness publicity stunt

Requires five or six people. One dressed in a costume head-to-toe made up of cardboard signs that say, “Homeless. Please help.” Two dressed as scientists with clipboards and white lab coats that say “Invisibility Cloak Test Engineer” on the back. They are on either side of the first guy, backs turned so that pedestrian traffic can read it from both directions. One photographer (though a scientist can double for this job). Two people handing out fliers and interacting with the public and soliciting donations with Square readers on their smartphones.

Got the idea from

Oct 8

Mobile App Ideas List

This is my personal app ideas list when I finally get around to learning Android programming. I’ll be updating this list on occasion.

  • 7 Wonders player scoring app (that doesn’t suck)
  • Dice Rolling app (that doesn’t suck)
  • "Tetris for Idiots" (joke game)
  • Regex teaching game
  • Alien currency exchange game
  • Rock-paper-scissors siege game
  • Clicker counter (that is highly configurable and doesn’t suck)
  • BeatCount, multiple color circles with patterns of “beats”. You need to keep count of how many times they beat. It is a concentration game.
  • "Set" Training Game

Sep 18

"Once upon a generically timeless time…"

Once upon a generically timeless time there was a boy or a girl or a set of siblings who were bored with their mundane lives. This boredom was a constant in their adolescent world, punctuated with the occasional frustration, social humiliation, or outright abuse.

The protagonist was different. In fact, another character comes and reveals that the protagonist has magical powers or is of secret-royalty or has some other quality that is both special and effortlessly innate. This quality is initially weak but will strengthen as the plot does.

His or her parents are absent, if not permanently than temporarily for the season. If there are any adults at all, they are a careless uncle, a cruel aunt, a wrathful headmaster or some other person unfit to be a loving and responsible guardian.

On an otherwise ordinary day, something curious happened. When he/she/they examined the something closer, it did not seem to be just the thing its ordinary appearance made it seem to be. While investigating further, they accidentally stumbled upon a different world where extraordinary things were an ordinary fact of life for its inhabitants, and disbelief was well-suspended.

At first, this new world promised lots of exciting new possibilities. The world is very richly textured, with their own cultural customs, dress, holidays, colloquialisms, currency, given names and surnames, history, eating utensils and other details the author plagiarized from non-Western cultures.

Animals are sentient and can hold conversation, but that doesn’t seem to influence anyone to vegetarianism.

But not all was well in this land. There is an authoritarian and selfish antagonist who wields some degree of political and military power whose influence slowly encroaches on the initial place the protagonist entered the mystical world.

The antagonist is an adult.

Driven from the village or home-like domain that first welcomed them, the protagonist was forced to flee elsewhere in this new world. The other inhabitants view them as an outsider, or even hunt them outright as their presence is decreed to be a foreign contamination of their magical universe. At this point the boy or girl or group of children cannot easily make it back home.

But the protagonist makes friends who were willing to show them the ropes of navigating this new world. He or she comes into possession of an artifact that could be used to combat the antagonist or antagonists. If the artifact is a literal weapon, it is not a firearm.

Two of these characters, while both friends with the protagonist, constantly bicker with each other. But in times of danger, they prove to be loyal and courageous. They kiss. Then they pretend like they didn’t kiss. Then they kiss again and admit to their love for each other.

Secrets are hinted at, pursued, and revealed. Mysteries are presented, pursued, and solved. This involves a lot of sneaking around and cleverness rather than direct physical combat.

Many of the antagonist’s henchmen are pursuing the artifact, because it is the both the key to the antagonist’s downfall and the key to advancing the plot. One character who initially seems shifty is suspected of imminent betrayal, but in the end sacrifices themselves for the protagonist. This one act of generosity after a lifetime of deceptive behavior, snarky insults, and occasional theft shows he really did have a heart of gold after all.

Meanwhile, an ostensibly honest ally betrays the protagonist, showing that it can be completely unpredictable of who turns out to be trustworthy or not.

After their journey, the antagonist is either killed (to teach that violence solves problems) or it turns out to be all a big misunderstanding and the antagonist becomes good. But usually the antagonist is killed.

The child finds a way home, although the friends must stay behind in the magical world for some bogus reason the protagonist doesn’t question. He or she has learned a lot of important lessons about life, friendship, sacrifice, but mostly to stop being such an immature whining kid and start acting more like the adults who wrote, published, advertised, sold, and bought this book for the reader.

The End. Except with the possibility of eight or nine sequels.

Page 1 of 2