Door Paul Hulsebosch

Redacteur

Far Cry 2: De Dunia-engine

23-08-2008 • 08:56

51

Multipage-opmaak

Van Cryengine naar Dunia

Wie de kans krijgt om Dominic Guay te spreken, die als technical director bij de interne studio van Ubisoft verantwoordelijk is voor de engine die schietspel Far Cry 2 aandrijft, laat dat natuurlijk niet aan zich voorbij gaan.

Ontwikkelaar Crytek was samen met Ubisoft verantwoordelijk voor het eerste deel van Far Cry. De game werd door Crytek gemaakt, op basis van de zelfgebouwde Cryengine. Het huwelijk tussen de uitgever en de ontwikkelaar zou kort na het verschijnen van de shooter stuklopen, waarop Crytek in zee ging met Electronic Arts. Ubisoft hield aan de breuk de naam Far Cry over, en het bedrijf mocht gebruik blijven maken van de in het spel gebruikte technologie. Op basis van de Cryengine heeft het ontwikkelteam van Ubisoft de Dunia-engine gebouwd, waar Far Cry 2 op draait.

*Restjes

De vraag is natuurlijk wat Ubisoft aan de engine heeft toegevoegd en wat er van de Cryengine nog in de code is terug te vinden.
Dominic Guay: "We wilden Far Cry 2 op basis van onze eigen technologie ontwikkelen en wisten dus dat we een geheel nieuwe engine moesten maken. Het is veel moeilijker om een engine van de grond af aan op te bouwen, dan om met een bestaande engine te starten en daar gaandeweg onderdelen van te vervangen. Het is wel mogelijk, maar dan zouden we vanaf het begin tegelijkertijd belangrijke onderdelen als physics en rendering moeten programmeren. Vandaar dat we de Cryengine van Far Cry hebben gebruikt als basis. Dat gaf ons de mogelijkheid om ons steeds volledig te concentreren op één onderdeel, en stuk voor stuk delen van de engine te vervangen. We zijn overigens niet over één nacht ijs gegaan. In april 2005 zijn we aan het project begonnen en we hebben eerst het nodige onderzoek gedaan. We wilden weten wat de mogelijkheden van de Cryengine zijn, wat we wilden bereiken met de Dunia-engine en waar de concurrentie mee bezig was. We wilden vooraf vooral duidelijk hebben hoe we de dag- en nachtcyclus aan zouden pakken en hoe we dynamische belichting in zouden bouwen. We hebben ook goed nagedacht over de bomen en vegetatie in het spel."

Far Cry 2

"Ons onderzoek heeft tot het eind van 2005 geduurd en daarna zijn we gaan programmeren. We hebben tot begin 2007 besteed aan pre-productie, dus aan het ombouwen van de engine. Begin 2007 waren we zover dat de rest van het team met de engine kon gaan werken. We waren absoluut nog niet klaar met ons werk, maar de editors waar de rest van het team het spel mee moet maken waren klaar, dus toen zijn we met de echte productie van de game begonnen. We begonnen alle textures, modellen en animaties te ontwikkelen en gingen de eerste delen van de spelwereld bouwen."

Werkwijze

Was de Cryengine dan zo modulair opgebouwd dat onderdelen zomaar kunnen worden vervangen?
"De oorspronkelijke engine bestond uit een kern waar onderdelen als physics, rendering en animatie aan vasthingen en die onderdelen konden we vrij gemakkelijk loskoppelen en vervangen. Pas toen alle onderdelen waren vervangen zijn we naar de kern gaan kijken. Dat was het moeilijkste stuk om te vervangen, maar het is uiteindelijk goed gelukt. Toen dit was gebeurd kon de rest van het team met de engine aan de slag."

*Vervangen

Welke onderdelen van de Cryengine hebben jullie als eerste vervangen?
"De physics-engine. Met de Cryengine kon de speler bij lange na niet zoveel kapot schieten en opblazen als wij wilden, en dat vinden we zo belangrijk dat we daarmee zijn begonnen. Daarna hebben we het deel van de engine vervangen dat de animaties afhandelt. We hadden binnen Ubisoft al een animatie-engine waar we erg tevreden over waren, en die hebben we ingebouwd in de Far Cry-engine. Toen was het de hoogste tijd om de renderer te vervangen, het deel van de engine dat het beeld naar de monitor stuurt. Vervolgens hebben we de kern vervangen, want om het spel op consoles te kunnen spelen moet het spel dynamisch kunnen laden, iets wat met de oude engine niet mogelijk was. In de loop van 2006 was dat allemaal klaar en toen zijn we gaan kijken naar multiplay. Tegen het einde van 2006 speelden we de eerste potjes Deathmatch."

Far Cry 2

Wat is er nog van de oorspronkelijke Cryengine in Dunia terug te vinden?
"Eigenlijk zitten alleen in de verschillende editors nog wat stukjes code van de Cryengine. De oorspronkelijke editors waren erg goed, maar voor ons te beperkt. We hebben de oorspronkelijke editors behouden en zijn die uit gaan bouwen tot ze konden wat wij wilden. Dat geldt uiteraard voor de editors die we zelf gebruiken. In de editor die we meeleveren met de consoleversies van het spel is wel wat meer tijd gaan zitten."

Vegetatie

Ubisoft maakt ook gebruik van de Havok Physics-engine. Wat doet Havok en wat doet Dunia?
"We gebruiken inderdaad Havok. Eigenlijk laten we Havok alleen de omvang van de driedimensionale objecten bepalen. Alles wat er met die objecten gebeurt, wordt afgehandeld door onze eigen code. Onze eigen code behandelt het vernietigen van voorwerpen en we gebruiken hem ook om de rag doll physics van lichamen, en de bijbehorende animaties af te handelen. We gebruiken Havok dus nauwelijks. Vooral bij het omgaan met vegetatie en bomen is onze eigen code actief. Zoals je weet kun je een tak van een boom afschieten, als je goed weet te mikken, en er kan gras in brand worden gestoken. Mocht de tak al in brand staan, maar het gras eronder niet, dan zal het vuur overslaan zodra de tak op het gras valt. Bovendien hebben we een dynamisch systeem dat bepaalt hoeveel wind er staat. Het effect van de wind is te zien aan het wuivende gras, maar als de wind in kracht toeneemt, ook aan het buigen van de takken van bomen."

Far Cry 2

"Als er veel wind staat zal de tak die je afschiet door de wind worden meegenomen. Zelfs vuur reageert op de wind. In een droge savanne zal het vuur zich met de wind mee verplaatsen. Als de wind draait, wat regelmatig gebeurt, zal het vuur worden terug geblazen naar de omgeving waar al het gras al is verbrand, en het vuur zal uiteindelijk doven. We hebben voor bomen en vegetatie een systeem gemaakt dat procedureel is. Het gedrag is gebaseerd op regels die we vooraf hebben ingevoerd. Gebouwen, die gedeeltelijk kunnen worden vernield, hebben we wel op de traditionele manier gemaakt. Trouwens, ook de belichting, en daarmee de schaduwwerking in het spel, is geheel dynamisch. We hebben dus een dag- en nachtcyclus en alle belichting en alle schaduwen zijn afgeleid van het licht van de zon en de maan. We voegen alleen nog wat extra variatie toe aan schaduwen, met name onder bomen."

Far Cry 2

*Bomen

Jullie hebben bij de ontwikkeling van dit spel een speciale texturetechniek gebruikt. Kun je daar wat over vertellen?
"Het is een techniek die door de grafici in het team is ontwikkeld. Onze grafici en ook onze animators zijn technisch erg goed onderlegd. In de meeste games worden tegenwoordig textures gebruikt met een vrij hoge resolutie. Dat werkt over het algemeen prima, al kost het veel geheugen om al die textures te laden. Toch zijn er beperkingen. Hoge-resolutie textures zien er alleen goed uit vanaf een bepaalde afstand. Als de speler dichtbij komt, wordt het beeld wat wazig. Ontwikkelaars proberen dat te ondervangen door lagen met verschil in detaillering in een texture op te nemen, maar dat lost het probleem slechts gedeeltelijk op. Onze grafici hebben een andere aanpak gekozen. Ook zij maken textures die uit verschillende lagen bestaan, maar de lagen bestaan niet uit steeds uit hetzelfde plaatje met een andere resolutie."

Far Cry 2

"Bij ons bestaat een texture bijvoorbeeld uit een laag die de structuur van het hout weergeeft, met daar bovenop een laag die het kleurverloop weergeeft, gevolgd door nog een aantal lagen met detailinformatie. Vervolgens laten we die textures veel meer met elkaar overlappen dan gebruikelijk is in andere games. Bij ons is een boom niet bekleed met één grote texture, we maken gebruik van een heleboel kleine textures die in elkaar overlopen. Toen we het spel op de consoles konden spelen, bleek deze technologie een groot voordeel te leveren. Het laden van kleine textures kost minder geheugen. Het laten overlappen van de textures vraagt iets meer van de processor, maar geheugen is op een console over het algemeen een groter probleem dan processorkracht."

Playstation 3

Voor de pc-versie van Far Cry 2 gaan jullie uit van Directx 9 en niet van Dx10. Vanwaar deze keuze?
"Toen we begonnen was er helemaal nog geen sprake van Directx 10, dus we zijn altijd uitgegaan van Directx 9. We kregen de eerste details over Dx10 echter vrij vroeg binnen en de eerste Dx10-kaarten ook, bijna anderhalf jaar geleden. We hebben vanaf dat moment één programmeur non-stop op Dx10 gezet en het spel maakt er dus wel degelijk gebruik van. Er is overigens behoorlijk veel verschil tussen de beide versies, het is alsof je voor een ander platform programmeert. Toch wilden we er direct mee aan de slag, al blijkt inmiddels dat het voor Far Cry 2 misschien toch niet zo belangrijk is. Het spel loopt prima op Dx9 en bovendien zijn er niet veel mensen die Vista draaien en een Dx10-kaart hebben. We willen echter meer games maken met de engine, dus we zijn blij dat we Dx10-ondersteuning al hebben ingebouwd. We hebben bij het integreren van de nieuwe application programming interface overigens voor een andere aanpak gekozen dan sommige andere ontwikkelaars. We hebben vooral geprobeerd om de game beter te laten draaien onder de nieuwe versie. Pas toen we dat hadden bereikt gingen we kijken hoe we het spel er onder Dx10 beter uit konden laten zien. We hebben nu wat troeven achter de hand waarvan we onderzoeken of we ze in de uiteindelijke versie van het spel willen stoppen. Er zijn bijvoorbeeld extra shaders, zoals een watershader, en layers voor de schaduwen in het spel, die we misschien nog uitzetten in de eindversie."

Far Cry 2

*Playstation 3

Zijn jullie nog tegen problemen aangelopen bij het programmeren voor de Playstation 3?
"In eerste instantie wisten we het spel vrij snel draaiend te krijgen op de Playstation 3, en nog met een behoorlijk framerate ook. Het leek dus allemaal wel mee te vallen. Dat veranderde echter, toen we de prestatie van het spel wilden verbeteren. Daarbij bleek pas goed hoe lastig het is om met de PS3 te werken. Gelukkig hadden we wat meer tijd dan de teams die de eerste generatie PS3-games hebben gemaakt. Ik kom net uit ons testlab, daar spelen zestien spelers op de PS3 tegen elkaar en dat verloopt probleemloos. Maar het heeft een tijd geduurd voordat we doorhadden hoe we met de Cell-processor om moesten gaan. Op de pc en de Xbox 360 werkt multithreading op een redelijk eenvoudige manier, op de Playstation 3 is dat wel anders. De zeven synergistic processing units die we van de PS3 kunnen gebruiken zijn supersnel in het uitvoeren van sommige taken en slecht in het uitvoeren van andere. Het duurde even voor we doorhadden welke processen we aan de spu's moesten overlaten, en het vergt bovendien veel datamanagement om de juiste processen aan de juiste spu toe te wijzen. Gelukkig hebben we wat mensen in het team die erg goed zijn in dat soort werk."

Far Cry 2

Hoeveel programmeurs werken er aan Far Cry 2?
"We hebben een behoorlijk groot team, alles bij elkaar werken we met ongeveer 45 programmeurs. Een groep van acht verzorgt multiplay op alle platformen, er werken ongeveer acht mensen aan de versie voor de Xbox 360, nog eens acht aan de versie voor de Playstation 3 en een groepje van zes is alleen met de pc-versie bezig. De rest van het team doet van alles en nog wat. Voor elke versie van het spel is iemand anders verantwoordelijk, en het is mijn taak om de drie kemphanen uit elkaar te houden."

TitelFar Cry 2
Box Far Cry 2
PlatformPc, Xbox 360, PS3
OntwikkelaarUbisoft Montréal
UitgeverUbisoft
ReleasedatumHerfst 2008
Far Cry 2 Far Cry 2 Far Cry 2 Far Cry 2 Far Cry 2 Far Cry 2 Far Cry 2

Reacties (51)

51
47
11
3
0
2
Wijzig sortering
Ik heb Far Cry toendertijd met een 9800 pro gespeeld, was toen weggeblazen van de graphics.
Een paar maanden geleden weer eens op m,n pc gezet ( -DEVMODE O-) ), met m,n 8800GT en nondeju, dat zag er opeens Zwaar Gelikt uit zeg.
Jammer dat er niet wat nader over de sys-specs werd ingegaan,dat was toch een heet hangijzer bij Crysis, en bij velen nog wel wat giswerk.
Afgaande op trailers en wat foto,s kan ik alleen maar zeggen: Laat Far Cry II maar komen, en ik doe de telefoon van de haak.
Systeemspecs?
Ubisoft has released the system specs for Far Cry 2. Check 'em out:

Minimum requirements

CPU:

Pentium 4 3.2 Ghz, Pentium D 2.66 Ghz, AMD Athlon 64 3500+ or better

Video card:

NVIDIA 6800 or ATI X1650 or better
Shader Model 3 required
256 Mb of graphic memory

Memory: 1 GB

Media reader: DVD-ROM

Recommended

CPU:

Intel Core 2 Duo Family, AMD 64 X2 5200+, AMD Phenom or better

Video card:

NVIDIA 8600 GTS or better, ATI X1900 or better
512 Mb of graphic memory

Memory: 2 GB

Sound: 5.1 sound card recommended

Media reader:

DVD-ROM

Supported Video cards:

NVIDIA 6800, NVIDIA 7000 series, 8000 series, 9000 series, 200 series. 8800M and 8700M supported for laptops.

ATI X1650 – 1950 series , HD2000 series , HD3000 series , HD4000 series.
Hallo beste Jorian29,

Die waren me ook al bekend hoor, maar zo ging het ook met Crysis.
De minimum eisen van Far Cry II liggen al boven die van Crysis, of is het team van Far Cry gewoon eerlijker?
Ziet er inderdaad erg mooi uit. Sommige plaatjes kunnen zo uit een Natianal Geographics docu komen.
Nu nog cross platform multiplay en ik ga naar de winkel. (kan ik de PS3 overlopers eens aanpakken).
moet zeggen belooft veel. vraag me wel af hoe het in vergelijk met crysis er uit zal zien of in vergelijk met farcry 1. beide heb ik en in beide heeft crytek meegetikt in de engine. qua sys specs denk ik dat het wel goed zit. wat ik wel mis is info over multicore ondersteuning.
Ik denk dat multicore support er wel in zit, de PS3 én de PC hebben daar namelijk ondersteuning voor. Of ze moeten dat alleen in de PS3 versie hebben ingebouwd.

iig wel een vet spel lijkt me :)
De 360 heeft ook een multi-core CPU.
Had die niet 3 single-core CPU's?
zou ook niet uitmaken of er 3 single cores of 1 tripple core in hangt :+
Het spel moet dan nog steeds multie core ondersteunen.
nee een triple core powerpc
YopY bedoelt te zeggen dat er 3 losse CPU's in zitten, en harrald dat er een CPU in zit met 3 cores.
En eindelijk zegt een developper waar we staan met DX10: games die nu aan het uitkomn zijn, zijn veelal begonnen in het pre-DX10 tijdperk, vandaar dus dat er een pak minder games zijn met DX10 support.

De mythe dat 'developpers DX10 slecht vinden' die door Vista-haters in het leven is geroepen valt dus volledig in mekaar :)
Die mythe heb ik nog nooit van gehoord. Veel developers zeiden de afgelopen jaren dat DirectX10 een nog te kleine markt heeft om veel energie in te steken (eigenlijk hetzelfde als ze hierboven zeggen: "Het spel loopt prima op Dx9 en bovendien zijn er niet veel mensen die Vista draaien en een Dx10-kaart hebben.").
Kip-ei-situtatie dus. Maar het begint nu op gang te komen dat Directx10. Dus toch nog maar ff wachten met die Nvidia 280... :)
Onze grafici hebben een andere aanpak gekozen. Ook zij maken textures die uit verschillende lagen bestaan, maar de lagen bestaan niet uit steeds uit hetzelfde plaatje met een andere resolutie. Bij ons bestaat een texture bijvoorbeeld uit een laag die de structuur van het hout weergeeft, met daar bovenop een laag die het kleurverloop weergeeft, gevolgd door nog een aantal lagen met detailinformatie. Vervolgens laten we die textures veel meer met elkaar overlappen dan gebruikelijk is in andere games. Bij ons is een boom niet bekleed met één grote texture, we maken gebruik van een heleboel kleine textures die in elkaar overlopen.
Dit is toch niks nieuws? Klinkt een beetje als alpha splatting. Het enige wat wel nieuw is (zover ik weet) is dat dit nog nooit voor bomen en planten is gebruikt. Tot nu toe ken ik het enkel voor terrain engines. Lijkt me best gaaf want naast dat het idd een kleine memory footprint heeft kan je zeer veel verschillende plantjes maken op deze manier. Dit werkt natuurlijk wel alleen voor natuurlijke objecten zoals planten of stenen.

Kan niet wachten tot dit er is. Zou helemaal gaaf zijn als het via Steam te krijgen is maar ben bang dat ik er weer een stuk plastic voor moet halen in de winkel.
Ik had donderdag de kans kunnen pakken om het zelf te spelen op de Games Convention, alleen was ik dan de halve dag kwijt geweest met in de rij staan :P Maar als ik dit bericht lees wordt dit spel het aanschaffen wel waard, dus nog eventjes wachten :)
Apart dat er toch zoveel problemen zijn met het ontwikkelen voor de PS3. Het lijkt niet verschrikkelijk lastig iets te laten draaien, maar iets goed laten draaien vergt een aardige investering. Ik ben zeer benieuwd naar details wat betreft investering van studio's voor deze post en hoezeer deze investering bijdraagt aan het succes van een titel. Deze details zullen echter waarschijnlijk niet bestaan omdat er teveel factoren zijn die een titel kunnen maken of breken, waardoor deze niet te isoleren is.

[Reactie gewijzigd door JaFFoG op 22 juli 2024 14:18]

Apart dat er toch zoveel problemen zijn met het ontwikkelen voor de PS3. Het lijkt niet verschrikkelijk lastig iets te laten draaien, maar iets goed laten draaien vergt een aardige investering.
Ik weet niet erg veel van het PS3 platform maar als ik dit uit het artikel haal:
De zeven synergistic processing units die we van de PS3 kunnen gebruiken zijn supersnel in het uitvoeren van sommige taken en slecht in het uitvoeren van andere. Het duurde even voor we doorhadden welke processen we aan de spu's moesten overlaten, en het vergt bovendien veel datamanagement om de juiste processen aan de juiste spu toe te wijzen.
... dan schrik ik wel een beetje. Zeker als je al een bestaande engine hebt betekent dit een grote refactoring van je code. Multithreading kan zeer lastig zijn in games maar als je ook nog bestaande code (wat waarschijnlijk door een enorme whizzkid met weinig documentatie is gemaakt) moet gaan verbouwen dan ben je wel even bezig. Een enorme k*tklus.

Ik denk echt dat Sony zich behoorlijk in de vingers heeft gesneden. Vandaag de dag zal er weinig echt dedicated voor de PS3 gemaakt worden. Meeste games worden crossplatform gemaakt (pc,xbox,ps) en dus uiteindelijk ge-port naar de PS3. (Of de game is op basis van een crossplatform engine: id5/u3) De PS3 mag superieur zijn qua hardware in vergelijking met de xbox360; uiteindelijk zal het nooit meer dan een omgebouwde xbox360 game draaien. (Althans in de meeste gevallen).
Zou het andersom zijn: games worden eerst ontwikkeld op de PS3 en daarna ge-port naar andere platforms dan is het helemaal lastig. Ontwikkellen op de PS3 is lastiger dus voordat er uberhaubt iets is ben je al langer bezig. Daarna zal het ombouwen lastiger gaan; de "threading tricks" die je hebt gemaakt voor de ps3 gaan niet meer op en uiteindelijk zal je wellicht dingen moeten schrappen omdat het anders niet performed op de xbox.

Wat natuurlijk wel zou kunnen is dat de PS3 langer mee zal gaan dan de XBox360.

[Reactie gewijzigd door Qreed op 22 juli 2024 14:18]

Het spel loopt prima op Dx9 en bovendien zijn er niet veel mensen die Vista draaien en een Dx10-kaart hebben
Pardon :?

Dit vind ik erg vreemd, er zijn immers genoeg (ik ook) gamer die JUIST Vista draaien om DX10 of 10.1 te kunnen gebruiken.

Daarvoor heb ik immers Vista Geinstalleerd.

[Reactie gewijzigd door Matis op 22 juli 2024 14:18]

idd, ik ook, ik heb wel een dual boot met Xp, maar als je eenmal vista gewent bent wil je toch niet meer terug, het werkt toch wel erg goed allemaal, en ziet er mooi uit, maar dat is weer een andere discussie.
Daarbij lijkt me dit spel leuk om in de singleplayer te spelen, maar online lijkt het me minder, vooral als je ook ziek enzo kunt worden, dat kan na een tijdje misschien wel gaan vervelen.

Maar al met al wil ik deze game zeker! kopen.

Daarbij hoop ik dat ze de nieuwe water shader inzetten, dx10 water ziet er gewoon super gaaf uit met al die golven!

[Reactie gewijzigd door Verwijderd op 22 juli 2024 14:18]

Die gedachte had ik ook al :D
uhm,. vista was toch het best verkochte stukkie software volgens MS en kaarten die dx10 ondersteunen zijn er al. kheb net mijn 4870 binnen en ik ga upgraden naar vista om 1 ding en dat is dx10.
ik hoop dat dit een vergissing is.
het dynamische is allemaal wel leuk enzo maar dat moet allemaal afgehandeld worden op de cpu. die berekeningen zijn klein maar veel wat uitstekend is voor paralelle verwerking echter laat dit nu net iets zijn waar een cpu slecht in is. de cpu is enkel goed voor complexe berekeningen, voor al de rest is het relatief gesproken een heel traag ding. dus ik hoop maar dat ze een acceptabele framerate weten neer te zetten op pc met acceptabele hardware maar ik vrees er wat voor om eerlijk te zijn
Maakt het game nu gebruik van DX10 of slechts in kleine mate?

Op dit item kan niet meer gereageerd worden.