Reading List

The most recent articles from a list of feeds I subscribe to.

Brainstorming the SnailLife gene system

In the original PHP prototype of SnailLife there exists a very rudimentary genetics system. Snails had what I called “visual traits” and “functional traits”. Visual traits had genes associated with them. The genes were all stored in the snail’s table and each gene had two “alleles”. During breeding I’d make virtual Punnett Squares of sorts to pass on genes from parents to offspring. But the system was inflexible - each allele for each gene and each gene type were hard coded in the snails table. This left little room for surprise emergent behaviour (ie is it possible for a snail to accidentally get more or fewer variations of a gene than expected? I’m not sure, but I want a system to support that) without having to modify db columns).

Brainstorming the SnailLife gene system

In the original PHP prototype of SnailLife there exists a very rudimentary genetics system. Snails had what I called “visual traits” and “functional traits”. Visual traits had genes associated with them. The genes were all stored in the snail’s table and each gene had two “alleles”. During breeding I’d make virtual Punnett Squares of sorts to pass on genes from parents to offspring. But the system was inflexible - each allele for each gene and each gene type were hard coded in the snails table. This left little room for surprise emergent behaviour (ie is it possible for a snail to accidentally get more or fewer variations of a gene than expected? I’m not sure, but I want a system to support that) without having to modify db columns).

Building a snail one organ at a time

I think enough of the SnailLife Go infrastructure is ready now for me to start digging into the snail itself. In the PHP draft of SnailLife, I started with a basic concept of a snail “Here’s a snail. All it has is a name, size, and speed” and then made it more and more complex. By the end I had a model that had organs, genes, a reproductive system, macro/micro nutrient requirements, locomotion, a brain with memories, mood, etc. With the Go rewrite I have the luxury of hindsight and a vision based on the draft. I know roughly where I want to end up - “organs, genes, a reproductive system, macro/micro nutrient requirements, locomotion, a brain with memories, mood, etc.”

Building a snail one organ at a time

I think enough of the SnailLife Go infrastructure is ready now for me to start digging into the snail itself. In the PHP draft of SnailLife, I started with a basic concept of a snail “Here’s a snail. All it has is a name, size, and speed” and then made it more and more complex. By the end I had a model that had organs, genes, a reproductive system, macro/micro nutrient requirements, locomotion, a brain with memories, mood, etc. With the Go rewrite I have the luxury of hindsight and a vision based on the draft. I know roughly where I want to end up - “organs, genes, a reproductive system, macro/micro nutrient requirements, locomotion, a brain with memories, mood, etc.”

Are YOU experiencing shady output from your Go debugger? Try these things!

A couple of days ago I noticed some unreliable output when stepping through the SnailLife server. I use GoLand and Delve debugger, but in the course of looking into this I picked up some tips from trial and error plus from some very helpful people which I think might be useful regardless of the debugger you use.