Eining 7 / 11

Kóðagerð og vélsamþætting: Unity (C#) og Unreal (Blueprint/C++)

Hagnaður:

  • Geta til að framleiða áreiðanlegan, samstillanlegan leikkóða úr gervigreind með því að gefa vél, útgáfu, tungumál og byggingarfræðilegt samhengi og samþætta það með því að lesa og skilja kóðann
  • Geta til að stjórna leikkóðasértækri frammistöðu (úthlutun á ramma), líftíma hreyfils og ofskynjaáhættu með samantekt, prófunum og prófílgreiningu
  • Hæfni til að beita meginreglunni um hýsingarvald í fjölspilunarleikjum og nota öryggisupplýsingar á ábyrgan hátt eingöngu til að verja og sannreyna eigin leik.

Leikurinn er hugbúnaður; Sama hversu vel það er hannað, það er útfært með kóða. Leikjavélin er innviðinn sem gerir leikinn keyrandi: Unity (mikið notuð vél með forskrift í C#) og Unreal Engine (vél sem notar C++ og sjónræna forskriftarmálið Blueprint) eru tvær algengustu. Gervigreind er eitt af þroskaðustu hjálpartækjunum í kóðagerð: stjórnandi leikmanna, birgðakerfi, ástandsvélar, vistun/hlaða, viðmótsrökfræði, kembiforrit og endurstillingu (refactoring kóða án þess að brjóta hegðun hans). En leikkóði hefur sínar eigin gildrur: árangur (rammatíðni), líftíma vélar, fjölspilunaröryggi. Í þessari einingu muntu læra hvernig á að nota gervigreind á öruggan og skilvirkan hátt í leikkóða.

Mikilvæg meginregla: samhengi vélar og útgáfu

Ef gervigreindin veit ekki hvaða vél og útgáfu það er að skrifa fyrir mun það framleiða ruglað, úrelt eða ekkert API. Svo gefðu vél, útgáfu, tungumál og arkitektúr samhengi í hverri kóðabeiðni. "Write player movement for Unity" er veik; „Unity 2022.3, C#, nýtt inntakskerfi, eðlisfræðihreyfing sem byggir á stífum líkama“ er öflug. Tilgreindu hvort þú vilt Blueprint eða C++ í Unreal og hvaða útgáfu þú ert að nota.

Öruggt kóðaflæði skref fyrir skref:

  1. Gefðu samhengi (vél, útgáfa, tungumál, núverandi arkitektúr, takmarkanir).
  2. Viltu hafa það lítið og skilgreint (einn þáttur, ekki allt kerfið).
  3. Lestu og skildu kóðann (skiljið hvað hann gerir línu fyrir línu; ekki setja kóða sem þú skilur ekki).
  4. Byggja og prófa (keyra á vél; snið - mæla frammistöðu).
  5. Refactor og samþætta (passa við verkefnastaðal).
Ábending: Þegar þú biður gervigreindina um kóða, segðu „útskýrðu með athugasemdum“. Markmið þitt er að skilja kóðann; Að setja gervigreindarkóða sem þú skilur ekki inn í verkefni mun safna óviðhaldanlegum skuldum. Biddu einnig um kóða í litlum, prófanlegum klumpum: Í stað 500 lína kerfis er 30-50 lína íhlutur sem gerir eitt skilgreint starf bæði auðvelt að sannreyna og samþætta.

Gildrur sérstaklega við leikkóðann

Frammistaða. Leikkóði keyrir 30-60+ sinnum á sekúndu. AI getur sett dýrar aðgerðir (minni úthlutun, uppflettingu, strengjameðferð) í uppfærslulykkjuna sem keyrir á hverjum ramma; þetta dregur úr rammatíðni. Prófaðu frammistöðu mikilvæga kóða og gefðu gervigreindarþvingunum eins og "keyra á hverjum ramma, engin úthlutun".

Lífsferill vélarinnar. Gervigreind ruglar stundum þegar sérstakar aðferðir eru kallaðar, eins og Awake/Start/Update in Unity, BeginPlay/Tick in Unreal. Náðu í lífsferilsvillur með því að prófa.

Fjölspilunaröryggi. Þetta er mikilvægasta málið hvað varðar upplýsingatækni/öryggi. Treystu aldrei viðskiptavininum í fjölspilun: það er hægt að svindla á viðskiptavininum á tölvu leikmannsins. Staðfestu mikilvæga stöðu eins og stig, skemmdir, peninga á þjóninum (miðlara-heimild). Stjórnaðu netkóðanum sem myndast af gervigreindinni gegn þessari meginreglu; Ef gervigreind hefur skapað varnarleysi sem treystir á viðskiptavini skaltu laga það. Notaðu þessar upplýsingar eingöngu til að verja og sannreyna eigin leik; Óleyfilegur aðgangur að eða svindl á netþjóni einhvers annars er ólöglegt og siðlaust.

Varúð: Kóði myndaður gervigreind getur innihaldið veikleika (inntaksstaðfestingu vantar, traust viðskiptavina, meðferð vistunarskráa). Ekki samþykkja kóðann í blindni; Framkvæmdu öryggisúttekt, sérstaklega á netinu, hagfræði og vistaðu kóða.

Byggingar- og viðhaldsskuldir

AI framleiðir einstakar aðgerðir fljótt; En arkitektúr leiks - hvernig kerfum er skipt, hvernig þau tala saman, hvar gögn eru geymd - er langtímaákvörðun og hún tilheyrir manneskjunni. Ef þú segir gervigreindinni að „skrifa allt birgðahaldið, bardaga og vista kerfið saman“ færðu virka en þétt tengda, erfitt að viðhalda, óstækkanlegri garnkúlu. Í staðinn hannar þú arkitektúrinn, notar gervigreind til að búa til litla hluti með skilgreindum viðmótum. Góður arkitektúr skiptir máli þegar leikurinn stækkar: slæmar ákvarðanir koma aftur ári síðar sem tæknileg skuld sem tefur hvern nýjan eiginleika.

Önnur uppspretta viðhaldsskulda er kóða sem kemur inn í verkefnið án þess að skiljast. Kerfi skrifað af gervigreind gæti virkað í dag; En þegar þú þarft að skipta um það hálfu ári seinna og enginn man hvað hann gerði breytist skuldin í vexti. Þess vegna eru tvær greinar nauðsynlegar: að lesa og skilja kóðann á framleiðslutíma og biðja um skýrar athugasemdir frá gervigreindinni. Sem þumalputtaregla skaltu ekki setja neinn gervigreindarkóða inn í verkefnið þitt sem þú getur ekki endurskrifað sjálfur eða að minnsta kosti útskýrt línu fyrir línu. AI gefur hraða; Fræði þín gefur sjálfbærni.

þrjú smámál

Tilvik 1 - Losunarsamhengi kom í veg fyrir villuna. Forritari sagði fyrst: "Skrifaðu skrá fyrir Unity"; kóðinn var að nota gamalt API, það kom ekki saman. Síðan gaf það samhengið „Unity 2022.3, C#, byggt á ScriptableObject“; kóðinn settur saman í fyrsta skipti og passaði við verkefnið. Samhengið sparaði klukkutíma af villuleit.

Tilfelli 2 - Frammistöðugildra. Í einum leik var rammatíðni lág. Við prófílgreiningu sást að uppfærsluaðferð framleidd af gervigreindinni úthlutaði nýjum lista í hverjum ramma og leitaði að óvinum. Lagaði kóðann með tilvísun í skyndiminni og ekki fjórðungsuppfærslu og jók rammahraðann úr 42 í 60.

Tilfelli 3 - Öryggisveikleiki gripinn. Í fjölspilunarleik reiknaði gervigreindarkóði út tjónið á viðskiptavininum og tilkynnti það til netþjónsins; þetta var opið fyrir svindl (viðskiptavinur gæti valdið óendanlega skaða). Kóðinn hefur verið gerður þjónn-valdandi (þjónninn reiknar tjónið). Endurskoðunin kom í veg fyrir svindlhneyksli eftir birtingu.

Fjögur afritanleg sniðmát

1) Kóðabeiðni með samhengi:

Vél: Unity 2022.3. Tungumál: C#. Arkitektúr: [t.d. component based].Constraint: Úthlutun í uppfærslu; vera læsileg og athugasemd.Verk: [einn, skilgreindur hluti, t.d. "tvístökk stafa stjórnandi"]. Staðfestu að hvert API sem þú notar sé í þessari útgáfu; Ef þú ert ekki viss, láttu mig vita.

2) Kóðaskýring/endurskoðun:

Útskýrðu eftirfarandi kóða línu fyrir línu og skrifaðu (1) hvað hann gerir, (2) möguleg frammistöðuvandamál (úthlutun á hvern ramma, dýr leit), (3) hugsanlegar villur, (4) tillögur til úrbóta. Kóði: [líma]

3) Öryggisúttekt fjölspilunar:

Skoðaðu eftirfarandi fjölspilunarkóða til öryggis. Nánar tiltekið: staðir þar sem viðskiptavinurinn er treyst, mikilvægt ástand sem þarf að staðfesta á þjóninum (tjón, stig, peningar), inntaksstaðfesting vantar. Stingdu upp á lagfæringu til að gera miðlara valdhafa. Þetta er bara til að verja minn eigin leik. Kóði: [líma]

4) Afkastasnið einbeittur refactor:

Þessi kóði keyrir á hverjum ramma og dregur úr rammatíðni: [kóði]. Finndu úthlutun, dýrar uppflettingar og óþarfa ramma-fyrir-ramma aðgerðir; Fínstilltu án þess að brjóta hegðun með skyndiminni og sjaldnar uppfærslum. Útskýrðu breytingarnar.

Veik kvaðning / Sterk kvaðning

Veik kvaðning:

Skrifaðu vistunarkerfi í Unity.

Engin útgáfa, snið, gagnaumfang, öryggi; Niðurstaðan er almenn og áhættusöm.

Öflug tilvitnun:

Vél: Unity 2022.3, C#. Verkefni: JSON byggt vistunar/hlaða kerfi. Til að vista: staðsetning leikmanns, lager, framfarir. Þvingun: fáðu villustjórnun gegn skemmdum á skrá; Bættu heilleikaathugun (hash) við vistunarskrána til að koma í veg fyrir svindl með því að breyta því auðveldlega af spilaranum. Skrifaðu út kóðann og staðfestu að hvert API sé í þessari útgáfu.

Útgáfa, umfang, villumeðferð og heilleikaathugun herða úttakið.

Vél/tungumál samhengis tafla

vél

tungumál

Það sem þú þarft að gefa gervigreindinni

sérstaka athygli

einingu

C#

Útgáfa, inntak/eðlisfræðikerfi

Uppfæra úthlutun, líftíma

óraunverulegt

Teikning

Útgáfa, hnútsamhengi

Sjónræn rökfræði takmörk

óraunverulegt

C++

Útgáfa, mát uppbygging

Minni, GC, fjölvi

fjölspilun

bæði

net líkan

Kynningarmaður-forræðishyggja

Algeng mistök

  • Ekki tilgreint vél/útgáfu. Það kemur frá úreltum eða tilbúnum API.
  • Að treysta kóða án þess að skilja hann. Óviðhaldanlegar skuldir safnast upp.
  • Ekki mæla frammistöðu. Úthlutun ramma fyrir ramma dregur hljóðlaust úr rammahraðanum.
  • Að treysta viðskiptavininum. Það er varnarleysi fyrir svindl í fjölspilun.
  • Vilja allt kerfið í einu. Lítið, prófanlegt stykki er öruggara.

Í stuttu máli

AI er öflugur hjálpari í leikkóða, en það krefst vélar, útgáfu og byggingarsamhengis. Ekki setja það inn í verkefni án þess að lesa og skilja kóðann, setja hann saman og prófa hann og athuga frammistöðu og öryggi. Viðhalda valdrétti miðlara í fjölspilun og notaðu öryggisupplýsingar eingöngu í varnar- og sannprófunartilgangi.

Umsóknarverkefni

Veldu lítinn íhlut (t.d. tvístökk eða einfalt birgðahald). Búðu til kóða með því að útvega vél og útgáfu með "kóðabeiðni með samhengi" sniðmátinu. Fjarlægðu síðan árangur og villuáhættu með því að láta skoða sama kóða með sniðmátinu „Kóðalýsing/endurskoðun“. Settu saman og prófaðu kóðann í vélinni.

gátlisti

  • [ ] Ég gaf vélinni, útgáfuna, tungumálið og arkitektúr samhengi.
  • [ ] Ég las og skildi kóðann; Ég vildi það með athugasemdum.
  • [ ] Ég tók það saman og prófaði það í vélinni og mældi afköst.
  • [ ] Ég gerði öryggisathugun í net-/hagkerfis-/vistunarkóðanum.
  • [ ] Ég notaði aðeins öryggisupplýsingar til að verja minn eigin leik.