Hi! ako ay Dmitry Ulitin, Senior Game Designer sa War Robots proyekto. Kapag nilikha namin ang SWORD Unit 190 robot sa aming laro, alam namin na kami ay tumanggap ng isang malubhang challenge. Para sa unang pagkakataon sa kasaysayan ng laro, ang isang robot ay nagtatrabaho ng isang espada — isang armas ng melee sa isang mundo kung saan ang lahat ay nagtatrabaho sa mga pistol at pag-aralan ng dugo-range. Kami ay nag-experimentate sa mga close-range fight na gumagamit ng anumang mga robot na armas, ngunit ito ay hindi talagang "melee": harpoons at mga armas ng AoE ay dumating malapit, ngunit walang isang tunay na "sword." Ngunit ang bagong armas ay hindi isang "sword-gun" - ito ay isang espada sa loob ng isang kapangyarihan. sa iba pang mga salita, itakda ito pagkatapos ng isang jump at kailangan upang matugunan ang gameplay ng konsepto ng robot. Ang konsepto ay nilikha sa kumpanya sa legendaryong Kunio Okawara, isang designer na kilala para sa paggawa ng mga robot para sa maraming iba pang mga franchise. Nagsimula na ito: isang robot na may isang espada - isang kilala na ideya, na ginawa ng maraming beses bago. Ngunit kapag nagsimula namin ang pag-implementasyon nito, natagpuan namin na may tonelada ng mga teknikal at creative na mga problema na hindi namin kahit na tinanggap sa konsepto stage. Paano Makakuha ng Melee Combat sa isang Shooting Game? Ang unang at pinakamataas na problema: kung paano i-implementate ang melee attacks sa isang laro kung saan ang buong sistema ng pag-atake ay binuo para sa pag-atake ng range? Nakatanggap namin ang pinaka simpleng paraan: ginamit namin ang isang regular na pistol, ngunit ginawa ito ng pag-atake sa isang predefined area hindi sa isang straight line. Technically speaking — ito ay "shoot" sa loob ng isang collider. Ang collider na ito ay binuo mula sa mga primitive, tulad ng mga block sa isang konstruksiyon set, ngunit hindi nakikita sa player. Ito ay nagbibigay-daan sa amin upang gamitin ang mga kasalukuyang logic ng pistol ng laro. Ang isa pang pagkakaiba: walang proyectile flight — ang mga damages ay ibinibigay instantly sa lahat ng tao sa collider sa oras ng pag-atake. Ito ay tulad ng mga sistema na ginagamit sa fighting games at slashers - kami lamang ay adaptado ito para sa aming mga pangangailangan. Ang isang pangunahing detalye: ang collider ay dapat maging mas malaki kaysa sa katotohanan na visual na modelo ng sword. Sa halip, ang mga manlalaro ay humihinto kahit na ang kanilang hits ay nakikita na katotohanan. Kami ay pinamamahala ng effect na ito sa pamamagitan ng isang visual trail - kapag ang sword hits, ito ay nakikita na ito ay humihinto pagkatapos ng isang enerhiya arc. Kapag ang robot ay mas mabilis Dahil dito, natagpuan natin Ang robot ay mag-atake, ngunit ang aming konsepto ay din nangangahulugan para sa isang raider - isang robot na maaaring lumipad at gamitin ang kanyang posisyon sa air sa pag-atake. Sa iba pang mga salita, kailangan nito upang makakuha ng mga enemies sa loob ng air. Sa papel, ang konsepto ay magandang: ang robot ay lumipad sa isang opponent mula sa langit gamit ang physics engine ng laro. Ito ay inaasahan upang makita cool at dinamis. At kami ay naniniwala na ito ay. Paano Sa katunayan, ang targeting ay nagkakaiba ng isang malaking problema. Ang robot ay maglalakbay ng katunayan sa posisyon ng kapangyarihan - ngunit karaniwang lumipad, "lalakbay sa pamamagitan" ng mga ito, at ang hitbox ay mas maliit na upang i-land ang pag-atake kapag ito ay dumating. kahit na sa isang mas mataas na invisible collider, ito ay hindi matatagpuan. Malaki pa rin - ang robot ay lumipad sa pamamagitan ng lupa dahil ito ay naglalakbay Ang physics engine ay hindi dinisenyo para sa ito, lalo na kapag sinynchronize sa pagitan ng ilang player. Magkakaroon ng Ang paglipat sa pamamagitan ng mga wall ay mas karaniwang, kaya ito ay naniniwala bilang isang low-priority na problema sa unang pagkakataon. Nakatanggap namin na may mga setting na maaaring i-fix ang behavior - ngunit hindi. ang napili ng mga taga-hanga: Speed Boost Nagbibigay kami ng robot ng karagdagang ground acceleration — sa pangkalahatan, nagsimula ito na lumabas mas mabilis na may sword. Ito ay tumutulong sa kanya upang makakuha ng mga enemies at land hits kahit na ito ay overshot sa air. Ito ay tumutulong, ngunit pag-play tag sa mga enemies ay pa rin clunky. 2nd iteration: ang larger hit zone Ngunit ang karamihan na kami ay nag-tested, mas karamihan ang robot ay nag-cliped sa pamamagitan ng mga walls at terrain. Kami ay nagsimula na naniniwala ang default physics engine lamang ay hindi matatagpuan sa gawain. Third Iteration (Most Risky): I-rewrite ang Physics Nagsimula kami ng isang custom layer sa itaas ng physics ng laro. Ang robot ay mag-move mula sa punto A sa punto B gamit ang isang kontrolado na algorithm. Ang pangunahing physics ay pa rin dito, ngunit ang pag-detection ng kollision at patching ay ginagamit sa pamamagitan ng code. Pero paano ang mga robots swing swords? Ang aming mga animator ay mga propesyonal sa pag-animate ng makinarya at mga robot - kami ay gumagawa ito sa lahat ng oras. Ang isang designer ng laro ay nagbibigay ng mga instruksyon, at ang mga animator ay lumikha ng robot sa buhay. Ngunit ang isang robot na may isang espada ay isang iba't ibang binata. Pagkatapos ng pag-uusap sa team ng art, natagpuan namin na ang risk ay mas mataas na ito at nangangailangan ng mga animator na ilagay ang mga ideya sa harap. Nag-explore ang iba't ibang mga estilo ng pag-atake: cross-slash, overhead, spinning slash... Ang mga animation ay nakita na mahusay - ngunit hindi lahat ng mga ito ay gumagana para sa gameplay. Kami ay nagsimula na iimpormasyon ang mga ito sa engine at i-test kung paano ang bawat swing ay nakikita mula sa nakaraang (si gumagamit ng isang third-person rear camera). Walang dahilan sa paggawa ng isang epic swing na hindi lamang maaaring makita ang mga manlalaro. Mga Robot Ang mga designer ng laro, mga animator, at mga artista ng VFX ay nakilala ang lahat ng ilang beses. Ang kompleksong animation na ito ay nangangailangan ng malakas na kolaborasyon sa pagitan ng mga departamento. Kami ay din nag-aaral ng iba pang mga laro na may katulad na mekanika ng melee upang makita kung paano sila nagtatrabaho sa mga pag-atake ng sword. Sa katunayan, natagpuan namin ang isang balanced animation na nakikita mechanical, matatagpuan ang gameplay perfectly (a side sweep), at i-tune ang timing. Kahit na ang aming producer ay nag-iisip - siya ay sinimulan ang kanyang sarili na nag-demonstrate ng iba't-ibang swings ng sword upang magbigay ng feedback. Kapag ang animation ay naglalaman ng kanyang buhay Kaya mayroon kaming isang bagong animation at isang bagong hit system - ngunit isang problema ay natagpuan: ang animation ay hindi sinynchronized sa swing hit. sa , kami ay karaniwang bumuo mechanics unang at visual pagkatapos. Sa dito, ang kakayahan ay inihanda ng dalawang parallel na proseso: ang animation at ang "shoot." Just three seconds total, ngunit ang anumang lag sa pagitan ng mga kliyente ay nangangahulugang desync sa pagitan ng dalawang. Mga Robot Ito ay karaniwang nakikita kapag nakita ng mga manlalaro ang isang Sword Unit na lumipad sa kanila - ang swing ay dumating, ngunit ang damages ay dumating pagkatapos. Nag-rework na kami ng animation upang ang swing ay nagsisimula lamang kapag ang "shoot" ay nagsisimula. at kami ay reworked ang shooting logic din: ang aming sword ay hindi lamang isang pistol na nagsimula ng isang burst - ngayon ang bawat pag-atake ay isang single hit, na ang interval ay kontrolado sa pamamagitan ng server. Ito ay nagbibigay-daan sa amin upang i-sync ang animation at i-hit na mas precise. Upang mabawasan ang epekto, natagpuan namin ang bawat swing na naghahatid ng tatlong hits - tulad ng sa anime: ang robot ay mabawasan ng isang beses, ngunit lumabas ng tatlong hits sa 0.1-second intervals. ang final result Pagkatapos ng lahat ng trabaho na ito, natagpuan namin ang isang robot na talagang gumagana sa isang sword. Ang bawat challenge ay iniligtas sa amin upang iniligtas ng mga bagong solusyon - mula sa pag-adaptasyon ng fighting-game-style colliders upang bumuo ng aming sarili na pulse-dash system. Ang paglikha ng sword robot ay nangangailangan ng kolaborasyon sa pagitan ng mga programmers, animator, game designer, at VFX artista. Ngunit kapag ang lahat ay sumali, ito ay lumikha ng isang natatanging karanasan na hindi nakikita sa . Mga Robot Ang SWORD Unit 190 ay hindi lamang naging isang bagong robot - ito ay bumuo ng mga gate para sa melee fighting sa laro. At ngayon na alam namin kung paano maiwasan ang mga challenge na ito, maaari mong makita ang higit pa ng mga robot na pag-aralan ng sword sa hinaharap!