Half-Life 2: amikor egy rendőr lábujja „időutazó” bugot generált!

A Valve játéka mögött van egy kifejezetten érdekes anekdota, és erről az egyik ex-fejlesztőjük számolt be!

 

A Half-Life 2 egyik legmenőbb tulajdonsága a fizikai motorja, de még a legjobb technológia is hajlamos itt-ott furcsa viselkedésre. A Valve legendás narratív lövöldözős játéka sem volt kivétel, ahogyan azt a Valve korábbi fejlesztője, Tom Forsyth a Mastodonon megosztotta. Beszámolt egy bugról, amellyel a Half-Life 2 VR-verziójának fejlesztése során találkozott 2013-ban, amikor a Valve még fontolgatta, hogy milyen irányba szeretne haladni a technológiával. Ez volt az egyik legkönnyebben VR-re átültethető játék a Valve korábbi katalógusában – viszonylag nemrég jelent meg, és a Portal perspektívájával kapcsolatos trükkök természetesen émelyítő katasztrófát okoztak. Ez az új VR-verzió már a játék első perceiben softlockot okozott a játékosoknak.

A nyitó jelenetben, amikor egy metrórendőrnek át kellene kísérnie a játékost egy ajtón, az ajtó a VR-verzióban nem nyílt meg nem tisztázott okokból, így a játékos ott ragadt, és várt egy szükséges történeti eseményre, ami soha nem következett be. Forsyth azt mondta, hogy ezt nem tudják kiadni. Megkérdezett másokat is, köztük néhányat, akik eredetileg a Half-Life 2-n dolgoztak, és még akkor sem működött, ha nem VR-ban voltunk, de senki sem tudta, hogy miért. A csapat hamarosan felfedezte, hogy az ajtó mögött álló őr kissé túl közel állt – a határolókeretének sarka metszi az ajtó nyitási irányát. Így az ajtó kinyílásakor kissé meglökte az őr lábujját, visszapattant, bezárult, majd automatikusan bezáródott.

Áthelyezték az NPC-t és kijavították a hibát, de sokkal hosszabb vizsgálat kellett ahhoz, hogy kiderítsék, miért történt ez egyáltalán; a VR-verzió nem mozgatta az NPC-t, és a csapat még az eredeti verziót is újra lefordította, hogy kiderítse, hogy a hiba átjutott-e az időn, és abban is megvolt-e. A tesztekhez használt fordító alapértelmezésként az újabb SSE utasításkészletet használta ahelyett, hogy az eredeti, az akkori CPU-khoz alapértelmezett x87-et használta volna, amelynek precíziós értékei nagyon változatosak. Annak ellenére, hogy régi kódról volt szó, az új fordító miatt a játék másképp számította ki a fizikát, bár ez rendkívül finom mértékű volt.

Mindkét verzióban az ajtó éppen elég lendületet kap ahhoz, hogy az őrt nagyon kissé elforgassa. Az őr padlóval való súrlódása nem elég ahhoz, hogy ezt megakadályozza, és ő egy apró fokozatot elfordul. Az x87 verzióban ez az apró elfordulás elég ahhoz, hogy a lábujja elmozduljon az útból, az ütközés megoldódik, és az ajtó tovább nyílik. Minden rendben van. Az SSE verzión azonban egy csomó apró pontosság nagyon kissé eltérő, és a padlóval való súrlódás és a tárgyak tömege együttesen azt eredményezi, hogy az őr továbbra is elfordul az ütközés hatására, de most kissé kevesebbet. Így a szimuláció következő képkockáján a lábujja még mindig az ajtó útjában van. Az ajtó nem haladhat át a lábujján, ezért visszapattan, mi pedig ott ragadunk.

Ez egy furcsa, agyafúrt bug, és remekül emlékeztet arra, hogy ezek a dolgok ritkán olyan könnyen megoldhatók mint amire számítani lehet…

Forrás: PCGamer, Mastodon

Spread the love
Avatar photo
Anikó, our news editor and communication manager, is more interested in the business side of the gaming industry. She worked at banks, and she has a vast knowledge of business life. Still, she likes puzzle and story-oriented games, like Sherlock Holmes: Crimes & Punishments, which is her favourite title. She also played The Sims 3, but after accidentally killing a whole sim family, swore not to play it again. (For our office address, email and phone number check out our IMPRESSUM)

theGeek TV