Johdanto
Lämpötilan hallinta sekä suorituskyvyn ja tehonhallinnan välinen tasapaino on aina monimutkainen tehtävä mobiilipelien kehityksessä. Tässä artikkelissa aiomme näyttää, kuinka luoda ihanteellinen ratkaisu virranhallintaan ja suorituskyvyn optimointiin käyttämällä Unityn "Adaptive Performancea". Lisäksi näytämme, kuinka Adaptive Performance toimii todellisessa markkinoilla olevassa pelissä, Call of Duty Mobilessa, ensimmäisen persoonan räiskintäpelissä, jonka tavoitteena on vastata kuuluisan PC-alkuperäisen pelin laatuun.
Ennen tätä projektia Unity oli jo julkaissut Adaptive Performancen ensimmäisen esikatseluversion yhteistyössä Samsungin kanssa. Tämän pohjalta aloitimme teknisen yhteistyön Call of Duty Mobile -tiimin, Tencentin Timi Studio J3:n kanssa, jossa pyrimme saamaan heidän pelinsä mahdollisimman pieneen virrankulutukseen erittäin vakaalla kuvanopeudella. Tietenkin tällainen tekninen yhteistyö auttaa tuomaan Adaptive Performancea yhä enemmän pelejä kehittäjien nähdessä selkeät edut.
Keskustelemme siitä, mitä kehittäjät voivat saavuttaa Adaptive Performancella ja kuinka sen avulla voit kehittää oman optimointiratkaisusi pelillesi oppien Call Of Duty Mobilen esimerkistä.
Ensiaskeleet
Perustason suorituskykyanalyysi
Ensimmäinen askel kaikissa uusissa projekteissa on saada käsitys siitä, missä olemme tällä hetkellä. Lopullisena tavoitteena on tarjota ennustettava kuvataajuus ja vähentää lämmön kertymistä, mikä mahdollistaa pidemmät toistoajat ja paljon nautinnollisemman soitinkokemuksen samalla, kun säästät akun käyttöikää.
Alun perin Call of Duty Mobile käytti Android-oletusratkaisua Samsung-laitteiden lämpökuristuksen hallintaan. Joten ensimmäisenä askeleena integroimme Unityn oletusarvoisen Adaptive Performance -paketin, joka sisälsi vain yksinkertaisen ratkaisun, jolla voidaan säätää CPU/GPU-taajuutta. Kuten alla näkyy, Adaptive Performance tarjosi välittömästi hitaamman lämpötilan nousun ja paremman FPS-vakauden säilyttäen samalla tavoitteen 60 FPS. Aina on kuitenkin parantamisen varaa, ja tavoitteemme ylittää rajoja entisestään, parantaa yleistä suorituskykyä rajoitetulla lämpötilalla, työ alkaisi tosissaan!
Projektin alustava selvitys
Suorituskyvyn määrittämisen lisäksi oli muitakin alueita, jotka vaativat tutkimista.
Katsotaanpa joitain kuvakaappauksia tästä pelistä:
Voimme nähdä, että Call of Duty Mobilessa on PC-tyyppinen renderöintilaatu, peli käyttää PBR-materiaalia korkearesoluutioisilla tekstuureilla, mikä aiheuttaa raskaan työkuorman sekä CPU:lle että GPU:lle. Joten näytti todennäköiseltä, että pelkän CPU/GPU-taajuuden automaattinen säätäminen ei riittäisi lämpökuristuksen ja siitä johtuvan suorituskyvyn heikkenemisen välttämiseksi. Keskustelimme Call of Duty -tiimin kanssa ajatuksesta tehdä monenlaisia skaalautuvia laatutekijöitä, ja ne tietysti vahvistettiin pelin Art-suunnittelijan ja projektihenkilökunnan kanssa varmistaaksemme, että näiden tekijöiden säädöt eivät vaikuttaneet pelikokemukseen. Call of Dutyn skaalautuvat tekijät olivat:
Varjon etäisyys: Pelin varjot vaativat yleensä monimutkaisia laskelmia. Pelin on otettava huomioon monet muuttujat varjon laskemiseksi, kuten valonlähteet, varjon luova esine ja esine, jolle varjo heitetään. Koko prosessi vaatii paljon prosessointitehoa.
Lehdet LOD: Tehokas tapa vähentää näytöllä näkyvää monikulmioiden määrää korvaamalla korkealaatuinen malli alemmalle tasolle (alempi polygonien määrä), kun se saavuttaa tietyn etäisyyden kamerasta. Call of Duty Mobilessa säädämme pääasiassa lehtien renderöinnin LOD-arvoa.
Animaationopeus: Bone-animaatioiden laskennassa on yleensä hallittava valtavia määriä luutietoa ja päivitettävä usein matriiseja. Mutta realistisesti katsottuna meidän ei aina tarvitse päivittää koko animaatiota joka ruutu, sillä päivitysnopeuden vähentäminen voi tehokkaasti vähentää suorittimen ja grafiikkasuorittimen laskentakustannuksia.
Tavoitekehysnopeus: Suuremmat kuvataajuudet maksavat aina enemmän tehoa ja johtavat laitteen korkeampaan lämpötilaan (varsinkin jos peli pyörii korkeilla virkistystaajuuksilla). Call of Duty Mobilessa laskimme tavoitekuvanopeutta, kun lämpötila nousi nopeasti, jolloin pystyimme rajoittamaan huippulämpötilaa ja saada vakaamman suorituskyvyn rajoitetulla CPU/GPU-taajuudella samaan aikaan.
Optimointiratkaisu Toteutus
Mukautuvan suorituskyvyn perusteet
Adaptive Performance on rakennettu Samsungin GameSDK:n päälle, joka voi antaa sinulle palautetta mobiililaitteiden lämpötilasta. Kehittäjät voivat tilata tapahtumia tai tiedustella tietoja Adaptive Performance API:sta suorituksen aikana reagoidakseen reaaliajassa.
Terminen kuristus
Omakseen jätetty mobiililaite laukaisee välittömän reaktion käsitelläkseen korkeaa pintalämpötilaa kuristamalla sirun taajuuksia, mikä luonnollisesti aiheuttaa suorituskyvyn heikkenemistä.
- Käytä nykyistä lämpövaroitustasoaKuuntelemalla API 'onHighTempWarnig()' voit havaita lämpökuristuksen ajoituksen varoitustasojen kautta.
- Hanki tarkka lämpötilatasoTämä tarjoaa joitain sovellusliittymiä, kuten 'getTempLevel(), getCPU/GPUJTLevel(), getSkinTempLevel()'. Sovellukset voivat sitten käyttää näiden toimintojen palautearvoja tehdäkseen muutoksia ja välttääkseen kuristamisen. Jokainen lämpötila on välillä 0-7.
Virranhallinta
Mobiililaitteen prosessori ja grafiikkasuoritin muodostavat erittäin suuren osan mobiililaitteen tehonkäytöstä, varsinkin kun pelataan peliä.
Prosessori- ja GPU-ytimet ovat itse asiassa vähemmän tehokkaita, kun niitä käytetään niiden maksimikellonopeuksilla. API 'setLevelWithScene(String scene, int cpuLevel, int gpuLevel)' rajoittaa suurinta sallittua kellotaajuutta, mikä voi välttää tilanteet, joissa käyttöjärjestelmä kuristaa CPU:n ja GPU:n taajuutta jäähdyttääkseen laitetta.
Sovellukset voivat määrittää cpuLevel- ja gpuLevel-arvon, jotka vaihtelevat välillä 0–3 Adaptive Performance API:n tarjoaman lämpöpalautteen perusteella ja voivat käyttää sovelluksen erityistietoa, kuten:
- Onko sovellus pelin sisäisessä kohtauksessa vai valikossa?
- Saavuttaako peli tavoitekuvanopeuden?
Pullonkaula Tunnista
Kehittäjät voivat tilata vastaanottamaan suorituskyvyn pullonkaulatapahtumia, jotka kertovat sovellukselle, oletko GPU:ssa, CPU:ssa vai "kehysnopeusrajoituksessa". Jos sovellus on "kehysnopeussidottu", sovelluksen tulisi harkita suorituskykyvaatimusten alentamista.
Pelistä ja skenaariosta riippuen kehittäjä voi reagoida eri tavalla, kun peli on CPU- tai GPU-sidottu lämpötilan muutosten mukaan.
Optimointiratkaisu, joka on toteutettu Call of Duty Mobilessa
Laadun mittakaavatekijät
Skaalauskerroin ei vaikuttanut suuresti prosessorin/grafiikkasuorittimen virrankulutukseen, mutta se voi ilmeisesti vähentää lämpöongelmia säätämällä virrankäyttöä ennen Thermal Throttlingia. Peli voi saada laitteen tilat mukautuvan suorituskyvyn avulla ja vähentää renderöinnin yksityiskohtia lämmön hallitsemiseksi.
Tässä ovat Call of Duty Mobilen yksityiskohtaiset renderöintitekijät, eikä säätö tietenkään vaikuta pelikokemukseen:
Ominaisuus | Parametri | Skaalausvaikutus |
---|---|---|
Varjon etäisyys | 80-50 | Suorittimen 0 ~ 10 % purkautuminen |
Lehdet LOD | 1 ~ 0,8 | GPU:n 0 ~ 5 % purkaminen |
Tavoitekehysnopeus | 60-57 | Suorittimen 0 ~ 5 % purkautuminen GPU:n 0–5 % purkautuminen |
Animaatio LOD | 0 ~ 2 | Suorittimen 0 ~ 5 % purkautuminen GPU:n 0–5 % purkautuminen |
Varjon etäisyys (80 ~ 50)
Lehtien LOD (1,0 ~ 0,8)
Dynaamisesti muuttuvat laatuskaalaustekijöiden ominaisuudet kapseloitiin funktioihin "LowerCoDFeatures()" ja "RaiseCoDFeatures()", joissa asetimme ensisijaisten skaalaustekijöiden arvon:
DynamicChange.SetFoliageLOD(m_FoliageLOD);DynaaminenChange.ChangeShadowQuality(m_ShadowDistance);DynaaminenMuutos.MuutaAnimLOD(m_AnimateIndex, m_AnimateHeight, m_AnimateUpdateRate);Dynaam.
Auto Perf Control
Jokaisessa pelikehyksessä suoritimme pullonkaulan havaitsemisen ja analysoimme lämpötilatrendiä päättääksemme, kuinka CPU/GPU-taso päivitetään.
- Pullonkaulan tunnistusSe, onko sovellus "kehysnopeussidottu", riippuu kohdekehysajan ja todellisen kehysajan välisestä deltasta. GPU-kehysajan ja suorittimen kehysajan perusteella voidaan päättää, onko sovellus CPU- vai GPU-sidottu.
Pelin lämpötilan mukaan matalasta korkeaan jaoimme pelin kolmeen vaiheeseen "Normaali", "NearThrottling" ja "CloseThrottling". Jokaisen algoritmi on täysin erilainen:
Normaali: Säilytimme tavoitekuvanopeuden ja tarkistimme suorituskyvyn pullonkaulatilan. "GPU sidottu" tapauksessa nostimme GPU-tasoa ja kutsuimme "LowerCoDFeatures()". Jos kyseessä on "CPU bound", nostimme CPU-tasoa ja kutsuimme myös "LowerCoDFeatures()". Jos "frame rate bound" tapahtui, varmistimme, että tavoitekehysnopeus voidaan ylläpitää jonkin aikaa ennen CPU- tai GPU-tason alentamista.
Near Throttling: Tarkistimme lämpötilatrendin. Jos se edelleen nousi, poistimme CPU- ja GPU-tason ja kutsuimme "LowerCoDFeatures()". Tai muuten lisäsimme CPU- ja GPU-tasoa ja kutsuimme "RaiseCoDFeatures()".
Sulje Ohjaus: Aluksi muutimme frme-nopeutta ja tarkistimme sitten lämpötilatrendin. Jos se edelleen nousi, laskimme GPU- ja CPU-tasoa ja kutsuimme "LowerCoDFeatures()".
Suorituskyvyn tulos
FPS
Tämä on FPS-vertailutulos kolmesta BR-tilan taistelusta Call Of Duty Mobilessa. Kuten tässä näkyy, mukautuvalla suorituskyvyllä varustettu FPS on paljon vakaampi ja keskimääräinen FPS on korkeampi, noin 7%.
Sähköä ja lämpöä
Adaptive Performancella lämpötila on keskimäärin 2 ja enintään 3 celsiusastetta alhaisempi.
Kuten Max Freq -kaaviosta näkyy, normaalissa tapauksessa laite toimii korkeammalla prosessoritaajuudella. alussa, joten se kohtaa nopeasti Thermal Throttlingin ja sitten FPS putoaa ja myös tehonsäätö tärisee pahasti.
Adaptive Performancea käyttämällä laite voi asettaa matalamman tason suorittimen taajuuden ja myös pitää GPU-taajuuden paljon vakaammalla tasolla. Tästä syystä Adaptive Performancen lämpötila ja suorituskyky ovat paljon parempia kuin tavallisessa tapauksessa.
Johtopäätös
Kuten yllä osoitimme, voimme varmistaa, että Adaptive Performancen käyttämisestä oikeissa peleissä voi olla selvää hyötyä. Jos kehittäjä haluaa säilyttää suorituskyvyn sallimatta laitteen lämpökuristusta ja haluaa tarjota vakaan pelikokemuksen optimaalisella visuaalisella laadulla mobiililaitteella, Adaptive Performance on ylivoimaisesti paras ratkaisu.
FAQs
What is the secret letter in Codm? ›
The Secret Letter in CODM (Call of Duty: Mobile) is a Morse code message sent to players by someone known as “Knight.” This intriguing mail arrives in your in-game mailbox upon successfully extracting from the T-3 container as you play a game of Battle Royale mode.
Why is CoD Mobile too easy? ›There's a simple answer to this potentially deep question: bots. Activision hasn't commented on the existence of bots/AI enemies in Call of Duty Mobile, but it's obvious that in the early levels, you're playing almost exclusively against AI enemies set to a very low difficulty.
What are the rarest Codm character? ›1) Ghost - Plasma
The Ghost - Plasma soldier crate contains one of the most sought-after but rarest operator skins in COD Mobile. It comes with a wingsuit, a backpack, a sticky grenade, a knife, and a special skin for the AK47.
- Prophet – High Voltage. Screengrab via Activision. ...
- Battery – Demolitions. Screengrab via Activision. ...
- AK117 – Holidays. Screengrab via Activision. ...
- BY15 – Red Action. Screengrab via Activision. ...
- Razorback – Cosmos. ...
- Outrider – Skeleton. ...
- AK47 – Pumpkin Head. ...
- Knife – Magical Eye.
- 8 AUG - Fan Favorite Tactical Rifle. ...
- 7 AK 74U - SMG, Almost An AR Hybrid. ...
- 6 XM4 - Assault Rifle. ...
- 5 AK-47 - Assault Rifle. ...
- 4 LC-10 - SMG. ...
- 3 EM 2 - Assault Rifle. ...
- 2 Tec-9 - Best SMG. ...
- 1 Krig-6 - Best Weapon in the Game.
The R9-0 shotgun is one of the best shotguns in CODM. It deals very high damage and has a good fire rate, high accuracy and low recoil. It can kill the enemy at close range with 1 shot. It can be unlocked after killing 15 enemies with a shotgun at a long distance.
What is the best assault in COD Mobile? ›- AK-47. Image: Activision via HGG / Koby Gibson Ross. ...
- Man-O-War. Image: Activision via HGG / Koby Gibson Ross. ...
- MK2-Peacekeeper. Image: Activision via HGG / Koby Gibson Ross. ...
- Krig 6. Image: Activision via HGG / Koby Gibson Ross. ...
- AS-VAL. ...
- M13. ...
- Kilo 141.
Is Call of Duty: Mobile against real players? Best answer: Yes, at early levels, Call of Duty: Mobile is going to throw bots at you. You'll fight mostly bots for your first few levels until the game turns you loose on real players at around level 10.
What gun has the best control in COD Mobile? ›The M13 is an assault rifle in COD Mobile known for its high fire rate and accuracy. It has a relatively low recoil, allowing players to control the weapon easily while shooting in full auto. It's a versatile weapon used in various game modes and map types.
What is the best accuracy gun in COD Mobile? ›How do you get the ghost character in Codm? ›
How to Get Ghost Stealth Character in CODM? Every player who logs in and updates the game to the latest update can get the Ghost Stealth character for free.
How do you use special characters in Codm name? ›Step 1: Click on the loadout icon on the main screen of COD Mobile. Step 2: Press the inventory option and press the 'Use' option after selecting the Rename card. Step 3: Enter the new name with the special symbols and characters. Step 4: Click on Submit.
What does blacklist do in Codm? ›If you do not wish to receive messages from certain players, you can block them and add them to your Blacklist, thereby preventing them from messaging you. You can also remove players from your Blacklist at any time.
What do Codm codes give? ›Redeem codes for CoD Mobile have historically provided free operators, weapon blueprints, camos, and various other rewards.