Fall Guys-ontwikkelaar zet game-code per ongeluk online in update

Fall Guys-ontwikkelaar Mediatonic heeft de code van zijn game per ongeluk verspreid in een Steam-update voor het spel. De map FallGuys_client_BackUpThisFolder_ButDontShipItWithYourGame is namelijk meegegaan.

De game is gemaakt met Unity en volgens diens documentatie bevat deze map 'gegevens die nodig zijn om je game te debuggen, inclusief PDB-bestanden met debug-info en C++-code gegenereerd op basis van de scripts'. Ook de managed dlls zijn aanwezig. Pavel Djundik, oprichter van onder andere SteamDB, trok aan de bel over de zaak. Daarna trok Mediatonic de wijzigingen terug.

Hoe gevoelig de informatie is, is niet helemaal zeker. Djundik spreekt van 'de game-code', terwijl een reageerder en vrijwillig KDE-sysadmin stelt dat het 'geen originele broncode is, maar alleen il2cpp-output'. Dat zou nog steeds 'interessanter zijn voor hackers dan direct de .exe- en .dll-bestanden in duiken'. Il2cpp is de intermediate language to C++ en wordt door Unity omgezet in C++, wat daarna weer omgezet wordt in een binary voor een specifiek platform, zoals Windows.

Ook de Nederlandse gameontwikkelaar en Vlambeer-oprichter Rami Ismail beaamt tegenover Tweakers dat de ernst niet helemaal zeker is, maar dat het niet positief kan uitpakken: "Het is lastig te zeggen wat de gevolgen zijn, maar de korte versie is: dit maakt het aanzienlijk makkelijk om uit te vogelen hoe de code in elkaar zit".

Volgens de tijdlijn van SteamDB heeft de update klaargestaan van donderdag tot vrijdag, met een totaal tijdsbestek van 28,5 uur. PC Gamer heeft Mediatonic om een reactie gevraagd, maar die heeft nog niets van zich laten horen.

Fall Guys: Ultimate Knockout is een platformgame en battle royale in een. Maximaal zestig spelers moeten zich een weg banen door allerlei hindernisbanen en minigames, waarbij ze zelf niet van het level moeten vallen en er de mogelijkheid is om anderen tegen te werken of juist met ze samen te werken. Dat laatste zorgt voor een pril bondgenootschap, want er is geen voice- of tekstchat in het spel.

Fall Guys don't ship this folder

Door Mark Hendrikman

Redacteur

15-05-2021 • 13:38

36

Reacties (36)

36
32
15
2
0
4
Wijzig sortering
elk nadeel heeft z'n voordeel: misschien dat er ergens nu wel een scriptje wordt aangepast dat dit soort data niet wordt geëxporteerd of geïmporteerd. Gezien de hoeveelheid games die met unity gemaakt worden en op steam gepublished zou je denken dat ze bij Valve misschien wel eens wat data-validatie laten doen :)
Het triviale reverse compiling van standaard Unity game gamecode is een grote boost geweest voor modding, maar niet echt zo bedoeld door de developers en publishers ... ik hoop niet dat Valve slapende honden wakker maakt voor competetive multiplayer, wat mij totaal niet kan boeien.
Dit was il2cpp code (dat is .net il-code naar c++ omgezet). Het reversen daarvan is wel een stapje verder gaan dan dnSpy gebruiken om naar .net code te kijken. Je kan wel makkelijk naar de classes kijken via bijv. Il2CppDumper (of een soortgelijke tool), maar je ziet niet 'zomaar' de bron code zoals je dat wel met 'native' .net code ziet.
Aan de andere kant, een folder die MyGame_BackUpThisFolder_ButDontShipItWithYourGame heet zou toch best duidelijk moeten zijn voor de developer als je manueel builds zit te pushen.

Of misschien hebben ze hun build en upload pipeline net geautomatiseerd maar dit niet getest :+
Timecrush, moe en blij dat het af is. :X

Ik heb ook wel (dure) fouten gemaakt bij sluiten van het boekjaar. Ik kan me zelf tegenwoordig (die les heb ik wel moeten leren) prima in de spiegel kijken gezien de onmenselijke hoeveelheid orders die er opeens even doorheen werden gedrukt door de organisatie omdat ze 11 maanden met hun duim in hun bips zaten, maar het is natuurlijk wel vervelend.
Als iemand dit toch gaat gebruiken om vals te kunnen spelen in een game zoals Fall Guys dan ben je toch echt mega zielig. Wat is daar nu de lol van?
Geloof me, Fall Guys heeft zoveel cheaters, niet normaal meer.
Dit is toch al lang niet meer? Ze hebben nu een overdreven overkill anti-cheat

Al maanden geen cheater tegengekomen en heb meer dan 50 uur gespeeld
Hebben ze Unity zo ver gekregen dat ze het collider systeem hebben ge-update dan of zo?
Hebben ze de collider threshold aangepast?

Of kan je nog steeds simpeltjes door objecten weg worden geschoten omdat colliders te ver in elkaar zitten en unity één van de twee uitspuugt naar Mars?

Zo lang de colliders in Unity shit zijn worden de games nooit goed.
Hoezo zijn die shit, dit is gedocumenteerd gedrag (vanwege performance) waar je als ontwikkelaar rekening mee kunt houden, in mijn code schieten snelle projectielen echt niet door colliders heen ofzo dit kost wel wat extra werk of een andere setting in je physics die meer performance kost.

Voor zover ik gemerkt heb binnen unity krijg je colliders enkel in elkaar als je updates van positie doet op een rigidbody, wat je dus niet moet doen bij normale verplaatsing omdat het voor de physics een teleport is, echter doen veel programma;s dat wel omdat het veel makkelijker is dan met kracht vectoren te werken.

[Reactie gewijzigd door RobLemmens op 22 juli 2024 16:52]

Het is een tijd geleden dat ik er mee heb gewerkt, wellicht is het verbeterd.
Toen ik een ketting maakte, schaal 1:1 brak die in stukjes bij de geringste load omdat de colliders door elkaar heen schoten...
Voor zover ik weet kan dit dus gewoon niet in Unity, getuige de vele mensen die al verbaasd waren dat ik uberhaubt een schakelketting voor elkaar kreeg.

Ook als je het in de settings verlaagd werkt het niet.
Als dat meer dan n% in elkaar zit spuugt Unity ze de stratosfeer in, dat is algemeen bekend.
En ja, dat is by design omdat er pas een event is als de colliders IN elkaar zitten en niet als ze elkaar raken.
Hoe ver ze in elkaar MOGEN kan je instellen ja maar bij kleine colliders werkt dat niet want de marge is te groot.

De enige manier om Unity physics fatsoenlijk te laten werken is ALLES 10:1 te maken.
Maar goed, de vele clips op Youtube van brekende kettingen en dat soort problemen heb ik zeker gedroomd of ik ben een prutser, dat kan natuurlijk ook nog...
Tja, zeg dat maar gewoon bij elke game.
Dit is inderdaad geen broncode maar meer een soort tussenstap. Het zou behoorlijk lastig zijn om hier iets in aan te passen.
Eigenlijk zou je kunnen spreken over Fail Guys. :+
Maar goed, fouten maken is menselijk, dat is wel weer zo.
Fouten maken is menselijk, maar om het écht te verklooien heb je écht een computer nodig.
Dit spel ziet er geweldig uit!! Veel dank voor de fout, nu ken ik het en ga het spelen!
Niet zo handig om dat te lekken, nu krijg je nog meer last van cheaters.
pdb bestanden kun je gebruiken om .h files te genereren, bv met tools als relyze. .h files geven weer inzicht in hoe de layout van vtables van classes eruit zien en wat de bytes in-memory betekenen. Voor degenen die games reverse engineeren is het handig, maar op een gegeven moment heb je de meeste belangrijke info toch wel boven tafel.
de mechanics zijn om te janken.
Janken van het lachen, samen met vrienden zorgen dit soort ragdoll-games bij mij echt voor spierpijn van het lachen, juist met wonky mechanics.

[Reactie gewijzigd door watercoolertje op 22 juli 2024 16:52]

inderdaad, is gewoon leuke party game. Je moet het ook niet serieus nemen.
Ik speelde het met vrienden in het eerste seizoen en het was echt geweldig.
Toen begon ik het serieus te nemen en won in no time veel kroontjes. Toen was de lol er af.
Het is veel leuker om het gewoon light hearted het te spelen met vrienden.
Heb dit seizoen weer eens paar keer gespeeld en was gewoon gezellig leuk.
Human: fall flat is ook zo'n soort game, een puzzle spel met ragdoll physics. Echt een aanrader!
Die is echt fantastisch ja.
Hoop dat er meer maps voor stadia komen.
Die mechanics zijn juist de kracht van het spel. Ik wacht nog wel ff tot het spel een keer een tientje is oid :P paar keer bij een vriend op de PS gespeeld. Ik vond het fantastisch, wat een stress hahaha

[Reactie gewijzigd door spokje op 22 juli 2024 16:52]

Heeft niks met git te maken, ze hebben het gewoon met de Steam upload tool gepusht zonder te checken.
LOL. Nee. Steam werkt niet met Git. Dit had kunnen voorkomen met een postbuild scriptje voor Unity die de folder ergen anders heen verplaatst.
En toch is bovenstaande foto een screenshot van een git diff achtig iets. Dus onder water kan het best wel eens git zijn die changes bijhoud.
De screenshot is afkomstig van SteamDB, een website gespecialiseerd in het bijhouden van de wijzigingen in de database van Steam. Ook al laat het wijziging zien die lijken op een git diff, Steam zelf hoeft dat niet te gebruiken.

De afkomst van deze screenshot is specifiek de geschiedenis van het depot met gamebestanden van Fall Guys, zoals te vinden op SteamDB.

[Reactie gewijzigd door Obbidobbi op 22 juli 2024 16:52]

Een beetje googlen leert mij dat unity gewoon SCM ondersteuning voor GIT heeft*. Perforce is een mogelijkheid wat goede integratie bied en dat is gewoon git onder water.

Dus vraag me dan wel af wat @ashwin911 bedoelt met "steam werkt niet met GIT"

Plastic SCM is er ook eentje. Souped up versie van git.

Het principe wat @jaenster aandroeg blijft ook daar gewoon van kracht, maar dan via een ignore.conf.

Unity heeft dus wel degelijk SCM op een git achtige manier. Misschien op sommige manieren anders, maar het principe van SCM is wel hetzelfde.

* werkt bijvoorbeeld ook met Subversion als je het echt zou willen. Sws staat het je natuurlijk vrij om zelf een SCM manier te kiezen, maar integratie is natuurlijk wel handig.

[Reactie gewijzigd door supersnathan94 op 22 juli 2024 16:52]

In git sla je sourcecode op, niet de binaries die je shipt. Aangezien je de sourcecode normaal nooit deelt, is het hier fout gegaan in de buildstraat en het pushen van de update naar steam.

Diff is ook totaal niet afhankelijk van git, ook bij bijvoorbeeld SVN en andere sourcecontrol systemen kan je dit gebruiken. Ook zonder sourcecontrol kan je het doen, bijvoorbeeld als je 2 tekst bestanden hebt en je wil zien wat het verschil is. Het is niets meer dan het visualiseren van het verschil tussen bestanden.

Dus nee, Steam werkt niet met git van de developers aangezien zij het niet bouwen. Steam werkt met de aangeleverde deliverables.

[Reactie gewijzigd door MoonRaven op 22 juli 2024 16:52]

Wat ik bedoel is als je een game naar Steam upload gaat dat niet via git of iets dergelijks. Natuurlijk ondersteund Unity version control voor het ontwikkelen van de game, maar dat staat los van de Steam submission pipeline voor je builds. Dus had deze fout niet via SCM voorkomen kunnen worden. En je hoort sowieso je builds buiten version control te houden.

Je upload je build gewoon via een programma genaamd SteamPipe en daar komt SCM helemaal niet aan te pas. hier is een filmpje van hoe het werkt https://www.youtube.com/watch?v=SoNH-v6aU9Q

[Reactie gewijzigd door ashwin911 op 22 juli 2024 16:52]

Mja, dit krijg je als je je mensen uitperst en nergens tijd voor neemt
Heb je hier een bron voor?
Dit soort reacties krijg je als mensen geen idee hebben waar het over gaat maar wel graag een mening denken te moeten hebben...

Op dit item kan niet meer gereageerd worden.