42.
And yes, it's cross-posted for a reason.
I've been doing a lot of voter registration lately... which is boring, and
low paying, which causes me to goof off once I'm done working. So, quite a
lot of Galactic Civilizations and not a lot of OCaml progress. It is not a
loss though. I've been keeping a notebook of all the ways GalCiv is boring,
and how I'm going to fix them. This has led me to a profound insight on the
nature of intelligence and searching, not to mention game design.
GalCiv suffers from the "unit pushing problem." As a human being, I spend
the vast majority of my time futzing with whether this unit is 7 squares
away from that enemy unit. In a world of better game AI, it wouldn't be so
hard to compute regions of safety from enemy units. However, then I'd still
have to make a lot of decisions about where to put my units. I envision an
architecture with lotsa set operations on regions. While planning the
architecture, I notice its O(bad) algorithmic behavior, where 'bad' might be
n^4, some higher polynomial, or maybe exponential. All depends on how much
thinking I want to do, and how much I'm willing to limit the scope of my
problems. Maybe I can have my clean architecture if I settle for a board of
only 16x16 squares. Maybe that is what a current PC can handle.
The operations required are all rather rote, basic computations. Just
computing distances from one thing to another. This makes me consider how
much the human brain is simply a more powerful computer, with better analog
sensing equipment, and thus able to leverage physics (light, heat, contact
forces) as part of the computing process. We do lotsa things that aren't
very complicated, it's just gazillions of operations in parallel. Our
brains point out how puny our computers really are, great as they may seem
for problems we're not so good at.
Some day we'll have enough silicon gates to equal a human brain. If Moore's
Law holds we'll have 'em soon. Even if Moore's Law fails at some point in
the future, there is too much industrial interest in the capability. It'll
happen, even if we have to go back to building-sized computers to get things
done. Of course, each and every one of us has working proof of concept that
these computers need not be building-sized. If silicon computing doesn't do
it, biological computing will.
Given the gates, will we have 'intelligence' ? What is 'intelligence' ?
I say, we will. Because 'intelligence' is merely a search for satisfaction.
We have been trying to get satisfaction for millions of years. That's why
we're at where we're at on the food chain. Searching for satisfaction is an
evolutionary advantage; we have been "selected for" our willingness to
search.
Searches take the form of trial and error until better methods are refined.
The first searches weren't rocket science: pick up a stick and bash another
monkey in the head with it. Good way to secure your food, water, and mates.
But refined for generations upon generations, with brains proving more adept
at storage and symbolic manipulations, and you arrive at the ICBM. Of
course there are many other evolutionary stimulants besides warfare. My
point is just that the seemingly complicated modern forms of 'intelligence'
have their bootstrapping root in fairly simple animal behaviors. That's the
magic of evolution: it gets more complicated as life goes on.
We are also not so complicated if you thought about humanity from the
perspective of a 'God'. By 'God' I just mean something much higher up the
evolutionary ladder than we currently are. Notice all the tedious,
repetitive tasks in your life? Notice how humanity's problems are so basic?
Like "Gee we don't feed everybody" even though we grow enough food to do so.
Notice how few people aspire to much of anything? Notice that even the ones
that do, will mostly be erased by history in 100 years or so? Maybe 1000
years if they're particularly profound. Education being the province of the
wealthy, there was less philosophical competition in Aristotle's time.
Do you see the cockroach in your own life? Where is your 'intelligence' ?
You are simply searching for satisfaction, at the evolutionary level you are
capable of doing so.
If intelligence is about searching for satisfaction, and everyone wants to
be satisfied, why aren't more people smarter? Well, the species doesn't
really need everyone to be smart to propagate. In fact, it's probably
advantageous to the species, or at least to its smarter members, to have a
lot of dumber drones doing their bidding. There's probably an optimum smart
/ dumb ratio under any given economic regime. The current regime is global
capitalism; has the ratio changed that much from provincial monarchs
ordering uneducated peasants around? Probably not by so much, considering
how much of the world is still in poverty while producing goods and services
for industrialized nations. Not trying to grind a political axe here, just
trying to point out what 'intelligence' in our species really is.
At any rate, the 'smartest' among us are just algorithmically compulsive.
We search because we have a biological drive to search. Many searches are
tried. Some 'succeed', meaning they displace paradigms.
Even global capitalism might be displaced someday. What would we do with a
technology that allowed us to easily grow food anywhere? Or get energy
cheaply anywhere? Or manufacture lotsa things cheaply anywhere? Of course,
we could also use these things to edit ourselves out of existence.
Natural Selection at least has the benefit of promoting stable designs
rather than wild experiments!
How does this relate to OCaml?
Well, I've said before, I'm not sure that 'programming languages' are really
the answer as far as productivity goes. I've wondered if OCaml is not the
answer, but the thing that will lead me to the answer.
Maybe what we really need are architectures that can handle massive search
spaces. Profoundly stated, all programming language research as we know it
today may be an evolutionary dead end. Why should we tie algorithmic search
to the quaintness of what human beings can type at a keyboard and see on a
2D screen? Why do things with our parochial human notions of 'syntax' or
other linguistic constructs? Just so that human beings can understand and
verify what's going on? Isn't that always going to be a 'cottage industry'
approach to computation?
Ok, so, let's say you're more interested in the here and now than 20 years
hence. I will be thinking about what OCaml does or doesn't do to handle
search problems. Turn Based Strategy games are the particular search
problems I'm working on right now. They're difficult; it'll be interesting
to see how much of the architecture is better done in a higher level
language, and how much as inflexible but massively high performance low
level computation.
Cheers,
www.indiegamedesign.com
Brandon Van Every Seattle, WA
"The pioneer is the one with the arrows in his back."
- anonymous entrepreneur