This site and blog is now coming to you from an entirely different machine from before. I've moved it to a virtual server and the other machine will be retired. I was hoping to archive this whole blog and start off on some other cloud blog system, but that turns out to be not as easy as I thought. Eventually things will settle down with the new Delving venture and I'll be able to get back to programming on Tetragotchi a bit more. Sorry for all the silence.

Thanks to everybody who has been giving feedback!

Finally got some time to work on the code, and I've knocked off some of the things I had planned:

  1. Selecting destination or tetragotchi is a tricky one to change, just because it's hard to find a satisfying and intuitive way to distinguish between the two mouse gestures. I've made the selection of a goal easier by selecting a body when your within twice its radius rather than just within its radius. Let's see if that helps.
  2. Target setting is now followed immediately by a fetching of the new world snapshot in which the target has been set. This way you know exactly what is going on in the central world.
  3. The rate of time has been returned to the original. It once again does one physics sweep every second.
  4. The progeny system is now simpler. Your number depends on how many other tetragotchis there are right now who have you as their maker. It can go down when your progeny get made by somebody else.
  5. When you are assimilated and reborn, you now become an exact clone of your assimilator, including all movement skills. This way movement should generally be more refined.
  6. I checked and it appears that you can only reboot your genes when your Tetragotchi has no "maker" and is therefore not reborn but just born for the first time.
  7. Now every target arrow is visible so you can see what everybody is up to, and when somebody has selected you as target.
  8. An email is sent when your tetragotchi is born from its tensegrity egg, some time after you create it.

New feature:

  1. Bernie Fritch wanted to see the distance to target among the facts shown on the top right.

Hi folks! I've been very busy with my real job lately, but I really appreciate the feedback that has been coming in on the Community mailing list.

It's been great to read all the recent descriptions of what people are experiencing while being the heroic pioneer players of this strange Tetragotchi game! While developing it I was always trying to imagine what people would think and what they would say, but it was very difficult to picture.

Thanks as well to the people who have recently been playing with the kind of experimental changes I've been making, like speeding up the clock. As I think I mentioned, there wasn't really the time to think through all the consequences of the speedup so I just thought what-the-heck and tried it.

I'm learning a lot from what you folks are saying, and it is most certainly filling my to-do list, because (no big surprise) people are finding bugs and idiosyncrasies that deserve some attention.

Al Tabor has been giving us some ideas about some logic associated with the way the game structure could be described in objectives, but I'm not sure if I can quite make enough sense of the "use case" approach yet. It could be my lack of experience in this area.

Our most intense player is probably Rudolf Penninkhof, who has been playing so enthusiastically that he has encountered and described a good number of problems, but at the same time presenting delightfully interesting stories about his experiences with his tetragotchi. It's these stories that make me think that there is some real potential for future versions of this game. Thanks Rudolf!

It was very encouraging to hear from Bernard (and his tetragotchi "Winona"!) "I want to thank Gerald for creating a unique and very engrossing strategy game. It will be amazing when there are hundreds of gotchis running around on, perhaps, a slightly larger planet." For years I have wanted to create a truly spherical universe and part of the reason indeed is that in theory it can grow to accommodate more players. I wonder if anyone else agrees with Bernard that the offspring should also inherit movement genes, because I intentionally erase them. The more I think about it, the more I like the idea. It's at least worth an experiment.

Bernard also had suggestions about "team play" where gotchis could gang up. That would be very interesting to try if I could figure out a way to make it work, but I don't seem to be able to come up with many ideas on this front.

I'm really happy to entertain descriptions of how you think the game should work, because I'm sure there will be a number of fairly easy changes that could improve the game play significantly. I just have to be able to understand the directions people think it should go and try to figure out how to make changes that are the least effort and have the most impact. (This is all free time work, unless somebody has funding ideas, but that's another thread:)

Some improvements I think should have high priority are the following:

  1. There should be a distinction between selecting a destination and selecting a target gotchi, so that when you're in select-gotchi mode, there is always the nearby one "lit up". Right now it's too confusing because it depends on how close your goal is to the target gotchi. Would click and shift-click be a good idea for this distinction?
  2. The setting of goal is now something that you can see verified, because when you change the goal you create a new grey arrow which only turns red when the server verifies that the goal has indeed changed. There's a bug still, though, because the frozen world that you received when you started the session still has the old goal. I will have to invalidate the world when the goal comes back.
  3. I think that the new speed is not really working out very well, and although it could be that a number of other changes make it good to play this way, I'm not yet clear enough on how to do it all. I'll put the speed back to its original value which is one physics-sweep per second. Interestingly, Rudolf prefers the new speed, and Bernard prefers the old speed.
  4. The progeny system does not seem to be working properly so I will have to review it again to make sure it works as it should. Even the way I'm thinking it "should" work might be a little confusing, because when somebody else assimilates one of your progeny you lose it. It surprises people to have progeny and then later have none. Same thing happens when they die, the number goes down.
  5. I will take away the erasing of movement genes upon rebirth, which means that progeny will be born with the same ability to run as their makers. Maybe this could really improve general running proficiency and make the running ability more easy to come by.
  6. I think it's the case that you can totally reboot your genes during rebirth (being reborn with your assimilator's genes) which shouldn't be possible. I will make this impossible.
  7. It might be a good idea to reveal each and every goal arrow for all the tetragotchis (now you only see yours), because then you could better see what everybody is up to.
  8. Oh and it should not be sending you an email every time you re-boot your body during the birthing process. I have to make it send you an email only when your tetragotchi is born for real on planet Slomo.

The 14th European Skeptics Congress was my first opportunity to give a public talk about the Tetragotchi project now that it's actually working, and as you may imagine, they were skeptical. The skeptic movement is a very fascinating and necessary thing, and the main focus of the various skeptic organizations around the world is essentially bullshit detection and unmasking. The focus of my presentation was about reaching out to give players an opportunity to acquire some useful intuitions about how evolution works, and the skeptics appreciated that. However, they were not pushovers, and they had some very good feedback for me about how to approach the popularization efforts. I was happy to get their nice mix of support and criticism.

There is lots of bullshit detection necessary all over the world, but it seems that the further east you go in Europe, the more surprising it gets. We are here in Hungary, where there is a load of astrology and other even stranger woo-woo on the television and such. They say it's a pendulum swinging back from when communism was intent upon determining what people think. Any argument against this wierdness seems like an argument against freedom-of-thought. Also, a lot of religious supersition is alive and well the further east you go, so people avoid some scientific medical treatments and pursue some weird ones.

Make no mistake though, there is craziness everywhere. One of the main focuses of the Skeptics movement these days in Europe is homeopathy, which is a total scam involving absurd dilutions of particular substances coupled with the belief in things like water having a "memory" of what it contained. My mother (a devout Catholic) sprinkled her car with holy water for protection, and homeopathy is nothing more than that, but worse. The reason it's so much worse is that it pretends to be science and medicine, and persistently tries to gain legitimacy without any kind of empirical proof. By some bizarre wrinkles in the system, homeopathy has gained some legitimacy at the European level, which is really disappointing and deserves to be addressed. Projects like 10:23 are brilliant ways to send a wakeup call.

Now I have to get back to writing a lot more documentation for on the right side of the Tetragotchi screen so people can read about how it all works. Once the documentation is satisfying, and if the software continues to work well as more people slowly appear to create tetragotchis, I will push the game out a lot more intensely, to get it to more people.

There was a great turnout of people from the Greythumb NL group when I announced an evening in which they could be the first people to play Tetragotchi. Click on the picture below for the big picture (note the Rotterdam Erasmus Bridge in the background!) with all the laptops playing the game. (I've heard that the original Greythumb group had disbanded, but we persist!)

Fueled by beer and pizza, we set out to kick the tires of the game, to see what first impressions people had, and what suggestions they might be able to make. I set up my own macbook as server and invited everyone to join (Tetragotchi is by invitation only). We spent a good few hours laughing and trying out the evolution and some were even busy attacking each other.

One thing that became abundantly clear is that it becomes a lot more interesting if there is enough explanation about what the rules are and how it all works, and this insight prompted me to make an improvement to the game yesterday. People need to be able to learn about things while the program is running.

I now have it set up so that at the right hand side of the game screen there is always an HTML page with explanatory text and pictures, and I can add to and update the collection of pages that appear on the server whenever I come up with new things to write. This way I can respond to people expressing confusion by adding text that hopefully clears things up for them. It also gives people something to read while they have their Tetragotchi in evolution mode.

Other than that I was very encouraged to find that it worked on all three operating systems: OSX, Windows, and Linux. Also, nothing important went wrong! I was able to fix the minor problems that we encountered.

Thanks to the folks who came out!

So now we're getting ready to go to the 14th European Skeptics Conference in Budapest, and I will be trying to put the game online before my talk there.

I've been busy since coming back from the big canoe trip this summer and since we have been very busy starting up Delving B.V. there hasn't been much time to talk about Tetragotchi.

I have, however, been working on it quite a bit. Now I have the surface of Tetragotchi World covered in virtual water which flows around and is replenished by rain, and the 'gotchis have to drink to survive. The game seems basically complete now, at least for a first release.

I also set it up so that Tetragotchi players can invite other players so that the game spreads by invitation. So I'm almost ready to get this game out there for people to play!

I have to get ready for the talk I will be giving in Budapest shortly. I will be using this talk as the official launch of the game online.

First thing is a group of 7 or more people from the Greythumb NL group who are coming together next monday night at my office with laptops to give the Tetragotchi game a test-drive. Looking forward to that!

I'm busy setting up a new Tetragotchi podcast for the game specifically, and I may call in to the Biota Live Podcast from Budapest.

Technorati Tags:

I built a piece of art yesterday. "The Atheist".

The story is in the QR-Code:

You can either point your smart-phone at this card in real life, or even at this image in your browser, but you can also read this using an online decoder pointed to this image.

Recording in the bush this time with my new recorder, so you can hear the birds in stereo, this is a podcast about getting the deployment details worked out.

It was quite a bit of struggle to get it working correctly, but once the deployment does work with Java Web Start, it is pretty smooth. But the most refreshing thing about recent developments has been a big simplification on the server side. I actually said goodbye to Hibernate and Postgres, and with it all the configuration that those require. Many dependencies melted like snow.

I like the idea of making deployment of the game really easy, so maybe it will spread to hundreds of servers eventually, and they could be federated. Now, without the database, there's really only one thing you have to set up and that is an environment variable TETRAGOTCHI_HOME to point to a directory.

The players and their hashed passwords are stored in an XML file there, and a tree of subdirectories grows as the game progresses, where the world is persisted every minute. This will enable a time machine, since we will be able to return to a place and time to relive it. I suspect that it may take a while for people to fully appreciate what that means.

Technorati Tags:

Another podcast episode, and this time about yet another switching of gears. I now have an even simpler approach to conflict resolution, or deciding who wins during an attack.

While trying to get chase-and-nibble working as I described in the last podcast I decided to see what it would look like if you saw the history of the tetragotchi movement in the form of a breadcrumb trail. The body's center of mass is recorded every hour so that as the body moves, it leaves behind a tail. It turns out this tail is a great way to measure fitness! You are as fit as how fast you have been able to run during the past 24 hours.

So now, when your radius touches that of your prey, the question becomes how long are your two tails, and the longest tail gets to consume the other. Here's a short video of the initial "death sequence", which has since become even a little better.

Since the above video I have added something else interesting to the death sequence, a solution to the question of where to have the prey re-born. I decided to have the prey travel down the tail of the predator to the end, and be reborn there. It's nice and out of the way of the predator. It's fun because as prey, you ride the tail like it's a monorail, until you're where your predator was 24 hours ago and then you are re-born in a new tensegrity egg.

Of course, after rebirth, you realize that you have inherited the body of your predator.

Technorati Tags:

This podcast episode is the first to use the new name, and it mainly describes a departure from the "pounce" approach to resolving predator-prey conflicts. Pounce turns out to be much more difficult to realize than expected, due to how accurate the launch timing has to be, but fortunately I literally stumbled upon a more interesting way of interacting where the predator catches up to its prey and sticks to it, nibbling at its energy supply. There's a social advantage to this because it means that two players will spend time in a sustained conflict rather than one that is instantly resolved upon impact.

The latest movie is here below, and it can also be found on the new website at http://www.tetragotchi.com. No audio yet, but I'll add an audio track to the next movie. This is going to be a good way to introduce the game!

More news in this podcast: Heads-Up text right on the graphic screen, hub-and-spokes network model, and the nice rendering of the directionality of the tetragotchi body which actually always shows which movement gene is currently activated.

Technorati Tags:

Here's a new movie of a tensegrity sphere, generated this afternoon using the new trick of writing image files from the OpenGL canvas.

The tensegrity itself is built by an algorithm that starts with a virtual scaffolding in the form of a geodesic sphere of a given frequency (Bucky Fuller term). Every edge of the scaffolding then gets a bar attached to it, and then all the bars are rotated on an axis through their middle and through the sphere center, just a few degrees.

Then the algorithm visits each of ends of these bars and strings cables between them in rings around the scaffold's vertexes, and also between rings to complete the structure. The geodesic sphere scaffold is then eliminated, leaving only the bars and cables, and then the physics makes it settle to a nearby radius.

Then I turn on gravity and let it fall to the ground. Each bar and each cable is only responsible for itself, and the remarkable liquid-like behavior is an emergent phenomenon of all these pieces together.

Technorati Tags:

This weekend I discovered that there is an easy way to output images directly from OpenGL using a utility function. Then using ImageMagick to convert to JPG files, followed by Mpeg Stream Clip to make a movie of it.

In about a half-hour I was able to create and upload the following experiment:

Technorati Tags:

When I first put up the previous blog post the link to the search for the term "tetragotchi" revealed zero documents. Now there are some, but they're still exclusively things that I myself have written either on this blog or on Twitter.

I'm in no hurry whatsoever to see the name spread around the internet, because the game is not yet ready to be played. I will, however, be able to see the word spread when that eventually happens.

Technorati Tags:

For a long time now I've been trying to think of a name for the critters that evolve in the Darwin at Home game. There's just one for each player, and it continues to live (however slow-motion) even when you're not playing. Several people have independently mentioned during demos/presentations that it reminded them of Tamagotchi and I've always liked that association.

You have to act quickly when Google says "Your search - tetragotchi - did not match any documents." I suspect that this page will make it give an other answer very soon, but I've already got tetragotchi.com and tetragotchi.org.

This podcast episode starts with an audio segment from my visit to Ken Snelson in New York in which we talk a little bit about the definitions of tensegrity, and how it has gotten muddled up over the years. The audio is from approximately when the photo below was taken, because he put this bag of bars on the table as illustration.

The rest of the podcast is all about the new gaming elements that I've come up with, some of them during a brainstorm with my 16-year-old son, who is much more of a gamer than myself.

Pounce: Not only will there be locomotion genes for the different directions as described in the previous podcast, but now there will also be a pounce gene. The idea is that a competition between predator and prey will be resolved by judging which of the two has the greatest altitude at the moment that their radii touch. It's kind of like in platform games like Super Mario where you pounce on things to consume them.

Time: I've finally worked out some of the numbers to be better able to talk about the two temporalities, slow motion on the server, fast evolution on the client. I've taken the server time to be leading, and chosen for having the server do one time sweep every 3 seconds, nice and slow. This works out to 1200 time sweeps every hour, so on the client where you can do a thousand or more time sweeps per second, your client-side evolution is experimenting with the coming 2 to 24 hours. A whole day is 28,800 time sweeps, which is enough to cover some terrain and do a good pounce, and on the client you can see this happen in less than a minute.

Thinking in these temporal terms, you realize that a properly executed pounce will take two or three hours to complete. I think it's potentially exciting to know that all this is taking place when players are offline, however slow motion.

Genealogy: When a predator critter pounces on a prey critter, the prey is consumed by the player behind that critter comes back to life again afterward as a mutated descendant of the predator. The consequences are interesting.

Capable bodies will reproduce their shapes in the population, so even if new players start with random genes (garbage in garbage out) and therefore with hopelessly misformed bodies, they can just be consumed by a good body and return as a descendant.. also probably a good body. Only the growth genes are inherited, so the new player will have to re-train the movement and pounce genes.

But what if you attack and defeat another critter who has already defeated a number of others and therefore already has a bunch of descendants? Well, the defeated critter becomes your descendant as usual, but their former descendants become your minions! There's motivation to attack and win.

It also implies that it will be fairly easy in the beginning for players to saunter around and "eat n00bs". Ha ha. Transforming them into viable bodies for their second life. Eating n00bs is easy, but eating a successful ancestor-of-many will be difficult and rewarding because you inherit everything they had while turning them into your descendant.

Above every body on the planet will be written their minion and descendant counts, so you can see what you're up against.

Technorati Tags: