A 3D racing game with network support
Team •Jonas Gustafsson •Lin Loi •Fredrik Norén •Michael Sandén •Patrik Sjölin
Upplägg •Demonstration •Implementering –Programöversikt –Nätverk –Bil & Fysik –Terräng –Rekvisita (Träd, Gräs, Buskar..) –Ljussättning & Skuggor –Rök •Avslutning
Demonstration •Kort demonstration av spelet
Vad har vi gjort? •Köpa ett färdigt spel och göra egna kartor? •Köpa in färdiga subsystem –Grafikmotor –Fysikmotor –Nätverkslösning –Partikelsystem –Kartverktyg
Programöversikt Klient GrafikInputGamestateMenyerNätverkResurser Server FysikNätverkGamestate
Bil & Fysik •Körs helt på servern •Rigid Body Dynamics •Kollisioner –Bil – träd –Spatial Data Structure •Styrning –Skicka input till servern –Inte fysiskt korrekt –Viktigare med spelkänsla
Nätverk •Ping (40-90ms) •Protokoll –TCP: Långsamt, säkert –UDP: Snabbt, osäkert •Statebaserat –Lobby, Sync, Race •Servern kör i 30fps –Klient Prediction –Klient Interpolering BytesField 1Message Type 4Local ID 4Sequence Number 1Break 4Steer 4Throttle Klient till Server -paket under Race
Nätverk - Interpolering Utan InterpoleringMed Interpolering
Terräng •Vad är en terräng? –Noder •3 områden –Geometri –Ljussättning –Färgläggning
Geometri & Form •3D-landskap –X, Y och Z-koordinater •Höjdkoordinater •Heightmaps •Filter •Prestanda –Uppdelning av mark –Frustum Culling
Terräng – Generering av geometrin Wireframe utan displacementWireframe med displacement
Ljussättning •Kräver normal för tillhörande yta •Geometrins bidrag •Texturers bidrag •Bumpmapping –Slår samman normaler
Terräng - Ljussättning Utan Bumpmapping Med Bumpmapping
Färgläggning •Täcka hela kartan med en texture? –Prestanda –För mycket jobb för kartskaparen •Repetera samma texture över hela kartan? –För enformigt –Samma typ av mark både på körbana och i skog •Splattmaps
Terräng - Färgläggning Splattmap Resultat
Rekvisita •Träd, Buskar • tals objekt •Kart editor –Randomisering –Colormap
Rekvisita – Bild…
Ljussättning •Phong´s Lighting Model •Ambient – Grundfärg •Diffuse Lighting – Direkt ljuskälla •Specular highlighting – Materialets skinande förmåga •Tar ej hänsyn till om objekt döljer varandra
Diffuse Lighting Utan Diffuse LightingMed Diffuse Lighting
Specular Lighting Utan Specular LightingMed Specular Lighting
Skuggor – Shadow Mapping •Scenen renderas utifrån ljuskällan •Shadow mappen innehåller avståndsvärden
Skuggor – Jämförande bilder Utan skuggor Med skuggor
Rök •Enklare partikelsystem •Billboarding •Partiklarna har olika storlek, rotation livslängd och transparens för ökad realism
Rök – Bild
Avslutning Besök vår hemsida •Vad gick inte bra? –Bugg som påverkar bilduppdateringshastighet –Fysiken är inte helt optimerad •Vad gick bra? –Spelet fungerar, är snyggt och relativt komplett trots tidsbegränsningen