The Tao of Gaming

Boardgames and lesser pursuits

Archive for the ‘Artificial Opponents’ Category

Software is hard, but not that hard

with one comment

I just got back from my vacation …. after a full solid 26 hours of airports and planes. It actually wasn’t horrible (apart from the four hour delay at JFK) because Delta planes have in-seat entertainment systems (and I had my books, of course).

The big game for the last two weeks (on the cruise, and in the airplane) was Boggle. (OK, the airplane’s game was the simpler “how many words can you find in this jumble for letters.”)

When I got home, I googled “Open Source dictionary,” because the last two weeks made me think those weren’t a thing.  Here are some words the cruises “Word finder” game didn’t accept:

  • cries
  • cried
  • makes

There were a ton of others. For a while I thought it was not allowing ‘s’ words (or multiple forms of the same word), abut other times it allowed all forms. That game also accepted a bunch of non-English latin words, acronyms, as well as frankly weird things like “ggg” and “Vneder” (but it rejected “Vender,” which is an archaic ‘vendor’.) [It shows a list of “words you missed” after each round, which is how I discovered these.]

It also accepted practically every name. I get that they can’t use the OSPD or SOWPODs (without ponying up licensing money), but downloading an OS dictionary takes literally a few minutes. (After playing for a while, I started mentally designing a “Boggle solver,” that won’t take forever. I may actually write it as an exercise, we’ll see).

Anyway, after spending way too much of my ship time playing Boggle (and being bewildered by dictionary) I played a few hours of “Letter Mix” on Delta on the way home. And I realized two things:

  1. After a dozen times I started seeing repeats of the puzzles (six letters).
  2. One set didn’t contain all the possible words in the solution. (They missed ‘hides’, but got ‘shied’).

And I realized that program didn’t have a solver, just a list of puzzles and acceptable words for each! Come on, this isn’t rocket science. (The Delta series of games definitely had a slapdash nature. The poker program had misleading english. “Player A raises to $2” when he actually raised a $2 bet to $4. And I suspect that the chess program had the “Easy/Medium/Hard” settings flipped, because I casually lost on easy unless I was paying attention, but on Hard the program just hung a queen for no reason.

Look — writing a good computer program may be hard, but some parts shouldn’t be. Get a good dictionary, people.

(My only other gaming news was losing in a cash no-limit game when my aces got cracked. In my last few cruises I spent a lot of time on the casino — I dislike cruises and may yet rant about that if I haven’t already — and after that I decided to just spend my sea time playing boggle instead, since in my two hours playing I couldn’t spot the fish).

I also murdered a few hours playing bridge, but on a cruise ship with random opponents that hardly counts as gaming.

Written by taogaming

June 20, 2017 at 2:25 pm

Factorio Tutorial — Simple Production Ratios

I see a fair number of questions on production ratios (on reddit) and amazingly, nothing on the wiki seems to deal with it, so here it goes.  (This is really just a draft I plan on cleaning up and putting on the wiki).

The beginner says “Aha, I need a ton of <insert something here> so I’ll build some factories for it.” Then the factories sit idle most of the time. Adding factories doesn’t work if you don’t have the necessary inputs. So, how to figure that out? The easiest way is decide how many outputs per second you want.

For simple things (such as red science) you can build a lot of factories because the inputs (copper + gears) are either fast to make or basically infinite. (OK, not really, but if you aren’t smelting enough copper you have bigger problems). But let’s consider science pack 3 (blue science). Here’s the formula (as of 0.15):

1 Advanced (Red) Circuit + 1 Engine Unit + 1 Assembling Machine 1 (Grey) and 12 seconds makes 1 blue science.

(Thanks to Dave McW’s wonderful cheat sheet for this).

So, the easiest way to is to target some # of packs per second. Let’s say you want one. Picking round numbers makes it easy.

As the old saying goes ‘You can’t make a baby in one month by getting nine women pregnant.’

But you can average a baby a month that way.

To average 1 blue/second, we need 12 factories. (I’m ignoring the speed multiplier for assembling machines. It isn’t actually 12 seconds, depending on the factories. If you have all blue assembling machines (level 2) and change everything to level 3s, the number you get will speed up, but there will be no bottlenecks or slowdowns if they are all even).

Rule of thumb — If you want one unit output per second, you need as many factories as the time it takes.(Again, ignoring speed multipliers). If you want Z per second, you need Z times the number of seconds it takes one factory.

So, we need 12 factories producing blue packs. Now the reason to pick a nice round number like “one blue a second” is that we now know that we need one red circuit per second, one assembling machine per second, and one engine unit per second. We have to have enough inputs.

So, what does an Engine Unit take to make?

1 Steel + 1 Iron + 2 Pipes and 10 seconds makes an engine unit.

In order to support one blue science a second, we need 1 engine per second, which means 10 dedicated engine assemblers. Similarly, we need six red circuit assemblers. We only need half of an assembly one assembler, since it only takes 0.5 seconds. We can make these factories dedicated for this output (which may make sense for some objects) or we may have a big production area (for, say red circuits) so that any overflow can be used elsewhere.

Let’s look at a more complex example: Production Science Packs (purple)

1 Pumpjack + 1 Electric Engine Unit + 1 Electric Furnace + 14 seconds gives us 2 production science packs.

If we want one purple per second, we need seven factories dedicated to production (since they produce two each every 14 seconds).  Every fourteen seconds our seven factories dump out their two purple each to give us one purple per second, and every fourteen seconds they each take in a pumpjack, electric engine and furnace.

So we only need 7 of each input per 14 seconds.

We need 1/2 of a pumpjack per second (or 1 pump jack per two seconds). Ditto the other two.

Electric Engines take an engine unit (sigh), 2x electric circuits and 15 units of lubricant and 10 seconds.

If we want a dedicated line we need five factories (for 1 every other second), which will also require 5 factories for engine units (again, one every other second).  (Remember our rule, we want Z per second. Z is “one-half” and the factories take 10s, so 0.5 x 10 = 5 factories.

“It’s really easy to forget the two outputs per unit time,” he wrote looking at his current factory and suddenly realizing why there’s such a backlog of electric engine units. Ah well, I can divert some of that production and my pump jack production….In fact, there are a number of practical matters. If you only use purple science packs intermittently, you can get by with lower inputs and you’ll buffer some up while researching things that don’t require purple).

So far we’ve just spoken of production speed, but if you start getting into big numbers, you may have to worry about throughput. Maximum throughput of a yellow belt is 13.33 items per second.  If you need 15 or 20 items per second, you’ll requirea faster built (or a second belt) otherwise the first factories in your line will consume all the inputs and choke off your remaining factories. For our examples, that hasn’t been a huge concern (although technically it means that our one purple per second is actually 13.33 purple per 14s, assuming we have perfectly packed yellow belts). But if we wanted to go to two per second, we’d need to upgrade our belts (red belts are exactly twice as fast). If we wanted to go to 5 a second, that would require multiple lines (or maybe having a staggered line where we produce a few intermediates, then a few purples. But that way lies madness).

You can do this to see compare if you have enough labs to consume your science production (or too many labs) although that’s tricky because the colors you need (and times) change based on what you are researching. But typically research takes 30s or 60s (some of the early game research takes less, and some military researches take 45 and braking speed takes 35!) If you produce one (of each color per science) then you can keep 30 labs working all the time, and your 61st lab is guaranteed to sit idle (assuming you never stopped), but in reality you will stop from time to time….

I haven’t done the math on launching one Rocket Per Minute, but throughput becomes a big concern.  1000 Rocket Control Units (which are required per rocket) requires just shy of 40k iron per minute, 650ish iron per second (smelting and transport). Of course those actually have a bunch of intermediate steps, but that’s 17 lanes of express belts just for iron. (In reality, its a bunch of trains to various outposts to make green circuits, etc). And rockets have a bunch of other parts.



Written by taogaming

May 2, 2017 at 10:26 pm

Posted in Artificial Opponents, Strategy

Tagged with

If you were borderline on Factorio

They’ve just released 0.15 (up to 0.15.2 for some bugfixes). I’m sitting here waiting impatiently for it to download. Nuclear power, rebalanced combat, a ‘marathon’ mode (critical items take a lot more materials to build), and prebuilt settings for various styles of play….

It is a sign of good sportsmanship on my part that I didn’t skip gaming to download it yesterday (when it released), but that’s only because I’d promised that I’d teach High Frontier.

Update — It’s slower going (7 types of science instead of 4 — and purple science is no longer “stuff you get for free by killing natives”). I’ve got a horrible spaghetti maze because I haven’t been looking ahead. I should probably punt, but my goal is to use this base as a starting point for a big base, so its ok. But I do like many things:

  • Flamethrowers are still good, but much more expensive. Bullets have been buffed, because they were terrible.
  • Infinite science (even if some of it seems to be a bad deal, like mining productivity).
  • Lots of quality of life fixes (showing oil patches underground, etc).

I need to get logistics bots for this factory. It’s not pretty. Gotta find a new copper patch, too. Have basically run out.

Written by taogaming

April 25, 2017 at 7:32 pm

The rule of factorio is more factorio

While I’m waiting for 0.15 to drop, I’ve been building up a mega (for me) factory.

Not a mega-base, but pretty big

That’s about 35 hours of game time. After I launched a satellite, I stopped researching (and paused my second satellite because the strain of it nearly cost me my entire petrochemical resources). I’m building up my train network and moving slowly out.

I’ve already depleted three of my iron deposits and multiple copper deposits (those kinks in my train network were adhoc stations, now removed).

My train network is (sadly) spaghetti near the base and I originally built track with 1-2-1  trains (one locomotive, two cargos, a reversed locomotive). This lets you run automatically on a single track, but it doesn’t scale well and switching to run-on-right tracks (like highways, one lane going one direction and the other reversed) matters when you start wanting to have a lot of traffic. (I guess 6 trains counts as a lot for me). I’m in the process of switching to 1-2 double tracks, but you can still see where I haven’t finished (right near CopperLoading-2). I also have to hook up my iron and copper/oil networks together, so that I can move Iron from the NW to the SE loading station.

I now know to not put a station for ore loading on a main train line, just branch. And to keep straight lines (horizontal or vertical) for the most part, because you can blueprint a few patterns and be done. Ad-hoc is bad. Power isn’t a big concern. I’m mostly solar, which costs lots of real estate and resources, but since the point was to experiment with mega-bases, that’s ok. I do look forward to Nuclear power in 0.15.

Some of my solar arrays …. Don’t hand-build more than one….

I think I’ve got trains down …. I still miss a signal from time to time, but I’ve blueprinted them and rarely spend more than a minute before spotting a problem. A significant fraction of my power goes towards laser turrets, for good reason.

The natives are restless

Anyway, scaling up a mega base means more-more-more. More ore. More factories. More throughput. I’m building way too many modules, which is also way too few.

Magic (main) bus,carrying parts to all the assembly machines

Still too much spaghetti in the station (despite having a main bus) and I’m using logistics bots, but mainly as my valets (and a few odd things like my satellite construction and disposing of lumber by feeding trains). And I (again) found a lot of things I would do differently next time.

Still enjoying this.

Update — And then I ended up staying up another few hours to fix my train network, add two mining operations, re-jigger my oil network, expand my power supply by three mega-arrays (thankfully I noticed a few minutes before a catastrophic shortage). Next is ore processing throughput/switching to advanced ovens. And there’s four hours gone.

Written by taogaming

April 1, 2017 at 8:26 pm

Factorio Resurgent

So — my first rocket launch over the holidays took at about 35 hours (game time, not real. Game time pauses on some menus). Actually building the rocket took ~7 hours. I took a break but then tried again (this time with Aliens not peaceful) and got around 15 hours. I had the rocket researched at 10, but it still took me 5 hours to build.

I’ve never really watched Twitch (or whatever the videogame stream is), although my kids and nephews did (Minecraft, Five Nights at Freddy’s, etc). But hearing about a sub-two hour (real time) launch? That seemed worth watching.

Watching a World Record run is interesting. To be fair it’s a stacked game, but this was the record for a ‘seeded’ board. A map with ginormous resources and a friendly layout and he’s replayed the same map hundreds of times, so he knows the exact layout he wants to build before hand. Still, even with all those advantages? Impressive.

Hypnotic, even. Like watching an organically grown circuit diagram. Every few minutes (after about the 30 minute mark) he zooms out to make sure nothing is wrong, and it reminds me of a VLSI layout. To be sure, this is of much more interest if you play the game, because you can get a lot of strategy advice by watching.

After watching that I decided that:

  1. I needed a lot more straight lines in my factory
  2. I need a lot more resources
  3. To not crowd things together, unless I had a good design layout. (The speedrun was chockablock full of interesting design decisions. Particularly the Blue Circuit layout). Obviously this had a hyper optimized (space) run, but you can’t plan out every rock or whatnot.

Anyway, after watching I decided to try a map with ginormous resources. I’ve almost researched the rocket 5 hours in, but I need to get blue circuits started. Petroleum was a bottleneck: the nearest crude was quite far away. I’ve got much more spaghetti — but I didn’t tune the map besides a few restarts for bad ones.

The TaoLing wants me to continue post rocket, and I may try to build a megabase that can launch a rocket every X minutes (instead of X hours). We’ll see. I did take a break for a week or so to get in ~40 games of Jump Drive, but now I’m back to Factorio.

Written by taogaming

February 3, 2017 at 12:22 am

Posted in Artificial Opponents

Tagged with

It is over!

It is over!


Actually building the rocket only took five hours, which involved two power outages, an entire rework of the chemical factory network, and an iron shortage that meant that I was running the last few hundred steel from a hastily rebuilt smelting plant. I may start up a ‘real’ game (with non-passive aliens) after this weekend’s bridge tournament.

Or, you know, before.

Written by taogaming

January 6, 2017 at 5:46 pm


After 30 hours of Factorio gameplay of the current campaign, I have finally discovered how to build a launch silo! Almost there. Then I read the equipment. Building the silo itself takes the following:

  • 1000 steel pipes (which I have around) and some pipes (ditto)
  • 200 Electric motors (not easy, but I do have a single factory making them, and most of the precursors built
  • 200 complex electric circuits (I have a chain for that, I was pumping those out for speed modules)
  • 1000 Concrete (which I’ve never built, sigh)
  • Some modules

Then once the launch silo is built I have to feed it:

  • Ridiculous amounts of rocket fuel (which requires petrochemicals, my supplies of which are meager just wiped out a hive to grab more crude oil, but now that oilfield is under attack).
  • Ridiculous amounts of solar panels
  • Ridiculous amounts of everything else, including stuff I hadn’t ever heard of (like “Low density matter”)
  • Ridiculous amount of rocket parts.

Why do I get the feeling I’m only halfway (if that) into the game?

Written by taogaming

January 3, 2017 at 8:53 pm

Posted in Artificial Opponents

Tagged with