Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Typfoutje veroorzaakte raar gedrag van ai in Aliens: Colonial Marines

Aliens: Colonial Marines was een spel zoals veel andere spellen die op films gebaseerd zijn: een matige cashgrab met wat referenties naar de films, die al snel vergeten werd. Veel spelers klaagden over bugs in de ai, maar die blijken jaren later aan een simpel typfoutje gelegen te hebben.

Het typfoutje in kwestie werd vorig jaar ontdekt door een modder die zijn zinnen had gezet op het spel iets minder teleurstellend te maken. Een gebruiker van ResetEra heeft het opnieuw aan het licht gebracht, nu er een aanbieding is waarbij het spel voor drie euro gekocht kan worden.

De bug bestaat uit niet meer dan een typfoutje in het configuratiebestand genaamd PecanEngine.ini. Hierin zit een lijn code met de volgende tekst:
ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTeather

Je hoeft maar een beetje Engels te kunnen om te kunnen zien dat dat laatste woord verkeerd gespeld is en er eigenlijk Tether zou moeten staan. Door dit typfoutje op te lossen, blijken de vijanden plotseling een stuk minder doelloos in de wereld rond te lopen en vallen ze de speler van verschillende hoeken aan. Het blijkt dat door de typfout de vijanden in het spel niet gebruikmaken van een stukje code dat ze tactisch laat rondlopen en gebruik laat maken van hun omgeving om de speler te belagen.

PCGamer heeft enkele video's gemaakt waarin het spel met en zonder de typfout gespeeld wordt. De redacteur claimt dat hij de tegenstanders daadwerkelijk uitdagender vindt om te verslaan, maar ze nog steeds niet geweldig slim vindt.

Naast de typfout heeft modder TemparGFX ook nog vele andere wijzigingen aan het spel doorgevoerd. Het resultaat hiervan is te downloaden op de website van Mod DB. Hopelijk zijn hierbij een groot aantal van de aandachtspunten die Tweakers in zijn review gaf, opgelost.

Door Emile Witteman

Nieuwsposter

14-07-2018 • 11:37

114 Linkedin Google+

Reacties (114)

Wijzig sortering
Huh is dit niet al oud nieuws? Als je naar het artikel zelf gaat van de mod op moddb kan je zien dat ze er in november 2017 achter zijn gekomen.
A new update will be coming soon with this change included, however after getting reports back from several players on how much this effects the game, I just had to post it now

Inside your games config file (My Document\My Games\Aliens Colonial Marines\PecanGame\Config\PecanEngine.ini) is the following line of code :

ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTeather

Im sure you'll notice the spelling mistake

ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTether

If you fix it to look like the above and then play the game, the difference is pretty crazy!

Why is this line important? There are two reasons :
1) AttachXenoToTether doesn't do anything. Its basically empty or stripped
2) AttachPawnToTether does ALOT. It controls tactical position adjustment, patrolling and target zoning

When a Xeno is spawned, it is attached to a zone tether. This zone tells the Xeno what area is its fighting space and where different exits are. In Combat, a Xeno will be forced to switch to a new tether (such as one behind you) so as to flank, or disperse so they aren't so grouped up etc. (*disclaimer* this is inferred opinion, I cant see the actual code only bits)

Whenever the game tried to do this, nothing happened. Now it does!
Ah ja in elk geval leuk dat Tweakers er over bericht en ik kan het iedereen ook zeker aanraden als de game weer in de Steam Sale terecht komt. Dankzij de mod zijn de Xenomorphs ook echt dodelijk en de game is zowaar leuk om te spelen met de mod. De mod fixt ook texture issues enzo.
De game is het waard met de mod?
Ben wel geiinteresseerd.
De game was heel heel slecht beoordeeld bij release maar als de mod een boel fixt?
Deze mod voert ook grafische verbeteringen door. maar hij ziet er nog steeds redelijk gedateerd uit. Met de mod zou ik hem zeker aanraden als hij een keer in de Steam sale zit. Voor 30,- staat hij nu in Steam en dat is te veel voor deze game.
AI was niet het enige probleem, wat je ook zag in die andere filmpjes in de bron. Grafisch was het gewoon een enorme domper tov de eerste beelden die ze toonden, waardoor je niet echt de sfeer van het spel voelde.
Ah ok.
Alien Isolation blijft de norm dus.
Het typfoutje in kwestie werd vorig jaar ontdekt door een modder die zijn zinnen had gezet op het spel iets minder teleurstellend te maken.
Die ''vorig jaar'' is er later bijgezet en stond er vanmorgen nog niet (naar mijn idee dan ;)) waarom zou Tweaker oud nieuws willen brengen? Om zomaar een modder en de ACM community een zetje te geven?
Weekend, zomer, dubbelkomkommertijd. Je kan de keuze nog rechtvaardigen door te stellen dat het nu pas werkelijk 'breed' uitkomt, maar inderdaad, vorig jaar is vorig jaar.
Ach ja ik vond het wel een leuk artikel. Nog nooit eerder van gehoord dus voor mij is het praktisch gewoon nieuws.
De fout is inderdaad vorig jaar al gevonden maar niet echt bekend geworden: De modder heeft de bugfix genoteerd maar er verder geen publiciteit mee gezocht. De fix, en daarmee de fout, is ineens breed onder de aandacht gekomen omdat het spel deze week met 90% korting te krijgen is, waardoor veel meer mensen naar de mod en de lijst met fixes zijn gaan kijken. Toen is deze fix opgemerkt en breed onder de aandacht gekomen, dat is eigenlijk alles.
Dus eigenlijk is het gewoon verkapte reclame om hun kortings actie onder de aandacht te brengen.
Maar een ding op te zeggen, slimme marketing _/-\o_
De site die de kortingsactie geeft heeft de fix niet onder de aandacht gebracht, dus dat lijkt me sterk.
Dat 'vorig jaar' stond er al in toen ik het artikel online zette. Het is inderdaad niet echt nieuw, maar zoals ik ook in de eerste alinea schrijf, is het afgelopen week pas in het nieuws gekomen. Ik heb het dan ook niet als een nieuwsitem gepubliceerd, maar als een .geek: een opvallend artikeltje dat lezers waarschijnlijk wel interessant vinden. En ik hoop dat veel mensen het toch wel leuk vonden om te lezen ;)
En deze fout konden de ontwikkelaars niet zelf vinden na het testen of klagen?
Oftewel ze hebben niet getest en niets gedaan met het geklaag.
Verrot lastig debuggen denk ik. Het spel crasht verder blijkbaar niet dus dan moet je de AI gaan debuggen die waarschijnlijk honderden wel correcte instructies doorloopt op zoek naar die ene foute.
Verrot lastig debuggen denk ik.
Zegt je compiler/debugger niet gewoon dat er een variabele in staat die niet bekend is? Het is onderhand al weer 20 jaar geleden dat ik intensief bezig ben geweest met code schrijven, maar volgens mij haalde mijn C++ compiler toen ook al variabele naar voren die niet gedefinieerd waren...

Ik mag hopen dat in de afgelopen 20 jaar compilers/debuggers slimmer zijn geworden en niet dommer!

Het klinkt eerder als extreem slechte quality control, waar men niet de benodigde tijd en moeite heeft gestoken in controle voor en na release. De Gearbox en SEGA van 5 jaar geleden was imho inderdaad zo een puinhoop.
De IDE was zo slim om "te" te autocompleten naar "teather" (wat in de engine een geldige variabelen is) ipv de bedoelde "tether". Gevolg is dat de boel gewoon compileert, maar het onjuiste gedrag vertoont. Je compiler zal dit niet oppikken.
De fout zat in een.ini file en word dus niet gecompileerd (ga ik vanuit)
Ja maar die ini wordt wel gegenereerd door code, dat gebeurt niet uit het niets, die lijn wordt door de game zelf gemaakt en dus zit er wel degelijk een fout in de code.
Neen er zou geen foutmelding tevoorschijn komen tijdens het compilen. puur omdat het bestand niet deel uitmaakt van je sourcecode.

lees:
in het configuratiebestand genaamd PecanEngine.ini.
ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTeather
De sourcecode zoekt naar key value pairs in het configuratie bestand tijdens runtime
"ClassRemapping" is de key en dat is wat je sourceode gebruikt om te zoeken naar welke value er aan toe te kennen. ( alles achter de ' = ' )

als ClassRemapping fout getypt was dan kon er misschien wel een error optreden tijdens runtime dat de key niet gevonden werd ( alhoewel eigenlijk goede code gewoon een default waarde toekend als een key niet gevonden is )

ach ja heel kort uitgelegd er zijn uitzonderingen natuurlijk.
--

off-topic: intelligentie heeft niets te maken met kleine typfoutjes als deze. iedereen heeft wel eens een mindere dag op werk ;) .

[Reactie gewijzigd door Silversatin op 14 juli 2018 15:49]

Was het niet zo dat Gearbox het geld van Sega gebruikt had voor Borderlands 2 en dat ze deze game uitbesteed hadden? Is nog een zaak om geweest.
Nou, als 1 modder het lukt. Die zal er toch geen maanden mee bezig geweest zijn.
Dat denk ik wel: modders zijn meestal enthousiaster dan betaalde krachten die het slechts voor hun boterham doen. Work of love dus. :)

[Reactie gewijzigd door TimMer op 14 juli 2018 13:42]

Ik denk dat je heel erg onderschat wat nieuwe ogen kan toevoegen. En daarnaast heb je geen idee hoe lang hij erover gedaan heeft om dit te vinden. We zien alleen het eind resultaat.
Mogelijk was hij niet eens specifiek op zoek naar deze bug, maar probeerde gewoon de (werking van de) files te begrijpen.
Als je dan zo'n spelfoutje ontdekt is het gewoon interessant om er verder in te duiken om er achter te komen wat de gevolgen zijn.
dus dan moet je de AI gaan debuggen
Zou het dan niet moeten opvallen dat een cruciaal stukje AI code nooit wordt doorlopen?
Iets onduidelijks opsporen in duizenden/miljoenen regels code valt nog niet mee hoor :p Als je oneindig tijd en geld hebt misschien, anders is het een kwestie van de grootste bugs eruit halen en later zien of je de kleinere/moeilijkere bugs kan oplossen met een patch. Hoe complexer de software hoe moeilijker/onmogelijker het is om alle bugs eruit te halen.
Ik ben geen coder dus heb er ook absoluut geen verstand van.
Maar een tikfout moet toch juist makkelijk op te sporen zijn.
Als je alle opties en datasets kent, kun je toch laten zoeken naar een lap tekst die niet daarmee overeen komt?
Maar dan ga je er al vanuit dat het een dergelijke fout betreft
Sommige tikfouten geven een foutmelding, andere niet, hangt er vanaf. De software weet niet of er een 'teather' bestaat of nog gaat bestaan. Dan wordt het een speld/hooiberg-verhaal. Ga (complexe) software schrijven en dan kom je dat soort dingen al heel snel tegen. :p
Iets onduidelijks opsporen in duizenden/miljoenen regels code valt nog niet mee hoor :p Als je oneindig tijd en geld hebt misschien, anders is het een kwestie van de grootste bugs eruit halen en later zien of je de kleinere/moeilijkere bugs kan oplossen met een patch. Hoe complexer de software hoe moeilijker/onmogelijker het is om alle bugs eruit te halen.
Niemand gaat die miljoenen regels ineens schrijven. Dat groeit over tijd. Kwestie van source code die toegevoegd wordt, verplicht laten reviewen voordat deze naar de hoofd-branch van de source-repository overgebracht mag worden.

Daarmee zou je dit soort spelfouten makkelijk ondervangen.
Je denkt dat er dan geen (spel)foutjes worden gemaakt? Klinkt erg gemakkelijk zo in een complex systeem als een spel :)
Maar ik geloof best dat als je er meer tijd, mankracht en geld instopt, dit soort dingen zouden moeten kunnen verminderen; of het nog rendabel blijft is weer een andere vraag.
Ja en die game software word met de jaren steeds groter, het is inderdaad bijna onmogelijk alle bugs eruit te halen.De spellen worden steeds groter.
Wow.. 6 jaar later is de bug gevonden. Ik snap best dat er een hoop code in zo'n spel zit, maar dat een modder dit vind i.p.v de fabrikant is wel triest.
En dat kennelijk in een tekstbestandje waar zaken uit die engine bepaalt worden.....
Dat doet letterlijk elk andere game ook.

[Reactie gewijzigd door WEBGAMING op 14 juli 2018 20:51]

Ben zelf begonnen met code leren recentelijk en ga er voor studeren (hoewel, niet games). Grappig om te zien dat 1 foutje alles zo kan veranderen. :D
Er is ook eens in de jaren 90 (dacht ik ) een type foutje gemaakt bij een chemisch bedrijf, waarbij de boel ontplofte met grote gevolgen bij het vullen van de tankwagen

[Reactie gewijzigd door KiD_KRiool op 14 juli 2018 11:51]

Er is ook eens in de jaren 90 (dacht ik ) een type foutje gemaakt bij een chemisch bedrijf, waarbij de boel ontplofte met grote gevolgen bij het vullen van de tankwagen
Eigenlijk wordt je er best kriegel van als je ziet wat op het oog simpele software foutjes voor gevolgen kunnen hebben.

Probeer zo ook eens een race-conditie foutje in de firmware van het Therac-25 rontgen-apparaat waardoor mensen aan - ik dacht - meer dan een factor 100 het maximaal toelaatbare aan straling blootgesteld werden voor het maken van 1 foto.

Of het 32-bit vs. 64-bit probleem waardoor uiteindelijk een space-shuttle bij lancering compleet sneuvelde.

[Reactie gewijzigd door R4gnax op 14 juli 2018 20:20]

Typefouten in de broncode schijnen vaker voor te komen.
Civ 6 had er ook last van: http://www.insidegamer.nl...-allesbepalende-typefout/
klopt en soms lang zoeken als het een . ipv , is of visaversa
Als je de PCGamer URL even aanpast dan is hij een stuk leesbaarder op een PC: https://www.pcgamer.com/a...__twitter_impression=true

Het /amp gedeelte in de URL zorgt ervoor dat de hele layout verdwijnt en de plaatjes en filmpjes enorm groot worden weergegeven.
Goede tip, ik heb de url aangepast :)
Zit deze fout ook in de xbox 360 variant van het spel?
Waarschijnlijk, en dat is niet te fixen zonder patch van de developer.
Het zit in DefaultEngine.ini

\Games\Aliens Colonial Marines\PecanGame\Config\DefaultEngine.ini

Echter heb ik hiervan kopieen gemaakt, dus weet niet zeker welk bestand daadwerkelijk gebruikt wordt door game,

ProcessMonitor van TaskList zou daar wat licht op kunnen schijnen. Die mod zit er wel interessant uit, later eens proberen ;)

Heb ze allemaal maar aangepast makkelijker, straks eens even proberen of ik verschil kan merken, zal wel niet, is alweer lang geleden, vond het juist wel interessant dat die beesten maar wat rond hingen en liepen en zo best eng... maar ook wel raar ! ;) :)

[Reactie gewijzigd door GeenOnzinAUB op 14 juli 2018 13:02]

Wel vreemd. 1 van de ontwikkelaars moet dit toch ontworpen hebben? Dan merkt diegene toch ook dat het niet (meer) werkt? Dat valt toch op?
Wordt het spel nu de moeite? Of blijft het de waardeloze rommel zoals het destijds gereviewd werd.

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS HTC U12+ dual sim LG W7 Google Pixel 3 XL OnePlus 6 Battlefield V Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True