Narratiivinen peli, pelattava AI-osuus
A Chain of Pain on kehitteillä oleva ensimmäisen persoonan narratiivinen peli. Nykyinen pelattava kokonaisuus on sairaalaympäristössä toimiva stealth- ja vihollis-AI-prototyyppi. Dialogia, tavoitteita, tarinatapahtumien laukaisimia, haarautuvia lopputuloksia tai loppuja ei ole vielä toteutettu.
Pelisuunnittelu, järjestelmäsuunnittelu, arkkitehtuuri, integraatio, kentän koostaminen ja pelitestaus kuuluvat samaan tekniseen kokonaisvastuuseen. Dokumentoidut reiluussäännöt ja hyväksymiskriteerit määrittävät, mitä Hunter saa tietää ja miten sen tulee reagoida.
Nykyinen pelattava kokonaisuus
Nykyinen pelattava osuus on sairaalaympäristöön sijoittuva ensimmäisen persoonan stealth-prototyyppi. Hiipiminen, kyykistyminen, juoksu ja rajallinen panic sprint tarjoavat eri tapoja tutkia ympäristöä ja paeta. Liikkuminen, äänet, ovien käyttö ja taskulamppu vaikuttavat siihen, mitä Hunter havaitsee.
Hunter voi pysähtyä kuuntelemaan, tutkia vahvempia havaintoja, ajaa pelaajaa takaa ja etsiä tätä. Kuulo käyttää kuljettavan NavMesh-reitin pituutta pelkän suoraviivaisen etäisyyden sijaan, joten seinät, kerrokset ja reitin muoto vaikuttavat äänen selkeyteen. Näköyhteyden katkettua Hunter etsii viimeisen varmennetun sijainnin, liikesuunnan ja uusien äänihavaintojen perusteella eikä seuraa piilossa olevan pelaajan reaaliaikaista sijaintia.
Ympäristön interaktiot käyttävät pelaajan ja Hunterin yhteistä ovijärjestelmää. Haavat ja kriittinen tila tuovat painetta; kiinniotto ja kuolema johtavat uuteen yritykseen. Mukautuva musiikki reagoi vihollisen tilaan, kun tutkiminen vaihtuu vaaraksi tai takaa-ajoksi.
Systeeminen vihollis-AI
H1 Hunter on oma C++-vihollinen, joka käyttää Unrealin AI Perceptionia ja StateTreetä. Ohjain vastaa päätöksenteosta ja hahmo liikkumisesta sekä fyysisistä toiminnoista. Erillinen tietokomponentti käsittelee havainnot, tunnistuksen, muistin ja etsintätiedot. Toimintatehtävät lukevat tätä komponenttia piilossa olevan pelaajan reaaliaikaisen tilan sijaan.
Omat C++-tehtävät ja ehdot muodostavat StateTreen, joka generoidaan ja käännetään koodista. Näin toimintarakenne on toistettavissa ja tiedon hankinta pysyy erillään päätöksenteosta sekä ympäristöön vaikuttamisesta.
Hunterin arkkitehtuuri
- HavainnointiNäkö, ääni ja taskulampun vihjeet; näköyhteys tarkistetaan joka ruudulla.
- Tieto ja muistiTunnistusmittari, varmennetut sijainnit, valppaustaso ja etsinnän tiedot.
- Tilan valintaStateTree valitsee korkeimman prioriteetin kelvollisen toiminnan.
- ToimintaOmat C++-tehtävät tutkivat, jahtaavat, etsivät ja partioivat.
- Ympäristön toiminnotNavigointi, lukitsemattomat ovet, kiinniotto ja pelitapahtumat.
Kuulo huomioi reitin, ei vain etäisyyttä
Ääntä arvioidaan kokonaisen kuljettavan NavMesh-reitin pituuden perusteella. Äänen voimakkuus vaikuttaa hyväksyttyyn kantamaan. Lähellä oleva lähde seinän takana tai toisessa kerroksessa voi siksi kuulua Hunterille heikosti, jos kulkureitti on pitkä. Kyseessä on reittigeometriaan perustuva pelimekaniikka, ei fysikaalinen akustiikkasimulaatio.
Vaimea ääni saa Hunterin pysähtymään, kääntymään ääntä kohti ja kuuntelemaan. Selkeä ääni tai lyhyen ajan sisällä ensimmäisen vahvistava toinen vaimea ääni luo tutkittavan sijainnin. Pelaajan liikkumistapa vaikuttaa askelten äänenvoimakkuuteen, ja ovet ilmoittavat omat äänensä.
Asteittainen näköhavainto
Tunnistus kertyy mittariin sen sijaan, että näkyvyys olisi pelkkä kyllä–ei-kytkin. Kertymisnopeuteen vaikuttavat etäisyys, katselukulma, liikkumistapa tai asento, liike ja taskulamppu. Mittari laskee näköyhteyden puuttuessa; hyvin läheltä tunnistus tapahtuu heti. Epäily voi käynnistää tutkimisen ennen kuin varmennettu kohde johtaa takaa-ajoon.
Taskulamppu helpottaa näkemistä, mutta lisää paljastumisen riskiä: se vaikuttaa näkökantamaan ja tunnistukseen, ja näkyvä valokeila tai valaistu kohta voi muodostaa vihjeen. Debug-näkymä näyttää näön osatekijät, jotta toimintaa voi tarkastaa ja säätää.
Muisti ilman seinien läpi näkemistä
Vihollinen etsii viimeksi havaitsemansa tiedon perusteella sen sijaan, että seuraisi piilossa olevan pelaajan reaaliaikaista sijaintia. Kun näköyhteys katkeaa, viimeinen varmennettu sijainti ja liikesuunta säilyvät. Tuore ääni voi ylläpitää takaa-ajoa tai korvata vanhemman etsintätiedon. Kohteen menettäminen käynnistää etsinnän viimeksi havaitusta paikasta.
Etsinnän alku painottuu pelaajan viimeaikaiseen kulkusuuntaan. Etsintäsäde laajenee, käytyjä paikkoja vältetään ja ehdotettujen reittien on pysyttävä alueen sisällä. Etsinnän jälkeen AlertRoam partioi katoamisalueella, kunnes valppaus laskee.
Toiminta valitaan prioriteetin mukaan
StateTree valitsee ensimmäisen kelvollisen tilan tässä prioriteettijärjestyksessä. Valinta tehdään uudelleen tiedon muuttuessa tai tehtävän päättyessä. Tilat kilpailevat valinnasta; ne eivät ole peräkkäisiä pelivaiheita. Kiinniotolla ja tainnutuksella on myös tapahtumapohjaiset ohitukset. Valppaustaso on erillinen tietokomponentin arvo.
StateTree / korkein kelvollinen prioriteetti ensin
- CaptureKiinniotto on aktiivinen. Tila jatkuu, kunnes kuoleman käsittely lataa kentän uudelleen.
- StunnedTainnutus on aktiivinen; toipuminen käynnistää etsinnän.Tuki vain debug-laukaisulle; pelin sisäistä tainnutuslähdettä ei ole vahvistettu.
- ChaseVarmennettu kohde on olemassa. Tuore havaittu ääni voi ohjata takaa-ajoa ilman näköyhteyttä.
- InvestigateEpäilyttävällä näköhavainnolla, selvällä tai vahvistetulla äänellä tai valovihjeellä on sijainti.
- SearchKohde on kadonnut; etsintä käyttää säilytettyä tietoa.
- ListenVaimealla äänellä on sijainti, mutta havaintoa ei ole vielä vahvistettu.
- AlertRoamHunter on edelleen valppaana ilman kohdetta.
- RoamPartiointi, kun mikään korkeamman prioriteetin ehto ei täyty.
Pelaaja, ympäristö ja Hunter
AI toimii osana pelattavaa ympäristöä. Uuden kohtaamisen lyhyellä ryntäyksellä on palautumisaika. Kiinniotto edellyttää ulottuvuutta, varmennettua näköyhteyttä ja lyhyttä kuljettavaa reittiä. Alue ja takaa-ajon etäisyysraja rajoittavat toimintaa. Hunter avaa reitillään suljetut lukitsemattomat ovet ja kunnioittaa lukkoja.
Toisiinsa kytkeytyvät pelijärjestelmät
- Pelaajan liikkuminenHiipiminen, kyykistyminen ja juoksu vaikuttavat näkyvyyteen ja ääneen. Rajallinen paniikkisprintti tukee pakenemista.
- Interaktiot ja ovetUudelleenkäytettävä katseeseen perustuva rajapinta ja yhteinen oviluokka palvelevat pelaajaa, AI:ta ja kohtaamisia.
- Havaintojen syötteetPinnan ja liikkumistavan huomioivat askeleet, ovien äänet ja taskulamppu välittävät tietoa Hunterille.
- Haavat ja uusi yritysHaavat paranevat vaiheittain, ja mallissa on kriittinen tila. Kiinniotto ja kuolema johtavat uuteen yritykseen.
- Reagoiva ääniMusiikki vaihtuu tutkimisen, vaaran, takaa-ajon ja kuoleman välillä Hunterin tilanteen mukaan.
Järjestelmien ympärille koostettu maailma
Laaja yhtenäinen One File Per Actor -kartta sisältää kartanon ja kaksi sairaalarakennusta, jotka on koostettu kolmansien osapuolten modulaarisista ympäristöpaketeista. Hunterin nykyinen alue on H2-sairaala. Monikerroksinen navigointi, esteet, lukitut reitit ja projektin yhteiseen oviluokkaan muunnetut oviassetit yhdistävät tilan AI:hin.
Yksi skriptattu Door-14-väijytys ohjaa Hunteria hetkellisesti tavallisen StateTree-toiminnan ulkopuolella ja palauttaa sitten ohjauksen systeemiseen takaa-ajoon. Ympäröivä maailma on tätä testattua osuutta laajempi: monikerroksisesta navigoinnista on näyttöä, mutta porrastakaa-ajot tarvitsevat vielä erillistä pelitestausta.
Tekninen työ ja iterointi
Vaiheittainen kehitys käyttää Gitiä, Git LFS:ää ja One File Per Actor -rakennetta. Uudelleenkäytettävät komponentit erottavat havainnoinnin, hahmon toiminnot, interaktiot, haavat ja äänen. AI:n säätöarvot ovat pelin aikana luettavassa data-assetissa, joten iterointi ei edellytä vakioiden hajauttamista toimintakoodiin.
- Konsolin testikomennot, visuaaliset merkit ja tilanäkymät näyttävät tunnistuksen, kuulopäätökset, muistetut sijainnit ja etsinnän kohteet.
- Python-työkalut tukevat skriptattuja PIE-regressiotarkistuksia ja vievät kenttägeometrian mittakaavaisiksi pohjapiirroksiksi.
- Suunnittelusäännöt, hyväksymiskriteerit ja pienet kehitysvaiheet pitävät toteutuksen ja katselmoinnin rajattuina.
Prototyypit ja seuraavat vaiheet
Hunterin pienempi naulapyssyprototyyppi käyttää fyysisiä ammuksia, näköyhteyteen sidottua laukaisua, ammusten kiinnittymistä pintoihin ja samanaikaisten ammusten ylärajaa. Tähtäyksen esitys on paikkamerkkitasolla, ja audiovisuaalinen viimeistely on kesken.
Nykyinen tekninen näyttö keskittyy yhteen Hunteriin ja sen stealth-pelisilmukkaan. Narratiivinen laajentaminen kuuluu tulevaan työhön. Aito kuva-aineisto helpottaa havainnoinnin, etsinnän ja ympäristöintegraation arviointia tallennetun kehitysnäytön rinnalla.
Projektista voidaan tarvittaessa esitellä gameplayta, AI-debug-näkymiä ja teknistä toteutusta tarkemmin.
Testaus ja varmennus
- Tallennettuihin kehitysajoihin sisältyy 12/12 läpäistyä skriptattua AI-regressiotestiä 17.9.2026. Tulos on projektin aiempaa näyttöä; Unreal-testejä ei ajettu uudelleen tämän portfoliopäivityksen aikana.
- Skriptatut PIE-tarkistukset käsittelevät havainnointia, takaa-ajoa, muistia ja kiinniottoa. Konsolikomennot, päälle piirretyt tilatiedot ja maailmaan sijoitetut merkit tukevat kohdennettua pelitestausta ja virheenjäljitystä.
Dokumentaation tilanne
Täydennettävä näyttö
- Aitoja peli- ja debug-kuvia suunnitellaan; konseptikuva ei ole pelikuva.
- Julkista peliversio- tai lähdekoodilinkkiä ei ole toimitettu.
Lähdeaineisto
Tämä esittely perustuu seuraavaan projektiaineistoon.
- Projektin C++-järjestelmät, kehitysvaiheiden historia ja tallennetut editorin regressiotestit; tarkastettu 3.10.2026.