ஆதாயங்கள்:
- எஞ்சின், பதிப்பு, மொழி மற்றும் கட்டடக்கலை சூழலைக் கொடுப்பதன் மூலம் செயற்கை நுண்ணறிவிலிருந்து நம்பகமான, தொகுக்கக்கூடிய கேம் குறியீட்டை உருவாக்கும் திறன் மற்றும் குறியீட்டைப் படித்து புரிந்துகொள்வதன் மூலம் அதை ஒருங்கிணைக்கும் திறன்
- தொகுப்பு, சோதனை மற்றும் விவரக்குறிப்பு மூலம் விளையாட்டு குறியீடு-குறிப்பிட்ட செயல்திறன் (ஒரு சட்டத்திற்கு ஒதுக்கீடு), இயந்திர வாழ்க்கை சுழற்சி மற்றும் மாயத்தோற்றம் அபாயங்களை நிர்வகிக்கும் திறன்
- மல்டிபிளேயர் கேம்களில் ஹோஸ்ட்-அதிகாரத்தின் கொள்கையைப் பயன்படுத்துவதற்கான திறன் மற்றும் ஒருவரின் சொந்த விளையாட்டைப் பாதுகாக்கவும் சரிபார்க்கவும் மட்டுமே பாதுகாப்புத் தகவலைப் பொறுப்புடன் பயன்படுத்தவும்.
விளையாட்டு மென்பொருள்; அது எவ்வளவு சிறப்பாக வடிவமைக்கப்பட்டிருந்தாலும், அது குறியீட்டுடன் செயல்படுத்தப்படுகிறது. கேம் என்ஜின் என்பது விளையாட்டை இயக்கும் உள்கட்டமைப்பு ஆகும்: யூனிட்டி (சி# இல் ஸ்கிரிப்ட் செய்யப்பட்ட இயந்திரம்) மற்றும் அன்ரியல் என்ஜின் (சி++ மற்றும் விஷுவல் ஸ்கிரிப்டிங் மொழி புளூபிரிண்ட் ஆகியவற்றைப் பயன்படுத்தும் இயந்திரம்) மிகவும் பொதுவான இரண்டு. AI என்பது குறியீடு உருவாக்கத்தில் மிகவும் முதிர்ந்த உதவிகளில் ஒன்றாகும்: பிளேயர் கன்ட்ரோலர், இன்வென்டரி சிஸ்டம், ஸ்டேட் மெஷின்கள், சேவ்/லோட், இன்டர்ஃபேஸ் லாஜிக், பிழைத்திருத்தம் மற்றும் மறுசீரமைப்பு (அதன் நடத்தையை மீறாமல் குறியீட்டை மறுசீரமைத்தல்). ஆனால் விளையாட்டுக் குறியீடு அதன் சொந்த ஆபத்துக்களைக் கொண்டுள்ளது: செயல்திறன் (பிரேம் வீதம்), இயந்திர வாழ்க்கை சுழற்சி, மல்டிபிளேயர் பாதுகாப்பு. கேம் குறியீட்டில் AI ஐ எவ்வாறு பாதுகாப்பாகவும் திறமையாகவும் பயன்படுத்துவது என்பதை இந்த யூனிட்டில் நீங்கள் கற்றுக் கொள்வீர்கள்.
முக்கியமான கொள்கை: இயந்திரம் மற்றும் பதிப்பு சூழல்
AI எந்த எஞ்சின் மற்றும் பதிப்பிற்காக எழுதுகிறது என்று தெரியாவிட்டால், அது குழப்பமான, வழக்கற்றுப் போன அல்லது இல்லாத APIயை உருவாக்கும். எனவே ஒவ்வொரு குறியீடு வரியிலும் இயந்திரம், பதிப்பு, மொழி மற்றும் கட்டிடக்கலை சூழலைக் கொடுங்கள். "ஒற்றுமைக்கான வீரர் இயக்கம்" பலவீனமானது; "யூனிட்டி 2022.3, சி#, புதிய உள்ளீட்டு அமைப்பு, ரிஜிட்பாடி அடிப்படையிலான இயற்பியல் இயக்கம்" சக்தி வாய்ந்தது. அன்ரியலில் புளூபிரிண்ட் வேண்டுமா அல்லது C++ வேண்டுமா, எந்தப் பதிப்பைப் பயன்படுத்துகிறீர்கள் என்பதைக் குறிப்பிடவும்.
பாதுகாப்பான குறியீடு ஓட்டம் படிப்படியாக:
- சூழலைக் கொடுங்கள் (இயந்திரம், பதிப்பு, மொழி, தற்போதைய கட்டிடக்கலை, கட்டுப்பாடுகள்).
- இது சிறியதாகவும் வரையறுக்கப்பட்டதாகவும் இருக்க வேண்டும் (ஒற்றை கூறு, முழு அமைப்பு அல்ல).
- குறியீட்டைப் படித்துப் புரிந்து கொள்ளுங்கள் (அது என்ன செய்கிறது என்பதைப் புரிந்து கொள்ளுங்கள்; உங்களுக்குப் புரியாத குறியீட்டை வைக்க வேண்டாம்).
- உருவாக்க மற்றும் சோதனை (இயந்திரத்தில் இயக்கவும்; சுயவிவரம் - செயல்திறனை அளவிடவும்).
- மறுசீரமைப்பு மற்றும் ஒருங்கிணைத்தல் (திட்டத் தரத்தைப் பொருத்து).
உதவிக்குறிப்பு: AIயிடம் குறியீட்டைக் கேட்கும் போது, "கருத்துகளுடன் விளக்கவும்" என்று கூறவும். குறியீட்டைப் புரிந்துகொள்வதே உங்கள் குறிக்கோள்; ஒரு திட்டத்தில் உங்களுக்கு புரியாத AI குறியீட்டை வைப்பது, பராமரிக்க முடியாத கடனைக் குவிக்கும். சிறிய, சோதிக்கக்கூடிய துகள்களில் குறியீட்டைக் கேட்கவும்: 500-வரி அமைப்புக்குப் பதிலாக, ஒரு வரையறுக்கப்பட்ட வேலையைச் செய்யும் 30-50 வரிக் கூறுகள் சரிபார்க்கவும் ஒருங்கிணைக்கவும் எளிதானது.
விளையாட்டுக் குறியீட்டிற்கு குறிப்பிட்ட பொறிகள்
செயல்திறன். கேம் குறியீடு வினாடிக்கு 30-60+ முறை இயங்கும். AI ஆனது விலையுயர்ந்த செயல்பாடுகளை (நினைவக ஒதுக்கீடு, தேடுதல், சரம் கையாளுதல்) ஒவ்வொரு சட்டகத்திலும் இயங்கும் புதுப்பிப்பு வளையத்தில் வைக்கலாம்; இது பிரேம் வீதத்தைக் குறைக்கிறது. சுயவிவர செயல்திறன் முக்கியமான குறியீடுகள் மற்றும் "ஒவ்வொரு சட்டகத்திலும் இயக்கவும், ஒதுக்கீடு இல்லை" போன்ற AI கட்டுப்பாடுகளை வழங்குகின்றன.
இயந்திர வாழ்க்கை சுழற்சி. அவேக்/ஸ்டார்ட்/அப்டேட் இன் யூனிட்டி, பிஜின்ப்ளே/டிக் இன் அன்ரியல் போன்ற சிறப்பு முறைகள் அழைக்கப்படும்போது AI சில நேரங்களில் குழப்பமடைகிறது. சோதனை மூலம் வாழ்க்கைச் சுழற்சி பிழைகளைப் பிடிக்கவும்.
மல்டிபிளேயர் பாதுகாப்பு. தகவல் தொழில்நுட்பம்/பாதுகாப்பு அடிப்படையில் இது மிகவும் முக்கியமான பிரச்சினை. மல்டிபிளேயரில் வாடிக்கையாளரை ஒருபோதும் நம்ப வேண்டாம்: பிளேயரின் கணினியில் உள்ள கிளையன்ட் ஏமாற்றுவதற்காக கையாளப்படலாம். புள்ளிகள், சேதம், சர்வரில் உள்ள பணம் (சர்வர்-அதிகாரம்) போன்ற முக்கியமான நிலையைச் சரிபார்க்கவும். இந்தக் கொள்கைக்கு எதிராக AI ஆல் உருவாக்கப்பட்ட பிணையக் குறியீட்டைக் கட்டுப்படுத்தவும்; AI ஆனது வாடிக்கையாளர்-நம்பிக்கையான பாதிப்பை உருவாக்கியிருந்தால், அதை சரிசெய்யவும். உங்கள் சொந்த விளையாட்டைப் பாதுகாக்கவும் சரிபார்க்கவும் மட்டுமே இந்தத் தகவலைப் பயன்படுத்தவும்; வேறொருவரின் சேவையகத்தை அங்கீகரிக்கப்படாத அணுகல் அல்லது ஏமாற்றுவது சட்டவிரோதமானது மற்றும் நெறிமுறையற்றது.
எச்சரிக்கை: AI உருவாக்கிய குறியீட்டில் பாதிப்புகள் இருக்கலாம் (விடுபட்ட உள்ளீடு சரிபார்ப்பு, கிளையன்ட் நம்பிக்கை, கோப்பு கையாளுதல்களைச் சேமித்தல்). குறியீட்டை கண்மூடித்தனமாக ஏற்றுக்கொள்ளாதீர்கள்; பாதுகாப்பு மதிப்பாய்வைச் செய்யவும், குறிப்பாக நெட்வொர்க், பொருளாதாரம் மற்றும் சேமி குறியீடு.
கட்டிடக்கலை மற்றும் பராமரிப்பு கடன்
AI தனிப்பட்ட செயல்பாடுகளை விரைவாக உருவாக்குகிறது; ஆனால் ஒரு விளையாட்டின் கட்டமைப்பு-அமைப்புகள் எவ்வாறு பிரிக்கப்படுகின்றன, அவை எவ்வாறு ஒருவருக்கொருவர் பேசுகின்றன, தரவு எங்கே சேமிக்கப்படுகிறது-இது ஒரு நீண்ட கால முடிவாகும், அது மனிதனுடையது. "முழு சரக்குகளையும் எழுதுங்கள், போரிடவும் மற்றும் கணினியைச் சேமித்து வைக்கவும்" என்று AI யிடம் கூறினால், நீங்கள் வேலை செய்யும் ஆனால் இறுக்கமாக இணைக்கப்பட்ட, பராமரிக்க கடினமாக, விரிவாக்க முடியாத நூல் பந்தைப் பெறுவீர்கள். அதற்கு பதிலாக, நீங்கள் கட்டமைப்பை வடிவமைக்கிறீர்கள், வரையறுக்கப்பட்ட இடைமுகங்களுடன் சிறிய கூறுகளை விரிவுபடுத்த AI ஐப் பயன்படுத்தவும். விளையாட்டு வளரும்போது நல்ல கட்டிடக்கலை வித்தியாசத்தை ஏற்படுத்துகிறது: ஒவ்வொரு புதிய அம்சத்தையும் தாமதப்படுத்தும் தொழில்நுட்பக் கடனாக மோசமான முடிவுகள் ஒரு வருடம் கழித்து மீண்டும் வரும்.
பராமரிப்புக் கடனின் மற்றொரு ஆதாரம், புரிந்து கொள்ளப்படாமல் திட்டத்தில் நுழையும் குறியீடு ஆகும். AI ஆல் எழுதப்பட்ட ஒரு அமைப்பு இன்று வேலை செய்ய முடியும்; ஆனால் ஆறு மாதங்களுக்குப் பிறகு நீங்கள் அதை மாற்ற வேண்டும், அவர்கள் என்ன செய்தார்கள் என்பதை யாரும் நினைவில் கொள்ளாதபோது, கடன் வட்டியாக மாறும். அதனால்தான் இரண்டு துறைகள் அவசியம்: உற்பத்தி நேரத்தில் குறியீட்டைப் படித்து புரிந்துகொள்வது மற்றும் AI இலிருந்து கருத்துகளைத் தெளிவுபடுத்துவது. கட்டைவிரல் விதியாக, உங்களால் மீண்டும் எழுத முடியாத அல்லது வரிக்கு வரியாக விளக்க முடியாத எந்த AI குறியீட்டையும் உங்கள் திட்டத்தில் வைக்க வேண்டாம். AI வேகத்தை அளிக்கிறது; உங்கள் ஒழுக்கம் நிலைத்தன்மையை அளிக்கிறது.
மூன்று சிறிய வழக்குகள்
வழக்கு 1 - வெளியீட்டு சூழல் பிழையைத் தடுத்தது. ஒரு புரோகிராமர் முதலில் கூறினார், "ஒற்றுமைக்கான சரக்குகளை எழுது"; குறியீடு பழைய API ஐப் பயன்படுத்துகிறது, அது தொகுக்கப்படவில்லை. பின்னர் அது "ஒற்றுமை 2022.3, C#, ScriptableObject அடிப்படையில்" என்ற சூழலைக் கொடுத்தது; குறியீடு முதல் முறையாக தொகுக்கப்பட்டு திட்டத்திற்கு பொருந்தும். சூழல் ஒரு மணிநேர பிழைத்திருத்தத்தை சேமித்தது.
வழக்கு 2 - செயல்திறன் பொறி. ஒரு ஆட்டத்தில் பிரேம் வீதம் குறைவாக இருந்தது. விவரக்குறிப்பு செய்யும் போது, AI ஆல் தயாரிக்கப்பட்ட ஒரு புதுப்பிப்பு முறை ஒவ்வொரு சட்டகத்திலும் ஒரு புதிய பட்டியலை ஒதுக்கி எதிரிகளைத் தேடியது. கேச் செய்யப்பட்ட குறிப்பு மற்றும் இருபடி அல்லாத புதுப்பித்தலுடன் குறியீடு சரி செய்யப்பட்டது, ஃபிரேம் வீதத்தை 42 இலிருந்து 60 ஆக அதிகரிக்கிறது.
வழக்கு 3 - பாதுகாப்பு பாதிப்பு பிடிபட்டது. மல்டிபிளேயர் கேமில், AI-உருவாக்கப்பட்ட குறியீடு கிளையண்டின் சேதத்தைக் கணக்கிட்டு, அதை சர்வருக்குப் புகாரளித்தது; இது ஏமாற்றுவதற்குத் திறந்திருந்தது (வாடிக்கையாளர் எல்லையற்ற சேதத்தை ஏற்படுத்தலாம்). குறியீடு சர்வர்-அதிகாரப்பூர்வமாக மாற்றப்பட்டது (சேவையகம் சேதத்தை கணக்கிடுகிறது). தணிக்கையானது வெளியீட்டிற்குப் பிந்தைய மோசடி ஊழலைத் தடுத்தது.
நகலெடுக்கக்கூடிய நான்கு வார்ப்புருக்கள்
1) சூழலுடன் குறியீடு கோரிக்கை:
எஞ்சின்: யூனிட்டி 2022.3. மொழி: சி#. கட்டிடக்கலை: [எ.கா. கூறு அடிப்படையிலான].கட்டுப்பாடு: புதுப்பிப்பில் ஒதுக்கீடு; படிக்கக்கூடியதாகவும் கருத்து தெரிவிக்கவும். பணி: [ஒற்றை, வரையறுக்கப்பட்ட கூறு, எ.கா. "இரட்டை ஜம்ப் கேரக்டர் கன்ட்ரோலர்"]. நீங்கள் பயன்படுத்தும் ஒவ்வொரு APIயும் இந்தப் பதிப்பில் உள்ளதா என்பதைச் சரிபார்க்கவும்; உங்களுக்கு உறுதியாக தெரியவில்லை என்றால், எனக்கு தெரியப்படுத்தவும்.
2) குறியீடு விளக்கம்/மதிப்பாய்வு:
பின்வரும் குறியீட்டு வரியை வரியாக விளக்கி, (1) அது என்ன செய்கிறது, (2) சாத்தியமான செயல்திறன் சிக்கல்கள் (ஒரு சட்டத்திற்கு ஒதுக்கீடு, விலையுயர்ந்த தேடல்), (3) சாத்தியமான பிழைகள், (4) முன்னேற்றத்திற்கான பரிந்துரைகளை எழுதவும். குறியீடு: [ஒட்டு]
3) மல்டிபிளேயர் பாதுகாப்பு தணிக்கை:
பாதுகாப்பிற்காக பின்வரும் மல்டிபிளேயர் குறியீட்டை ஆராயவும். குறிப்பாக: கிளையன்ட் நம்பகமான இடங்கள், சர்வரில் சரிபார்க்கப்பட வேண்டிய முக்கியமான நிலை (சேதம், புள்ளிகள், பணம்), உள்ளீடு சரிபார்ப்பு இல்லை. சர்வரை-அதிகாரப்பூர்வமாக்குவதற்கான தீர்வைப் பரிந்துரைக்கவும். இது எனது சொந்த விளையாட்டைப் பாதுகாப்பதற்காக மட்டுமே. குறியீடு: [ஒட்டு]
4) செயல்திறன் சுயவிவரத்தை மையப்படுத்திய மறுசீரமைப்பு:
இந்தக் குறியீடு ஒவ்வொரு ஃப்ரேமிலும் இயங்குகிறது மற்றும் பிரேம் வீதத்தைக் குறைக்கிறது: [குறியீடு]. ஒதுக்கீடுகள், விலையுயர்ந்த தேடல்கள் மற்றும் தேவையற்ற ஃப்ரேம்-பை-ஃபிரேம் செயல்பாடுகளைக் கண்டறியவும்; கேச்சிங் மற்றும் குறைவான அடிக்கடி புதுப்பிப்புகள் மூலம் நடத்தை உடைக்காமல் மேம்படுத்தவும். மாற்றங்களை விளக்குங்கள்.
பலவீனமான வரியில் / வலுவான வரியில்
பலவீனமான உடனடி:
யூனிட்டியில் ஒரு சேமிப்பு அமைப்பை எழுதவும்.
பதிப்பு, வடிவம், தரவு நோக்கம், பாதுகாப்பு இல்லை; விளைவு பொதுவானது மற்றும் ஆபத்தானது.
சக்திவாய்ந்த தூண்டுதல்:
எஞ்சின்: யூனிட்டி 2022.3, சி#. பணி: JSON அடிப்படையிலான சேமிப்பு/ஏற்ற அமைப்பு. சேமிக்கப்பட வேண்டியவை: பிளேயர் இடம், இருப்பு, முன்னேற்றம். கட்டுப்பாடு: கோப்பு ஊழலுக்கு எதிராக பிழை மேலாண்மை பெறவும்; பிளேயர் எளிதாக மாற்றுவதன் மூலம் ஏமாற்றுவதைத் தடுக்க, சேமிக் கோப்பில் ஒருமைப்பாடு சரிபார்ப்பை (ஹாஷ்) சேர்க்கவும். குறியீட்டைக் கருத்துத் தெரிவிக்கவும், ஒவ்வொரு API இந்தப் பதிப்பில் உள்ளதா என்பதைச் சரிபார்க்கவும்.
பதிப்பு, நோக்கம், பிழை கையாளுதல் மற்றும் ஒருமைப்பாடு சரிபார்த்தல் ஆகியவை வெளியீட்டை கடினமாக்குகின்றன.
இயந்திரம்/மொழி சூழல் அட்டவணை
இயந்திரம்
மொழி
AI க்கு நீங்கள் என்ன கொடுக்க வேண்டும்
சிறப்பு கவனம்
ஒற்றுமை
C#
பதிப்பு, உள்ளீடு/இயற்பியல் அமைப்பு
ஒதுக்கீடு, வாழ்க்கைச் சுழற்சியைப் புதுப்பிக்கவும்
உண்மையற்றது
புளூபிரிண்ட்
பதிப்பு, முனை சூழல்
காட்சி தர்க்க வரம்புகள்
உண்மையற்றது
C++
பதிப்பு, தொகுதி அமைப்பு
நினைவகம், ஜிசி, மேக்ரோக்கள்
மல்டிபிளேயர்
இரண்டும்
பிணைய மாதிரி
முன்வைப்பவர்-அதிகாரத்துவம்
பொதுவான தவறுகள்
- இயந்திரம்/பதிப்பைக் குறிப்பிடவில்லை. இது காலாவதியான அல்லது தயாரிக்கப்பட்ட API இலிருந்து வருகிறது.
- குறியீட்டை புரிந்து கொள்ளாமல் நம்புதல். தாங்க முடியாத கடன் குவிகிறது.
- செயல்திறனை அளவிடவில்லை. ஃபிரேம்-பை-ஃபிரேம் ஒதுக்கீடு, பிரேம் வீதத்தை அமைதியாகக் குறைக்கிறது.
- வாடிக்கையாளரை நம்புதல். மல்டிபிளேயரில் மோசடி பாதிப்பு உள்ளது.
- முழு அமைப்பும் ஒரே நேரத்தில் வேண்டும். சிறிய, சோதிக்கக்கூடிய துண்டு பாதுகாப்பானது.
சுருக்கமாக
AI என்பது கேம் குறியீட்டில் சக்திவாய்ந்த உதவியாளர், ஆனால் அதற்கு இயந்திரம், பதிப்பு மற்றும் கட்டடக்கலை சூழல் தேவை. குறியீட்டைப் படித்து புரிந்து கொள்ளாமல், தொகுத்து சோதனை செய்யாமல், செயல்திறன் மற்றும் பாதுகாப்பைச் சரிபார்க்காமல் அதை ஒரு திட்டப்பணியில் சேர்க்க வேண்டாம். மல்டிபிளேயரில் சர்வர்-அதிகாரத்துவத்தைப் பராமரிக்கவும் மற்றும் தற்காப்பு மற்றும் சரிபார்ப்பு நோக்கங்களுக்காக மட்டுமே பாதுகாப்புத் தகவலைப் பயன்படுத்தவும்.
விண்ணப்ப பணி
சிறிய கூறுகளைத் தேர்வு செய்யவும் (எ.கா. இரட்டை ஜம்ப் அல்லது எளிய சரக்கு). "சூழலுடன் கூடிய குறியீடு கோரிக்கை" டெம்ப்ளேட்டுடன் இயந்திரம் மற்றும் பதிப்பை வழங்குவதன் மூலம் குறியீட்டை உருவாக்கவும். "குறியீடு விளக்கம்/மதிப்பாய்வு" டெம்ப்ளேட்டுடன் அதே குறியீட்டை மதிப்பாய்வு செய்வதன் மூலம் செயல்திறன் மற்றும் பிழை அபாயங்களை அகற்றவும். இன்ஜினில் உள்ள குறியீட்டை தொகுத்து சோதிக்கவும்.
சரிபார்ப்பு பட்டியல்
- [ ] நான் என்ஜின், பதிப்பு, மொழி மற்றும் கட்டிடக்கலை சூழலைக் கொடுத்தேன்.
- [ ] நான் குறியீட்டைப் படித்து புரிந்துகொண்டேன்; நான் அதை வர்ணனையுடன் விரும்பினேன்.
- [ ] நான் தொகுத்து எஞ்சினில் சோதனை செய்து செயல்திறனை அளந்தேன்.
- [ ] பிணையம்/பொருளாதாரம்/சேமிக் குறியீட்டில் பாதுகாப்புச் சோதனை செய்தேன்.
- [ ] எனது சொந்த விளையாட்டைப் பாதுகாக்க மட்டுமே பாதுகாப்புத் தகவலைப் பயன்படுத்தினேன்.