EVE the second genesis - Vísindavefurinn · 2008. 5. 6. · Sims 2 (EA/Maxis 2004 & 2005) •...

Preview:

Citation preview

EVE the second genesis

2001© CCP hf. All rights reserverd.

Hver er ég?

Halldór Fannar Guðjónsson

B.Sc. fræðilegri eðlisfræði, HÍ 1996Starfaði í 9 ár í Kísildalnum í Bandaríkjunum

við gerð tölvuleikja• Atari / Midway• Lightspeed Games• Maxis / Electronic Arts

Núna framkvæmdastjóri forritunardeildar CCP

Upphaf

• Byrjaði að spila leiki 8 ára gamall, árið var 1980

• Vá, það er svakalega langt síðan –hvernig litu leikur út þá?

Asteroids (Atari:1979)

• Höfundur: Ed Logg• Ed hannaði, teiknaði

grafík og forritaði leikinná nokkrum mánuðum

• Einn fyrsti línuteiknaðileikurinn (en já, barasvart/hvítur)

• Árið 1981, þá 9 ára gamall, byrja ég að forrita

• Og læt mig dreyma um að vinna við tölvuleikjagerð þegar ég verð fullorðinn

Mörgum árum síðar ...

Sims 2 (EA/Maxis 2004 & 2005)

• PC útgáfan tók 3,5 ár í þróun (hópurinn var 150 manns í lokin)

• Leikjatölvuútgáfa (PS2, Xbox, GameCube) var gerð á einu ári (100 manns)

• Ég var aðalforritari ígrafík (7 manna hópur)

Asteroids & Sims 2

• Þegar fjölbreytileiki í spilun, grafík og hljóð eru skoðuð þá sést að það er mikilll munur– Ed er góður gæi en gegn herdeild af 100+

sérfræðingum og nútíma vélbúnaði þá er þetta erfið barátta

– Sumir mundu samt halda því fram að Asteroids sé skemmtilegri leikur en Sims, sú umræða verður ekki tekin upp hér ☺

• Uppbygging þessara tveggja leikja er engu að síður hin sama!

HermunInntak /

úttak

Hljóð & Grafík

Svaka svalur leikur

60 sinnum á sekúndu

Hermun?

• Inniheldur venjulega eftirfarandi– Árekstrarskynjun– Árekstrarviðbragð– Eiginleika og hegðun hluta– Gervigreind

• Bæði Asteroids og Sims innihalda alla þessa þætti. Hins vegar mætti afgreiða hvern þessa þátta með nokkrum línum af forritstexta í Asteroids!

Nauðsynlegur búnaður

• Þýðandi og aflúsunarforrit– eða Python• Stundum sérstakur vélbúnaður• Óstjórnleg forvitni

Um CCP

• Stofnað 1997• Hlutafélag í einkaeigu• Höfuðstöðvar í Reykjavík• Stúdíó í Atlanta og Shanghai• Starfsmannafjöldi: 305 forvitnir

EVE Online

Sýnishorn úr EVE

(EVE Never Fades)

Einfalt reikningsdæmi :)

• Í dag eru EVE leikmenn nálægt 300,000

• Þar af eru nálægt 230,000 sem greiða mánaðarlega áskrift

• Áskriftargjald er €15 / $15• … ekki alveg svona einfalt

Athyglisvert en ...

• Hvernig er þetta gert?

Landslagið

Sólkerfi sem samanstanda af plánetum, tunglum og smástirnabelti

Sólkerfi tengjast í gegnum hlið til að mynda stjörnumerki, sem tengjast svo í stærri svæði

EVE samanstendur af 5000sólkerfum

Íbúarnir

• Á mestu álagstímum spila yfir 41,000 manns EVE á sama tíma – allir ísömu veröld.

Vandamál

• Hvernig er hægt að búa til 5000 sólkerfi?

• Hvernig er hægt að reikna út ástand allra hluta (þar á meðal 41,000 spilara) í 5000 sólkerfa veröld?

• Hvernig er hægt að vista þetta ástand?

• Dr. Kjartan P. Emilsson

Sólkerfin

Sólkerfi búin til með disc accretion líkani

Gefur nógu sannfærandi niðurstöður og er fljótlegt

Vegakerfið

Markmið:• Líkja eftir landnámi• Vera strategískt• Vera híearkískt

Vegakerfið

Lausn:

Diffusion Limited Aggregation

Útvíkkað í multi-seed og þrívídd

Hreyfijöfnur

Newtonsk eind í vökva, viðnám stýrist af k og fastur kraftur a

);(2

2

tXFdt

Xdm =

dt

dXka

dt

Xdm −=

2

2

Hreyfijöfnur

Margir kostir:

Er leysanleg:

Án hröðunar ferðast eindin endanlega fjarlægð áður en hún stoppar:

Með föstum krafti, stefnir hraðinn á fasta

00

0)0( vdt

dXandxX

t

===

)1()(

)( /2

00

mktek

kvam

k

atxtX −−

−−+=

mktek

kva

k

atV /0)( −−

−=

k

mvxxd 0

0)( =−∞=

k

av =∞)(

Hreyfijöfnur

itiiii mm RaF 2∂==

itiviscousi k RF ∂=,

∑ −−∇=objectsnearby

rcollisioni

ie2min

2/

,RRF

Árekstrar / Avoidance

* Í viðbót við þetta, eru ólinulegir kúplunarliðir milli einda, sem koma vegna stýringar á skipum (eindum)

Hreyfijöfnur

itiiii mm RaF 2∂==

itiviscousi k RF ∂=,

Takmark:

( )( )( )

−−−

−=

iz

iy

ix

igotoi

yp

yp

xp

v

tanh

tanh

tanh

max,,F

* Í viðbót við þetta, eru ólinulegir kúplunarliðir milli einda, sem koma vegna stýringar á skipum (eindum)

( )[ ]( )( )( )

−−−

+−−−=

iz

iy

ix

jiiijijfollowi

yp

yp

xp

rrdv

tanh

tanh

tanh

tanhmax,,, RRF

Hreyfijöfnur

* Í viðbót við þetta, eru ólinulegir kúplunarliðir milli einda, sem koma vegna stýringar á skipum (eindum)

itiiii mm RaF 2∂==

itiviscousi k RF ∂=,

Kraftur til að elta:

Hreyfijöfnur

Samanlagt höfum við þvíólínulega N-víða og kúplaða diffurjöfnu sem lýsir allri hreyfingu

Hægt að leysa með Runge-Kutta, en líka hægt að leysa fullkomnlega piecewise

itiiii mm RaF 2∂==

0,,,,,2 =++++∂ jfollowigotoicollsioniviscousiitim FFFFR

( )( )( )

( )[ ]( )( )( )

0

tanh

tanh

tanh

tanh

tanh

tanh

tanh

max,max,/2 2

min2

=

−−−

+−−−

−−−

−∇+∂+∂ ∑ −−

iz

iy

ix

jiiiji

iz

iy

ix

i

objectsnearby

ritiiti

yp

yp

xp

rrdv

yp

yp

xp

vekm i RRRR RR

Hólfun (partitioning)

Hólfun Skilgreinum kassahólf af stigvaxandi stærð. Hver kúla á heima í einu hólfi af ákveðnni stærð

Gerir ‘proximity mapping’ að N log N aðgerð í stað N*N

Gerir kleift að skilgreina ‘causality bubbles’

( )( )ttt STfS ←+1 { } ( ) ( )Ntt

Mttt SfSfSSS ⊗⊗←= +++ ΚΚ 0

10

11 ,,verður að:

Árekstrar

Árekstrar Finnum næstu nágranna í þeim hólfum þar sem time extrusion á kúlu lifir

Árekstur skilgreindur sem skurður á tveimum tímasívalningum

Dempuð Newtónsk árekstrarsvörun (varðveisla skriðþunga)

Tímaþróun

Destiny Server leysir allt jöfnukerfið fyrir heilt sólkerfi

Client leysir einungis það ‘causality bubble’ sem hann tilheyrir

Server sendir reglulega uppfærslur áupphafsskilyrðum fyrir ákveðið tímaþrep

Client getur leiðrétt sig til baka til að aðlagast uppfærðum upphafsskilyrðum

Markaður eins og NASDAQ

Skiptum um gír

• Hvernig teiknum við flott geimskip?

Gouraud skygging

• Tölvugrafík hefur lengi vel notað Gouraud skyggingu (shading) – sérstaklega hefur þetta loðað við rauntíma tölvugrafík

Per-vertex vs. Per-pixel

• Gouraud skygging kemur illa út þegar þríhyrningafjöldi er ekki nægur á yfirborði. Lýsingin verður röndótt.

• Per-pixel skygging leyfir útreikning álýsingargildi í hverjum einasta pixel. Fyrst mögulegt með GeForce2 (raunhæft með Xbox og nýlegum PC kortum).

Hvaða per-pixel lýsingu skal nota?

• Í per-pixel dæminu hérna á undan voru normalarnir (ekki lýsingargildin) brúaðir á yfirborði þríhyrningsins og lýsingargildið síðan reiknað út í viðkomandi pixel.

• Til þess að fá ennþá meiri smáatriði í lýsinguna mætti hugsa sér að nota tvívítt yfirborð sem inniheldur gildi ánormal fyrir hvern einasta pixel á þrívíða yfirborðinu sem við erum að teikna.

• Per-pixel lýsingin notar því einhvers konar vörpun fráþrívíða yfirborðinu yfir í Normal yfirborðið til þess að ná ínormalinn fyrir viðkomandi pixel og svo er lýsing framkvæmd eins og áður.

Hvaðan koma gildin á Normal yfirborðinu?

Tvær algengar leiðir til þess að framleiða Normal map:– Útfrá hæðaryfirborði (gráskala mynd)

– Útfrá há-upplausnar hlut.

Vexor geimskip (2.6 milljónir þríhyrninga)

Lágupplausnar módel (3600 þríhyrningar)

Með Normal Map lýsingu

Samantekt

Bætum við áferðina

Útkoman

Sýnishorn

(ship_comparison.wmv & jessica )

Hagnýting vísinda

• Stærðfræði• Eðlisfræði• Tölvunarfræði• Hagfræði• Félagsfræði• Verkfræði• ...

Kröfurnar aukast sífellt

Hagnýting vísinda eykst í beinu hlutfalli við:– Aukningu í reiknigetu örgjörva– Vaxandi kröfur almennings um

“kvikmyndagæði” í leikjum

Recommended