Бірліктер
1. Ойын әзірлеудегі жасанды интеллектке кіріспе: рөлдер, шекаралар, тексеру, авторлық құқық және этика 2. Прототип және механикалық дизайн: идеядан ойнатылатын ядроға дейін жылдам итерация 3. NPC мінез-құлық және диалог жүйелері: кейіпкерді тірілтетін жасанды интеллект 4. Процедуралық мазмұнды генерациялау (PCG): деңгей, карта, квест және баяндау 5. Актив және визуалды өндіріс: концепт өнері, 2D/3D және текстура 6. Дыбыс, музыка және әсерлер өндірісі: Ойынның естіген әлемі 7. Код жасау және қозғалтқышты біріктіру: Unity (C#) және Unreal (Blueprint/C++) 8. Ойын балансы, модельдеу және үнемдеу: сандармен әділ ойын 9. Сапаны қамтамасыз ету (QA), жөндеу және автоматтандырылған тестілеу 10. Авторлық құқық, түпнұсқалық, лицензия және этика: Жарияланатын және жауапты мазмұн 11. Ақырғы жұмыс процесі, өндірістік желіні біріктіру, басқару және тікелей қызмет көрсету
Бірлік 7 / 11

Код жасау және қозғалтқышты біріктіру: Unity (C#) және Unreal (Blueprint/C++)

Табыстар:

  • Қозғалтқышты, нұсқаны, тілді және архитектуралық контекстті беру арқылы жасанды интеллекттен сенімді, құрастырылатын ойын кодын шығару және кодты оқу және түсіну арқылы оны біріктіру мүмкіндігі
  • Компиляция, тестілеу және профильдеу арқылы ойын кодына тән өнімділікті (әр кадрға бөлу), қозғалтқыштың өмірлік циклін және галлюцинация тәуекелдерін басқару мүмкіндігі
  • Көп ойыншы ойындарында хост-авторитет принципін қолдану және қауіпсіздік ақпаратын тек өз ойын қорғау және тексеру үшін жауапкершілікпен пайдалану мүмкіндігі.

Ойын бағдарламалық құрал; Ол қаншалықты жақсы жобаланған болса да, ол кодпен жүзеге асырылады. Ойын қозғалтқышы ойынды іске қосатын инфрақұрылым болып табылады: Unity (C# тілінде сценарийленген кеңінен қолданылатын қозғалтқыш) және Unreal Engine (C++ қолданатын қозғалтқыш және Blueprint визуалды сценарий тілі) ең көп таралған екеуі. AI кодты генерациялаудағы ең жетілген құралдардың бірі болып табылады: ойнатқыш контроллері, инвентарлық жүйе, күй машиналары, сақтау/жүктеу, интерфейс логикасы, жөндеу және рефакторинг (оның әрекетін бұзбай кодты рефакторинг). Бірақ ойын кодының өзіндік қателері бар: өнімділік (кадр жиілігі), қозғалтқыштың өмірлік циклі, көп ойыншы қауіпсіздігі. Бұл бөлімде сіз ойын кодында AI-ны қауіпсіз және тиімді пайдалануды үйренесіз.

Сыни принцип: қозғалтқыш және нұсқа контекст

Егер AI қай қозғалтқыш пен нұсқа үшін жазып жатқанын білмесе, ол шатасқан, ескірген немесе жоқ API шығарады. Сондықтан әрбір код нұсқаулығында қозғалтқышты, нұсқаны, тілді және архитектураны беріңіз. «Бірлік үшін ойыншы қозғалысын жазу» әлсіз; «Unity 2022.3, C#, жаңа енгізу жүйесі, қатты денеге негізделген физика қозғалысы» күшті. Unreal жүйесінде Blueprint немесе C++ керек пе және қай нұсқаны пайдаланып жатқаныңызды көрсетіңіз.

Қауіпсіз код ағыны қадам бойынша:

  1. Мәтінмәнді беріңіз (қозғалтқыш, нұсқа, тіл, ағымдағы архитектура, шектеулер).
  2. Оның кішкентай және анықталған болуын қалайсыз (бүкіл жүйе емес, бір компонент).
  3. Кодты оқыңыз және түсініңіз (оның не істейтінін түсіну; түсінбейтін кодты қоймаңыз).
  4. Құру және сынау (қозғалтқышта жұмыс істеу; профиль — өнімділікті өлшеу).
  5. Рефактор және интеграция (жоба стандартына сәйкес).
Кеңес: AI-дан код сұрағанда, «түсініктемелермен түсіндір» деңіз. Сіздің мақсатыңыз кодты түсіну; Сіз түсінбейтін AI кодын жобаға енгізу мүмкін емес қарызды жинақтайды. Сондай-ақ шағын, тексерілетін бөліктерде кодты сұраңыз: 500 жолдық жүйенің орнына, бір анықталған тапсырманы орындайтын 30-50 жолдық құрамдас бір мезгілде тексеруге және біріктіруге оңай.

Ойын кодына тән тұзақтар

Өнімділік. Ойын коды секундына 30-60+ рет жұмыс істейді. AI қымбат операцияларды (жадты бөлу, іздеу, жолды манипуляциялау) әр кадрда жұмыс істейтін Жаңарту цикліне қоя алады; бұл кадр жиілігін азайтады. Профиль өнімділігінің маңызды кодтары және «әр кадрда іске қосу, бөлу жоқ» сияқты AI шектеулерін береді.

Қозғалтқыштың өмірлік циклі. AI кейде Unity жүйесінде Oyan/Start/Update, Unreal жүйесінде BeginPlay/Tick сияқты арнайы әдістерді шақырғанда шатастырады. Тестілеу арқылы өмірлік цикл қателерін анықтаңыз.

Көп ойыншы қауіпсіздігі. Бұл АТ/қауіпсіздік тұрғысынан ең маңызды мәселе. Көп ойыншыда клиентке ешқашан сенбеңіз: ойыншының компьютеріндегі клиентті алдау үшін басқаруға болады. Сервердегі ұпайлар, зақым, ақша (сервер-өкілетті) сияқты маңызды күйді тексеріңіз. Осы принципке қарсы AI жасаған желі кодын басқарыңыз; Егер AI клиентке сенетін осалдықты жасаған болса, оны түзетіңіз. Бұл ақпаратты тек өз ойыныңызды қорғау және тексеру үшін пайдаланыңыз; Басқа біреудің серверіне рұқсатсыз кіру немесе оны алдау заңсыз және этикаға жатпайды.

Абайлаңыз: AI жасаған код осалдықтарды қамтуы мүмкін (енгізілген тексеру, клиент сенімі, файлды сақтау манипуляциясы). Кодты соқыр қабылдамаңыз; Қауіпсіздікті тексеруді, әсіресе желіні, экономиканы және кодты сақтауды орындаңыз.

Сәулет және техникалық қызмет көрсету бойынша қарыз

AI жеке функцияларды жылдам жасайды; Бірақ ойынның архитектурасы - жүйелер қалай бөлінеді, олар бір-бірімен қалай сөйлеседі, деректер қайда сақталады - ұзақ мерзімді шешім және ол адамға тиесілі. Егер сіз AI-ға «барлық түгендеуді жазыңыз, күресіңіз және жүйені бірге сақтаңыз» десеңіз, сіз жұмыс істейтін, бірақ тығыз байланыстырылған, күтімі қиын, кеңейтілмейтін жіпті аласыз. Оның орнына сіз архитектураны жобалайсыз, анықталған интерфейстермен шағын құрамдастарды толтыру үшін AI пайдаланасыз. Жақсы архитектура ойын өскен сайын өзгереді: жаман шешімдер бір жылдан кейін әрбір жаңа мүмкіндікті кешіктіретін техникалық қарыз ретінде қайтарылады.

Техникалық қызмет көрсету бойынша қарыздың тағы бір көзі - жобаға түсініксіз енетін код. AI жазған жүйе бүгін жұмыс істей алады; Бірақ оны алты айдан кейін ауыстыру керек болғанда және олардың не істегенін ешкім есіне түсірмегенде, қарыз процентке айналады. Сондықтан екі пән маңызды: кодты өндіру кезінде оқу және түсіну және АИ-ден түсініктемелерді түсіндіруді сұрау. Әдеттегідей, жобаңызға өзіңіз қайта жаза алмайтын немесе кем дегенде жол бойынша түсіндіре алмайтын AI кодын қоймаңыз. AI жылдамдықты береді; Сіздің тәртіпіңіз тұрақтылықты береді.

үш шағын іс

1-жағдай — Шығарылым мәтінмәні қатенің алдын алды. Алдымен бағдарламашы: «Бірлік үшін түгендеуді жаз» деді; код ескі API қолданды, ол компиляцияланбады. Содан кейін ол «ScriptableObject негізіндегі Unity 2022.3, C#» контекстін берді; код бірінші рет құрастырылған және жобаға сәйкес келеді. Мәтінмән жөндеудің бір сағатын үнемдеді.

2-жағдай — өнімділік тұзағы. Бір ойында кадр жиілігі төмен болды. Профильдеу кезінде AI жасаған Жаңарту әдісі әр кадрда жаңа тізімді бөліп, жауларды іздейтіні байқалды. Кадр жиілігін 42-ден 60-қа дейін арттыра отырып, кэштелген сілтеме және квадраттық емес жаңарту бар код түзетілді.

3-жағдай — қауіпсіздік осалдығы анықталды. Көп ойыншы ойынында AI жасаған код клиентке келтірілген зиянды есептеп, серверге хабарлады; бұл алдау үшін ашық болды (клиент шексіз зиян келтіруі мүмкін). Код сервер-авторитарлы болды (сервер зақымдануды есептейді). Аудит жариялаудан кейінгі алдау жанжалының алдын алды.

Көшірілетін төрт үлгі

1) Мәтінмәні бар код сұрауы:

Қозғалтқыш: Unity 2022.3. Тіл: C#. Архитектура: [мыс. компонент негізінде].Шектеу: Жаңартуда бөлу; оқуға және түсініктеме беруге болады.Тапсырма: [бір, анықталған компонент, мысалы. «қос секіру таңба контроллері»]. Сіз қолданатын әрбір API осы нұсқада екенін тексеріңіз; Сенбесеңіз, маған хабарлаңыз.

2) Кодты түсіндіру/қарау:

Келесі код жолын жол бойынша түсіндіріңіз және (1) оның не істейтінін, (2) ықтимал өнімділік мәселелерін (әр кадрға бөлу, қымбат іздеу), (3) ықтимал қателерді, (4) жақсартуға арналған ұсыныстарды жазыңыз. Код: [қою]

3) Көп ойыншы қауіпсіздік аудиті:

Қауіпсіздік үшін келесі көп ойыншы кодын тексеріңіз. Атап айтқанда: клиентке сенімді орындар, серверде тексерілуі қажет сыни күй (зақым, ұпайлар, ақша), енгізуді тексеру жоқ. Серверді авторитарлық ету үшін түзетуді ұсыныңыз. Бұл менің жеке ойынымды қорғау үшін ғана. Код: [қою]

4) Өнімділік профиліне бағытталған рефактор:

Бұл код әрбір кадрда жұмыс істейді және кадр жиілігін төмендетеді: [код]. Бөлулерді, қымбат іздеулерді және қажет емес кадр бойынша операцияларды табыңыз; Кэштеу және сирек жаңартулармен әрекетті бұзбай оңтайландырыңыз. Өзгерістерді түсіндіріңіз.

Әлсіз шақыру / Күшті шақыру

Әлсіз шақыру:

Unity жүйесінде сақтау жүйесін жазыңыз.

Нұсқа, формат, деректер көлемі, қауіпсіздік жоқ; Нәтиже жалпы және қауіпті.

Күшті шақыру:

Қозғалтқыш: Unity 2022.3, C#. Тапсырма: JSON негізіндегі сақтау/жүктеу жүйесі. Сақталады: ойыншының орны, түгендеу, үлгерім. Шектеу: файлдың бүлінуіне қарсы қателерді басқаруды алу; Ойнатқыш оны оңай өзгерту арқылы алдауды болдырмау үшін сақтау файлына тұтастықты тексеруді (хэш) қосыңыз. Кодты түсіндіріңіз және әрбір API осы нұсқада екенін тексеріңіз.

Нұсқаларды анықтау, қолдану ауқымы, қателерді өңдеу және тұтастықты тексеру шығысты күшейтеді.

Қозғалтқыш/тіл контекстік кестесі

қозғалтқыш

тіл

AI-ға не беру керек

ерекше назар аудару

бірлік

C#

Нұсқа, енгізу/физикалық жүйе

Бөлу, өмірлік циклді жаңарту

шынайы емес

Жоспар

Нұсқа, түйін контексі

Көрнекі логикалық шектеулер

шынайы емес

C++

Нұсқа, модуль құрылымы

Жад, GC, макростар

көп ойыншы

екеуі де

желі моделі

Баяндамашы-авторитаризм

Жалпы қателер

  • Қозғалтқыш/нұсқа көрсетілмеген. Ол ескірген немесе жасалған API интерфейсінен келеді.
  • Кодты түсінбей сену. Қолжетімсіз қарыздар жинақталады.
  • Өнімділікті өлшеу емес. Кадрлар бойынша бөлу кадр жиілігін үнсіз азайтады.
  • Клиентке сену. Көп ойыншыда алдау осалдығы бар.
  • Бүкіл жүйені бірден алғыңыз келеді. Шағын, сынауға болатын бөлік қауіпсіз.

Қысқаша айтқанда

AI ойын кодындағы қуатты көмекші, бірақ ол қозғалтқышты, нұсқаны және архитектуралық контекстті қажет етеді. Кодты оқып, түсінбей, оны құрастырып, сынамай, өнімділік пен қауіпсіздікті тексермей оны жобаға салмаңыз. Көп ойыншыда серверлік авторитаризмді сақтаңыз және қауіпсіздік ақпаратын тек қорғаныс және тексеру мақсатында пайдаланыңыз.

Қолданбалы тапсырма

Шағын компонентті таңдаңыз (мысалы, қос секіру немесе қарапайым түгендеу). Қозғалтқышты және нұсқаны «мәтінмен код сұрауы» үлгісімен қамтамасыз ету арқылы кодты жасаңыз. Содан кейін бірдей кодты "Код сипаттамасы/қарау" үлгісімен қарап шығу арқылы өнімділік пен қате тәуекелдерін жойыңыз. Қозғалтқыштағы кодты құрастырыңыз және сынаңыз.

бақылау парағы

  • [ ] Мен қозғалтқышты, нұсқаны, тіл мен архитектураны бердім.
  • [ ] Мен кодты оқып, түсіндім; Мен оны түсініктемемен айтқым келді.
  • [ ] Мен оны құрастырып, қозғалтқышта сынап көрдім және өнімділігін өлшедім.
  • [ ] Мен желі/үнемдеу/сақтау кодында қауіпсіздік тексерісін жасадым.
  • [ ] Мен қауіпсіздік ақпаратын тек өз ойынымды қорғау үшін пайдаландым.