TC$mC$ GDD-tiivistelmC$ on **poikkeuksellisen mekaanisesti eheC$ ja
konseptualisesti vahva**. SiinC$ yhdistyvC$t esoteeristen ohjelmointipelien
kilpailullisuus ja keinoelC$mC$n emergentti luonne erittC$in tyylikkC$C$llC$
tavalla.
Muutamia erityisen oivaltavia ratkaisuja:
* **Terminen hermosto:** Fysiikkaan perustuva signaalinvC$litys (jossa
sensorin kitkalC$mpC6 toimii signaalina moottorille) ratkaisee tC$ydellisesti
10 merkin koodirajoituksen aiheuttaman tilaongelman.
* **Tavukohtainen rakenne (7+1 bittiC$):** Solutilan ja kuolleen materian
integrointi 8-bittiseen tavuun pitC$C$ muistinkC$ytC6n minimaalisena ja
mahdollistaa erittC$in korkeat TPS-lukemat (*Ticks Per Second*).
* **Modulaarinen Open Engine -malli:** Teknisen toteutuksen erottaminen
simulaatiosC$C$nnC6istC$ antaa tiimille vapaat kC$det optimoida moottoria
(esim. Rust/WASM-toteutukset) ilman, ettC$ pelilogiikka rikkoutuu.
---
## Why This Architecture Works Perfectly Ratkaisuehdotukset avoimiin
kysymyksiin (Sektio 8) Ratkaisuehdotukset avoimiin kysymyksiin (Sektio 8)
### 1. LisC$C$ntymismekaniikka (ItiC6t ja materiaali)
Jotta lisC$C$ntyminen ei vaatisi monimutkaista kopiokoodia (joka ei mahtuisi
10 merkkiin), sen kannattaa perustua **paikalliseen tila-aineenvaihduntaan**:
* **Kopioijasymboli (`C` - Copier / Duplicator):** Kun `C`-solun lC$mpC6
ylittC$C$ kynnyksen (esim. LC$mpC6 > 80), se yrittC$C$ lukea takana olevan
solun ASCII-koodin ja kirjoittaa sen edessC$ olevaan kuolleeseen
(passiiviseen) soluun, minkC$ jC$lkeen se pyyhkC$isee 8. bitin tilaan `1`
(elossa).
* **Aineenvaihduntakustannus:** Kopiointi kuluttaa solun lC$mpC6energiaa ja
vaatii vierelle "rakennusaineeksi" kuolleen solurungon. Jos tyhjC$C$ tilaa tai
ruumiita ei ole lC$hellC$, synnytys epC$onnistuu ja solu ylikuumentuu.
---
### 2. Standardi API-kontrakti (TypeScript-referenssi)
TC$ssC$ on ehdotus moottorien vC$liseksi vakioksi `SimulationEngine`-integraati
oksi:
```typescript
export interface Cell {
code: string; // Max 10 chars ASCII (7-bit material/rule code)
alive: boolean; // 8th bit: true = 1, false = 0
heat: number; // Thermal value (0 - 255)
}
export interface SimulationConfig {
width: number;
height: number;
starPosition: { x: number; y: number; z: number };
radiationThreshold: number;
thermalDiffThreshold: number;
}
export interface SimulationEngine {
init(config: SimulationConfig, initialState: Cell[][]): void;
tick(): void;
getState(): Cell[][];
getMetrics(): { tps: number; livingCells: number; totalHeat: number };
}
```
---
### 3. TurnaussC$C$nnC6t ja Petrimalja-areena
Standardi ottelurakenne kahden tai useamman organismin kohtaamisessa:
| Parametri | MC$C$ritys |
| --- | --- |
| **KenttC$** | 128 128 ruudukko suljetuilla seinillC$ tai toroidisella
reuna-aukolla. |
| **Payload-rajoitus** | Maksimissaan 256 tavua per organismi
aloituskokoonpanossa (YAML). |
| **Kesto** | 10 000 tickiC$ tai kunnes kentC$llC$ on vain yhtC$
organismiperimC$C$. |
| **Pisteytys** | $S = (\text{ElC$vC$t solut} \times 0.6) + (\text{Varastoitu
lC$mpC6} \times 0.2) + (\text{TPS-hyC6typuoli} \times 0.2)$ |
| **Genesis-erikoissC$C$ntC6** | Jos sC$teilyylivuoto luo mutaatioita,
mutatoituneet solut lasketaan puolueettomaksi villiluonnoksi. |