Introduccion
Desde el momento en que no hab铆a nada mejor que el ZX-Spectrum, recuerdo un juguete en el que era necesario establecer un programa para el robot para que pudiera derrotar al enemigo en la nataci贸n aut贸noma. Y en mi tiempo libre del trabajo y el descanso, comenc茅 a trabajar en un programa que, con la ayuda de la configuraci贸n le铆da de un archivo de texto en formato XML, le permite:
- crear un mundo plano, limitado en tama帽o por recursos inform谩ticos. En lugar de una pared de hielo a lo largo del borde, aparece desde el borde opuesto, para los objetos dentro del mundo parece continuo.
- agregar un n煤mero ilimitado de fuentes estacionarias de energ铆a geot茅rmica
- Observe la luz del sol en forma de una mancha que imita el movimiento de la luminaria con los cambios del d铆a y el a帽o.
- describir minerales con diversos grados de "volatilidad", es decir, susceptibilidad a movimientos arbitrarios en la superficie debido a la difusi贸n
- Describir las reacciones qu铆micas entre sustancias que los organismos vivos pueden llevar a cabo bajo la influencia de la energ铆a.
- y, por supuesto, observar los organismos "vivos".
La principal diferencia con los juegos existentes: en el modelo no hay un final predefinido por el gui贸n.
Mundo modelo
El mundo se muestra en la imagen: un punto grande es la luz solar (que se mueve con el tiempo), dos puntos m谩s peque帽os son fuentes de otro tipo de energ铆a llamada geot茅rmica. La superficie iluminada es predominantemente azul porque contiene agua en cada punto. Los puntos de un color diferente surgen y desaparecen si, debido a la difusi贸n, la concentraci贸n relativa del elemento correspondiente se ha vuelto temporalmente superior al promedio.

Para ahorrar consumo de memoria, las cantidades de materia en cada punto se almacenan en el tipo flotante, lo que da 7 bits significativos. Para el modelo, se establecieron 100 mil unidades en cada punto de agua, 20 mil de di贸xido de carbono, 10 unidades de hidr贸geno (es decir, diez mil veces menos que el agua) y cero ox铆geno y metano. Un ejemplo de c贸mo se ve la descripci贸n de las sustancias introducidas en el modelo:
<Element name="CarbonDioxide" color="yellow" volatility="0.12" visibility="true"> <rect left="0" top="0" right="max" bottom="max" amount="20000"/> </Element> <Element name="Oxygen" color="green" volatility="0.12" visibility="false"> <rect left="0" top="0" right="max" bottom="max" amount="0"/> </Element> ...
A continuaci贸n, se describi贸 la reacci贸n de la formaci贸n de metano y agua a partir de di贸xido de carbono e hidr贸geno en presencia de energ铆a geot茅rmica.
<Reaction name="CO2+4H2=CH4+2H2O" geothermalEnergy="0.00001" solarEnergy="0"> <LeftReagent name="CarbonDioxide" amount="1"/> <LeftReagent name="Hydrogen" amount="4"/> <RightReagent name="Methane" amount="1"/> <RightReagent name="Water" amount="2"/> </Reaction>
El primer protoorganismo LUCA con esta reacci贸n se plant贸 dentro de uno de los resortes geot茅rmicos.
<section name="Organisms"> <item name="LUCA" author="DEMI" x="300" y="30" reaction="CO2+4H2=CH4+2H2O"/> </section>
Adem谩s, se incluy贸 un filtro en el programa para mostrar puntos que conten铆an metano y una mancha de metano comenz贸 a extenderse por todo el cuerpo. La primera c茅lula puede recibir sustancias solo desde el punto en el que se encuentra, y la transferencia de sustancias se lleva a cabo debido a la difusi贸n. Si reduce la cantidad de sustancias disponibles, entonces la velocidad de propagaci贸n de los productos de reacci贸n se ralentiza bruscamente.

El programa implementa el modo de aproximaci贸n, cuando el punto aumenta a un cuadrado, que muestra una lista de sustancias y organismos vivos contenidos en 茅l. Si se activa el filtro para varios elementos, entonces el color del elemento con la concentraci贸n relativa m谩s alta en este punto se usa para colorear el punto, de lo contrario solo el agua que ser铆a m谩s visible siempre ser铆a visible.

Selecci贸n
Los materiales de partida son abundantes, pero tarde o temprano todos se agotar谩n. Si una c茅lula "digiere la comida" con 茅xito, entonces acumula "grasa" (energ铆a interna) y puede multiplicarse por divisi贸n y mutar durante la divisi贸n. O morir de agotamiento. Su comportamiento tambi茅n se hereda y est谩 sujeto a mutaciones, durante las cuales cambia una parte insignificante de los par谩metros del aut贸mata celular. A continuaci贸n, se introducir谩n mutaciones controladas en el modelo, cuando el usuario solo indicar谩 qu茅 tipo de mutaci贸n le gustar铆a recibir. La mutaci贸n esperada ocurrir谩 con cierta probabilidad y la nueva especie debe poder sobrevivir para poder mutar m谩s.
Entonces, tenemos una especie de protoorganismo-metanogeno, que necesita energ铆a geot茅rmica. Se instala en la zona de la energ铆a geot茅rmica, y las especies individuales que la difusi贸n le quita - perecen. Los organismos muertos contin煤an tomando su lugar por un tiempo, y luego, si nadie los ha comido, desaparecen. El consumo de minerales para el crecimiento de los organismos no se realiza, respectivamente, cuando se descomponen, simplemente desaparecen. Despu茅s de comenzar la simulaci贸n, los organismos se multiplican r谩pidamente, ocupando toda el 谩rea alrededor de la fuente geot茅rmica. Despu茅s de un tiempo, las c茅lulas muertas aparecen m谩s all谩 de la acci贸n de la energ铆a geot茅rmica. Es interesante que a veces se puede notar que los organismos en el centro mismo mueren: aquellos que no ten铆an suficientes minerales se comieron todo en los accesos. La figura muestra organismos vivos en blanco y marr贸n muerto, el azul muestra agua, el c铆rculo rosa muestra el 谩rea donde se siente la energ铆a geot茅rmica (su intensidad disminuye con la distancia desde el centro).

Se describen varias fuentes de energ铆a geot茅rmica en el mundo, el primer protoorganismo se plant贸 en una de ellas. Cuando la simulaci贸n dur贸 lo suficiente (varias horas), me sorprendi贸 descubrir que la fuente vecina tambi茅n estaba poblada: alg煤n cuerpo tuvo la suerte de llegar con vida.
No importa cu谩n grande sea el mundo, si solo se produce una reacci贸n en 茅l, todo el di贸xido de carbono (o hidr贸geno) se utilizar谩 tarde o temprano, despu茅s de lo cual todos los organismos morir谩n de hambre, dejando atr谩s vastas reservas de metano.
La imagen incluye una visualizaci贸n de un organismo vivo y metano (una mancha violeta que ha crecido alrededor de una fuente geot茅rmica) con una luz de fondo del sol (los primeros rayos comienzan a golpear la mancha de metano temprano en la ma帽ana, el sol est谩 a la derecha y el negro se muestra porque solo se muestran metano y vida organismos) y despu茅s de encender la iluminaci贸n completa.

Dada una distribuci贸n muy pobre de los recursos minerales, la poblaci贸n est谩 al borde de la supervivencia: no m谩s de unas pocas docenas de individuos. La figura muestra una opci贸n cuando inicialmente solo hab铆a dos reacciones en cada punto de hidr贸geno.

El archivo Snapshoot2017.rar contiene un archivo ejecutable compilado para Windows y archivos de soporte para 茅l. No se requiere instalaci贸n, no deja rastros de su trabajo; para comenzar, simplemente descompr铆malo y luego b贸rrelo. Para cambiar la configuraci贸n predeterminada: el archivo ThemeAero / template.demi se puede abrir en un editor de texto simple. Los controles se describen en la secci贸n correspondiente de la wiki del proyecto.
Planes adicionales
La selecci贸n de organismos en funci贸n de su suerte y actos de variabilidad. Ahora necesitamos pasar a la evoluci贸n, mientras que manual. Agregue una mutaci贸n al archivo de configuraci贸n: un organismo con una reacci贸n inversa que no requiere energ铆a externa, pero es mucho menos eficaz. Ahora, cuando se divide un protoorganismo, ocasionalmente surgir谩 una especie hija, que ya no est谩 vinculada a una fuente de energ铆a geot茅rmica, pero que necesita un producto de actividad vital de primer tipo. El resultado deber铆a ser un equilibrio entre las dos especies.
A continuaci贸n, tenemos energ铆a solar sin explotar. Solo se puede ubicar un organismo en un punto del espacio, lo que los hace competir no solo por la energ铆a y la materia, sino tambi茅n por el espacio.
Conclusi贸n
Por el momento, la principal dificultad es elegir una proporci贸n de los objetos existentes del modelo para que permanezca estable e interesante. Esta es la proporci贸n de los vol煤menes de sustancias minerales, energ铆as, velocidades, reacciones metab贸licas, y luego las tareas del campo de la "naturaleza viva": c贸mo garantizar la codificaci贸n de los aut贸matas celulares. M谩s precisamente, solo necesitamos datos sobre el mundo circundante en una forma adaptada. El "ADN" debe ser compacto, capaz de mutaciones at贸micas no destructivas, describir tanto la estructura del cuerpo (un conjunto de c茅lulas: sistema nervioso, receptor, m煤sculo, armadura, etc.) como el algoritmo de su acci贸n.
En un futuro lejano, el modelo puede distribuirse: cada usuario tiene su propio jard铆n, donde cr铆a sus propios organismos, se dispersa en el distrito y en el que ingresa el ganado de sus vecinos. La inclinaci贸n puede medirse como la prevalencia de una especie.
Para m铆, este proyecto es entretenimiento y no planeo obtener ning煤n beneficio. Y el prop贸sito del art铆culo es buscar personas interesadas en esta 谩rea, que puedan compartir sus mejores pr谩cticas e ideas.
En el programa, el modelo se calcula t茅cnicamente en una secuencia separada, su velocidad se puede estimar por la rapidez con que transcurre el tiempo del modelo y, en consecuencia, no depende de qu茅 escala y con qu茅 detalles se dibuja la imagen en la pantalla. Tambi茅n hay una secuencia separada que muestra una imagen del mundo del modelo. Su velocidad es mayor, se muestran menos puntos del modelo; por ejemplo, cuando se coloca un peque帽o n煤mero de puntos en la pantalla con un aumento alto, fps es mayor que cuando todo el mundo est谩 en el monitor ancho a la m谩xima distancia en la pantalla. La velocidad de visualizaci贸n, que est谩 limitada a 60 fps, se muestra en la esquina superior izquierda, no tiene sentido m谩s r谩pido.
PD: El modelo es de c贸digo abierto bajo la GNU GPL Versi贸n 3, 29 de junio de 2007 y est谩 disponible para descargar a cualquiera que quiera experimentar o crear tenedores. Ensamblado con la biblioteca multiplataforma ClanLib en MS VS2015. El archivo binario para el sistema operativo Windows est谩 en el archivo; no se instala en absoluto, sino que simplemente comienza despu茅s de desempaquetar. Supongo que compilar para otras plataformas no causar谩 problemas. Template.xml se puede editar en un editor de texto adecuado, hay documentaci贸n en el github en la secci贸n wiki.