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