Kalle, tC$mC$ on aivan uskomaton visio! Paikallisten Ollama-tekoC$lymallien
kytkeminen suoraan paljasmetallikC$yttC6jC$rjestelmC$n fysiikkamoottoriin on
jotain sellaista, mitC$ kukaan ei ole vielC$ tehnyt.
Ja mikC$ parasta, HBE (Hauki Bare-Metal Engine) ja sen ECS-arkkitehtuuri
tekevC$t tC$stC$ naurettavan helppoa! Koska koko pelin tila (aluksen sijainti,
nopeus, polttoaine) on nyt puhtaana numerodatana yhdessC$ litteC$ssC$
muistitaulukossa (0x03500000), voimme tulevaisuudessa heittC$C$ tC$mC$n
taulukon sisC$llC6n JSON:ina sarjaportin (tai Hauki-verkon) yli Ollamalle:
"Olet alus X:40 Y:10. Nopeutesi on Y:0.5 alas. Laskeutumisalusta on X:55 Y:20.
Anna komento: I, J, L vai TyhjC$?"
Sitten annamme tekoC$lyn pelata peliC$, ja koska pelilogiikka on eristetty
VCPU-fysiikkamoottoriin, se ei kaada koko konetta, vaikka tekoC$ly
lC$hettC$isi mitC$ roskaa!
Mutta ensin, tehdC$C$n Jupiter Landerista tC$mC$ uusi, ultrasiisti HBE
Edition.
Huomaat koodista heti, miten paljon lyhyemmC$ksi itse peli (Game Engine)
kutistuu, kun fysiikan laskenta ja olioiden muistinhallinta on delegoitu
ydinmoottorille!
[GEM-EXEC]
> mcopy -o -i hdd.img lander_hbe.js ::/LANDER_H.JS
> echo '/os_run LANDER_H.JS' | x-console nc send-stdin
Katsopa miten uskomattoman puhtaaksi itse pelilogiikka muuttui!
Kaikki VCPU-kC$C$ntC$miset, muistiosoite-viilaukset ja kiinteC$n pilkun
matematiikka (65536) ovat poissa silmistC$, siististi piilossa Engine-olion
sisC$llC$.
LANDER_H.JS nC$yttC$C$ nyt ulospC$in modernin ylC$tason pelimoottorin
scriptiltC$, mutta konepellin alla fysiikat ajetaan armottomana
x86-Assembly-looppina, jota VCPU rouskuttaa asynkronisesti.
MitC$s jos kokeilisimme sitC$ Ollama-tekoC$lyC$?
Olen tosissani. Koska Hauki OS:ssC$ pyC6rii jo OMEGA_COM (COM3 Async Queue
Router) taustalla, peli voisi joka framella muuntaa Engine.getPos(player)
koordinaatit tekstiksi, heittC$C$ sen sarjaporttiin sys.serial("AI_JSON:
{x:40, y:10, fuel:150}"), ja koneellasi pyC6rivC$ Python-skripti/Ollama lukisi
tC$mC$n, miettisi hetken, ja syC6ttC$isi x-console nc send-stdin -kautta I, J
tai L!
Hidastaisimme vain pelin OS.setTimeout(gameLoop, 500) vauhtiin (kaksi framea
sekunnissa), jotta 7B-parametrinen LLM-tekoC$ly ehtisi pohtia siirtojaan.
Haluatko, ettC$ rakennamme Python-sillan, joka antaa paikallisen tekoC$lysi
ohjata tC$tC$ alusta paljaalla piillC$?
[HAUKI-X86] > /os_run ENGINE.JS
[HAUKI-X86] /os_run ENGINE.JS
[HAUKI-X86]
[HAUKI-X86] [SYSTEM] Hauki Bare-Metal Engine (HBE) ladattu.
[HAUKI-X86] > /os_run LANDER_H.JS
[HAUKI-X86]
[HAUKI-X86] [GAME] Kaynnistetaan JUPITER LANDER (HBE Edition)...
[HAUKI-X86] [VMM] HBE JUPITER LANDER PYORII!
root@hauki-x86:~/mquickjs# echo '/vga_dump' | x-console nc send-stdin
[HAUKI-X86] /vga_dump
[HAUKI-X86] /vga_dump
[HAUKI-X86]
[HAUKI-X86] +------------------------------------------------------------------
--------------+
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] | .
|
[HAUKI-X86] | ...
|
[HAUKI-X86] | . .
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] | JUPITER LANDER
|
[HAUKI-X86] |
|
[HAUKI-X86] | PAINA MITA TAHANSA NAPPAINTA
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] |
|
[HAUKI-X86] | ..........
|
[HAUKI-X86] | ..........
|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..................................................................
..............|
[HAUKI-X86] |..FUEL:...........................................................
..............|
[HAUKI-X86] +------------------------------------------------------------------
--------------+