Szellem a gépben: Háttérszimuláció 1.rész

Szellem a gépben: Háttérszimuláció 1.rész

Az Elite:Dangerous világát mozgató algoritmusrendszert háttérszimulációnak nevezzük. A működése viszont elég kifinomult ahhoz, hogy eredményesen tudjunk hatni a szimuláció alakulására, ezért nem árt annak alapvető ismerete.


A HÁTTÉRSZIMULÁCIÓ CÉLJAI ÉS ELVEI

  • POLITIKA

    • Egy dinamikus, folyamatosan bővülő galaxis
    • Érdekes események generálása melyek felhasználhatóak küldetések készítésére
    • Reagálás a játékosok aktivitására
    • A játékosok aktivitásának nagyobb hatással kell lennie a politikára
    • Reagálás a mesterségesen beillesztett eseményekre
    • Reagálás a generált eseményekre (lánc hatás)
  • GAZDASÁG

    • Egy dinamikusan változó gazdaság létrehozása és irányítása
    • Piac feltöltése (mennyiséggel és árral)
    • Valamilyen szintű kiszámíthatóság (hogy elősegítsék a játékosok általi megérthetőséget)
    • Érdekes események generálása
    • Ezen események felhasználhatósága küldetésekben
    • Reagálás a játékosok aktivitására
    • A játékosok aktivitásának nagyobb hatással kell lennie a piacra
    • Reagálás a mesterségesen beillesztett eseményekre
    • Reagálás a generált eseményekre (lánc hatás)

A politikai és gazdasági szimuláció követelményei hasonlóak, a lehetőségekhez mérten elég hasonlóak ahhoz, hogy egy adott rendszer mindkettőt irányítása alatt tarthassa. A szimuláció továbbá NPC forgalom generálási adatokat is nyújt melyeket a helyi állapotok módosíthatnak.

Technikai szemszögből a következő célok is szükségesek:

  • – Alacsony erőforrásigényű feldolgozás
  • – Alacsony erőforrásigényű adattárolás
  • – Alacsony adat hozzáférési szükségletek

MI AZ AMI NEM HÁTTÉRSZIMULÁCIÓ

  • – Nem nyújt frakció parancsokat, ezek a tervezőktől jönnek beillesztett eseményekkel.
  • – Mindenesetre az adott rendszernek nyújtania kell aggregált adatokat, hogy segítse ezen események lebonyolítását.
  • – Nem nyújt jól kidolgozott szimulációt az ember által irányított területekre a galaxisban.
  • – Megjegyzendő, hogy a keretrendszer olyan adatokat nyújt, melyek szükségesek egy élő galaxishoz (és követelmény a célokban)

MI DEFINIÁL EGY SZIMULÁCIÓS ENTITÁST

  • A szimulációs entitás a legkisebb egység melyre a szimuláció ráilleszthető, ez tipikusan egy rendszer vagy egy világ a rendszeren belül. Megjegyzendő, hogy egy entitás több piacot is támogathat, elláthat.
  • Egy rendszer több entitást is tartalmazhat. Új entitások adhatóak hozzá és pusztíthatóak el bármikor eseményeken keresztül.
  • A teljes szimulációt mérni szükséges így bármikor követhetjük az eseményeket vagy felülbírálhatjuk őket ha szükséges. (gondolom a fejlesztők – a ford.)
  • Egy entitás több változó értékkel rendelkezik. Ezen változók írják le azt, hogy a szimuláció milyen eseményeket hoz létre.
    • ÁLLAMVEZETÉS TÍPUSA (Government type)
      • Az államvezetés típusának értéke egyike, egy előre meghatározott listának. Ezek a típusok módosítók teljes sorát illesztik rá a rendszer alapértékeire. Például kommunizmus vagy demokrácia.
      • Az államvezetés típusok velejáró módosítókat adnak problémákra, mint például a korrupcióra (corruption) és a vagyonelosztásra (distribution of wealth)
      • Az államvezetés típusai a következők lehetnek:
        • Anarchia (Anarchy)
        • Vállalati állam (corporate state)
        • Vallásfelekezet / Szekta (religious cult)
        • Független demokrácia (Independent democracy)
        • Föderációs – szövetségi – demokrácia (Federal State)
        • Teokratikus diktatúra (theocratic dictatorship)
        • Autokratikus diktatúra (autocratic dictatorship)
        • Kommunista diktatúra (Communist dictatorship)
        • Feudális – hűbéri – kormány (Feudal)
        • Birodalmi kolónia (Imperial colony)
        • Birodalmi helytartóság – fennhatóság (Imperial protectorate)
    • ÁLLAPOT (State)
      • Az entitás állapota speciális módosítókat alkalmaz függően az aktuális állapottól
      • Az állapotokat változtatni eseményeken keresztül lehet – általában manuálisan beillesztett eseményekkel
      • Az entitások állapota néha módosíthatja az eseményeket és a hozzátartozó önállóan generálódó küldetéseket
      • Az állapotok változása adat / érték vezérelt és az alább olvasható lista nem teljeskörű. Az extrém kategóriát szeretnénk ha csak moderátori beavatkozással lehetne triggerelni
      • Az állapotok listája és azok hatásai (a hatások magnitúdója változó lehet eseti alapon) :
        • Béke (Peace)
          • az alapértelmezett állapot, nincsenek módosítói
        • Kedvező gazdaság (Economy – positive)
          • Leírás: fellendülés volt a gazdaságban
          • Hatásai:
            • Kedvező – pozitív:
              • életminőség
              • termelés / gyártás
              • vagyon / jólét
            • Kedvezőtlen – negatív:
              • nincs
        • Kedvezőtlen gazdaság (Economy – negative)
          • Leírás: visszaesés történt a gazdaságban
          • Hatásai:
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • gyártás / termelés
              • életminőség
              • vagyon / jólét
        • Polgári nyugtalanság (Civil unrest)
          • Leírás: ez az állapot belső kofliktusra utal egy másik meg nem nevezett entitással szemben
          • Hatásai:
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • életminőség
              • biztonság
              • vagyon / jólét
        • Polgárháború (Civil war)
          • Leírás: ez az állapot belső polgárháborút jelez meg nem nevezett entitás nélkül (fontos, hogy ha a polgárháború egy megnevezett entitás ellen irányul akkor az egy szimpla háború)
          • Hatásai:
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Életminőség
              • Biztonság
              • vagyon / jólét
              • Fejlődési szint be van fagyasztva a polgárháború idejére
        • Háborús fenyegetettség (Threat of War)
          • Leírás: az entitások előkészülnek egy lehetséges konfliktusra más entitással illetve entitásokkal
          • Hatásai:
            • a piacok fegyvert kívánnak még akkor is, ha alapból soha nincs készleten.
        • Háború (War)
          • Leírás: az entitás háborúban áll egy más entitással vagy entitásokkal
          • Hatásai:
            • Kedvező:
              • nincs
            • Semleges:
              • A piacon erős kereslet mutatkozik fegyverekre akkor is ha alapvetően nincsen készleten
            • Kedvezőtlen:
              • Életminőség
              • Biztonság
              • Jólét / Vagyon
        • Vesztes háború (War – Losing)
          • Leírás: Az entitás háborút vesztett egy másik entitással szemben
          • Hatásai:
            • Kedvezőtlen:
              • Életminőség
              • Populáció
              • Fejlődési szint
              • Jólét / Vagyon
            • Semleges:
              • A piacok keresletet mutatnak fegyverekre és egyészségügyi termékekre, gyógyszerekre akkor is, ha alapvetően nincsenek készleten.
        • Győztes háború (War – Winning)
          • Leírás: Az entitás háborút nyert egy másik entitással szemben
          • Hatásai
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Biztonság
              • Jólét / Vagyon
            • Semleges:
              • A piacok keresletet mutatnak fegyverekre és egyészségügyi termékekre, gyógyszerekre akkor is, ha alapvetően nincsenek készleten.
        • Éhínség (Famine)
          • Leírás: Az entitás nem képes ellátni a saját populációját a normális eszközök segítségével – tipikusan agrikulturális világokat érint bár más típusú világokat is érinthet akik nem importálnak elegendő élelmet
          • Hatásai:
            • Az összes élelmiszer gyártás leáll
            • Az élelmiszer eltűnik a piacról
            • Megnövekedik a kereslet az élelmiszer iránt
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Életminőség
              • Jólét / vagyon
              • Populáció
        • Aszály (Draught)
          • Leírás: Az entitás nem képes ellátni a saját populációját a normális eszközök segítségével – tipikusan sivatagos világokat érint bár más típusú világokat is érinthet, ha nincs elegendő víz importálva
          • Hatásai:
            • Az összes víztermelés leáll
            • Az összes víz típusú áru eltűnik a piacról
            • A piaci kereslet megnövekedik a víz típusú árucikkekre
            • Kedvezőtlen:
              • Életminőség
              • Jólét / vagyon
              • Populáció
        • Kisebb járvány (Outbreak – minor)
          • Leírás: Kisebb világjárvány tör ki az entitás környezetében
          • Hatásai:
            • A piacok nem exportálnak élelmiszert és orvosi eszközöket (kivéve az orvosi gépeket ha vannak)
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Életminőség
              • jólét / vagyon
        • Nagyobb járvány (Outbreak – major)
          • Leírás: nagy és halálos világjárvány tör ki az entitás területén
          • Hatásai:
            • A piac nem exportál élelmiszert és orvosi eszközöket (kivéve orvosi gépeket, ha vannak)
            • A piaci kereslet a gyógyszerre megnövekedik
            • A fejlődési szint befagy a járvány idejére
            • Az entitást elszigetelik karanténnal
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Életminőség
              • Populáció
              • Jólét / vagyon
        • Apokaliptikus járvány (Outbreak – apocalyptic)
          • Leírás: rendkívül végzetes és ragályos betegség terjedt el az entitás területén.
          • Hatásai:
            • A piac semmit sem tud exportálni
            • A piaci kereslet a gyógyszerekre extrém módon megnövekednek
            • A fejlődési szint be van fagyasztva az állapot idejére
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Életminőség
              • Populáció
              • Fejlődési szint
              • Jólét / vagyon
        • Súlyos időjárás (Weather – severe)
          • Leírás: Súlyos időjárási tényezők – beleértve földrengések, stellar flare események és más általános csapás
          • Hatásai:
            • Kedvező:
              • nincs
            • Kedvezőtlen:
              • Életminőség
              • Jólét / vagyon
        • Választások (Elections)
          • Leírás: Az entitás választásokat tart
        • Speciális események: (Special events)
          • Leírás: Időről időre vannak meghatározva, például űr időjárás
    • Gazdaság típusa (Economy type)
      • A gazdaság típusa egy széleskörű előrejelzése a rendszer elsődleges jövedelemszerzésének. Általában megmutatja, hogy mik a főbb exportcikkek. Az is megállapítható belőle, hogy milyen termékek találhatóak általában a piacán.
        • Mezőgazdasági (Agricultural)
        • Ipari – Civil (Industrial – Civilian)
        • Ipari – Katonai (Industrial – Military)
        • Közigazgatási – (Government)
        • Ásványi (Mineral)
        • Szolgáltatási (Service)
        • Túrisztikai (Tourist)
        • Bűnözői (Criminal)
    • POPULÁCIÓ (POPULÁCIÓ)
      • Egy bolygó populációjának száma szolgál alapjául a játékosok által végrehajtott cselekedetek súlyának. Továbbá ez a szám határozza meg azt, hogy mi kapható a piacon az adott rendszerben. A populáció mérete események által módosítható.
    • FEJLŐDÉSI SZINT (DEVELOPMENT LEVEL)
      • Ez az általános mutatója annak, hogy mennyire előrehaladott a kolónia. Nagyon sok módosítót alkalmaz az adott entitás különféle változó értékein. Tágabb értelemben véve ez egy mutató arra, hogy az adott entitás mennyire tudja abszorbálni a változásokat, kieséseket, elmaradásokat és így tovább. Továbbá ez az érték reprezentálja az entitás képességét, hogy támogassa magát más szervzetek által.
    • ÁLTALÁNOS ÉLETMINŐSÉG (STANDARD OF LIVING)
      • Az életminőség változója mutatja, mennyire jó élete van az entitás populációjának átlagemberének. A magas általános életminőség egyrészt megköveteli a létfontosságú nyersanyagokat mint az étel és természetesen a luxuscikkeket is (Luxury items). Továbbá hatással van a piacon található termékek elérhetőségére és igényletére is.
    • BIZTONSÁG (SECURITY)
      • A biztonság értéke reprezentálja az entitás biztonsági helyzetét. Minél magasabb az értéke a lakosság annál biztonságosabbnak érzi és vice versa.
      • A biztonsági szint közvetlen játékosok általi beavatkozással is módosítható:
        • Kalózkodással csökkenthetjük
        • Fejvadászattal növelhetjük
    • VAGYON – JÓLÉT (WEALTH)
      • Ez a változó mutatja az entitás felhalmozott vagyonát. Az entitás események generálására használhatja ezt a vagyont, hogy fellendítse, megnövelje más értékeit vagy épp használjon a tartalékokból a negatív értékek kiegyensúlyozására. Ez az érték mutatja a gazdaság erősségét és belenyúl az árakba.
      • Fontos megjegyezni, hogy az életminőség (Standard of Living) és a vagyon (Wealth) kapcsolódnak egymáshoz ettől még két teljesen különálló dolog.
      • A játékosok sokféle képpen lehetnek hatással a vagyonra – kereskedelemmel növelhetik míg a helyiek profithatárainak beszűkítésével csökkenthetik azt. Egy entitás eszközeinek elpusztítása vagy akár a biztonságot (security) és az életminőséget (standard of living) befolyásolása is hatást fejt ki a vagyonra.
    • BIMODÁLIS SZIMULÁCIÓS TICK
      • A szimuláció két pontosan elhatárolható módban fut (igaz mindkét mód értékei ugyanazokat az eseményeket generálják). Az egyik a játékosok cselekedetein alapulnak, amint az aktivitás típusa elér egy küszöbértéket az entitásnál a hatásai alkalmazódnak és a hozzá tartozó események legenerálódnak.
      • Csakúgy mint a játékosok hatásánál szeretnénk, ha időről időre változásokat hajtana végre maga a szimuláció is.

A JÁTÉKOSOK ÁLTALI TEVÉKENYSÉGEK HATÁRÉRTÉKEI

A játékosok általi tevényekségek az adott entitáson belül különböző “befolyásokban” (influence) vannak számolva. Ezeknek a befolyásoknak közvetlen hatása van az entitás értékeire.

  • A VIZSGÁLT TEVÉKENYSÉGEK A KÖVETKEZŐK:
    • Fejlődési szint (Development level)
      • Negatív hatást érhetünk el:
        • Sikertelen fejlesztési (development) küldetésekkel
      • Pozitív hatást érhetünk el:
        • Sikeresen teljesített fejlesztési (development) küldetésekkel
    • Életminőség (Standard of Living)
      • Negatív hatást érhetünk el:
        • Sikertelen életminőségért felelős (standard of living) küldetésekkel
      • Pozitív hatást érhetünk el:
        • Sikeresen teljesített életminőségért felelős (standard of living) küldetésekkel
        • Olyan kereskedelemmel ami az entitás alapvető szükségleteihez ad hozzá
    • Biztonság (Security)
      • Negatív hatást érhetünk el:
        • Kalózkodás
        • Gyilkosság
        • Sikertelen security küldetésekkel
      • Pozitív hatást érhetünk el:
        • Begyűjtött fejpénzekkel
        • Sikeresen végrehajtott fejvadász küldetésekkel
    • Vagyon / jólét (Wealth)
      • Negatív hatást érhetünk el:
        • Issuing missions (??)
        • Ha az entitás veszteségesen kereskedik
      • Pozitív hatást érhetünk el:
        • Ha az entitás profittal kereskedik

A tevékenységek küszöbértékei értelem szerűen az entitás populációjától, fejlődési szintjétől és a vezetés típusának módosítóitól függően vannak beállítva. Minden egyes tevékenységnek van egy számszerű értéke mely a pozitív és negatív cselekedetek értékének nettója, ezek határoznak meg minden változást.

A küldetések (Missions) nagyobb súlyozást kapnak a számozásban mint az általános tevékenységek. Amint a nettó érték eléri a beállított küszöbértéket egy esemény generálódik. A tevékenység számlálója nullázódik és a küszöbértékek újraszámolódnak az új statisztikák alapján, amennyiben szükséges.

Vedd figyelembe, hogy a vagyon (Wealth) nem egy triggerelt küszöbérték de a körülményektől függően megváltozhat és szükséges korrekciós/helyreállító küldetések generálásához.


Generált események

Amikor egy küszöbérték triggerelődik az entitás létrehoz egy eseményt, ez tipikusan egy küldetés arra tervezve, hogy megoldást nyújtson egy problémára amely az entitás bizonyos mértékű vagyonába fog kerülni. Ha az entitásnak nincs elegendő vagyona akkor az eseményt nem lehet létrehozni, mindenesetre egy üzenetet kapnak a monitorozó fejlesztők (lásd a beavatkozást igénylő triggereknél)

A periódikus változás is létrehozhat eseményeket.

Az államvezetés típusa határozza meg, hogy létre kell e hozni eseményt a triggerelt küszöbértéknek megfelelően.

Ha az államvezetés típusa megengedi akkor egy esemény és a hozzátartozó küldetések legenerálásra kerülnek. Ezek ugyanazt a mintát fogják követni mint a cselekmények küszöbértékeinek listája, például fejvadász küldetések lesznek generálva ha a biztonsági szint változója visszaesett.


Periódikus változás

Az entitások periódikus fejlesztése az entitások időszakos vizsgálata alapján van kezelve. Az entitások változóit kielemezzük és kisebb igazításokat, korrekciókat eszközlünk. Amennyiben bármely változtatás átállít egy értéket egy adott minimumom felülre egy ugyanolyan esemény jön létre mint amikor egy cselekmény küszöbérték lett átlépve.

Jelenleg a frekvenciája napi (a valós időben) tick-re van beállítva. Idővel egyszer lehet, hogy szükség lesz ennek megváltoztatására.

 

Információ a szerzőről

WarHead

Egy, a harmincas éveihez közeledő programozó, jelenleg Belgiumban él és sok közösségi/nyílt forrású projekten dolgozik. Az Elite-el gyerekfejjel 7-8 évesen találkozott először még C64-en. Érdeklődik a világűr iránt és az Elite:Dangerous-t early béta óta támogatja (és teszteli...

Nem vagy bejelentkezve :-(

Csak bejelentkezve tudsz hozzászólni a témához.

Jelentkezzen be, kapitány!