Vi har pratat om alla bubblorna, och labbat i de flesta... utom en.

Relevanta dokument
Universe Engine Rapport

Spel som interaktiva berättelser. Mer teoretiserande!

Detaljbeskrivning av Player

12 principer of agile practice (rörlig)

Eggnappers GDD. High Concept. Genre. Grafisk stil. Features

Spel som interaktiva berättelser

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

1 Kravspecifikation Snake App

C-UPPSATS. Animation för spel

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

openbim Stockholm 22 april 2013 Kraven på BIM är här

Level design. Planering av spelflöde och utmaningar. Level design Daniel Bernhoff Tupplur.com

TDDC74: Projekttitel

Interaktiva applikationer för dator (WPF) och web (Silverlight) Grafisk utvecklingsmiljö. Hela produktioner: design, layout, animationer, skins, etc.

Leveldesign, prov del 1 av 2 Design. Förord. Deadline & Inlämning. Uppgiften

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

Kravspecifikation TDP005 Projekt: Objektorienterat system

Systembeskrivning. Dokumentationen finns tillgänglig på Internet:

Microsoft Expression Blend + Sketch Flow

Skinning and Animation

Probabilistisk logik 1

Linearitet i leveldesignen

Speltitel. Spelidé Sid 1. Funktioner Generella funktioner Sid 1 Spelspecifika funktioner -Sid 1

Systemvetenskap. Spelblog. Game Jams

Spelet i sig är inte avancerat men projektet ställer en del krav på implementationen bland annat:

ÖVERVAKNING AV SQL SERVER

Objektorienterad Programkonstruktion. Föreläsning jan 2017

TDDD92 Artificiell intelligens -- projekt

URVAL AV UTFÖRDA HOBBYPROJEKT

Teknik för avancerade datorspel!

Tillämpad programmering CASE 1: HTML. Ditt namn

Skinning. Ännu fler koordinatsystem att hålla reda på. SUPPLEMENT 2 till "So How Can We Make Them Scream?" 1. Olika metoder för kroppsanimation

SolidWork Composer competence

Inledning ARTIFICIELL INTELLIGENS 729G011 HT 2010

Hur monteras olika modeller/ produkter i samma monteringsflöde?

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Teori / praktik GDI åk 2, HT Föremål. för form

Teknik för avancerade datorspel!

Post Mortem för Get The Treasure!

BACHELOR THESIS. Realistic Character Animation For Games. Rickard Paulsson. Luleå University of Technology

LNU INDIVIDUELLT MJUKVARUUTVECKLINGSPROJEKT. Honey Hunter. Androidspel. Martin Karlsson 1/17/2014

Minnet - begrepp och principer

Användarcentrerad systemdesign

Idag. EDAA35: Utvärdering av programvarusystem. Mål. Innehåll. Kursmoment. Lärare

Att göra spel med Game Maker. Rum. Grundläggande delar. Gamemaker, dagens föreläsning. Programmeringsmodell

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Spelutveckling - Scenegrafer. Scenegrafer Optimeringar Culling

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Planeringsspelets mysterier, del 1

Spelutveckling - Gameplay. Design och produktion

Det ska endast finnas två bilder av samma typ på spelplanen.

Datorrepresentation av vårdriktlinjer

Projekt i verkligheten. Ola Ågren

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Bilden föreställer en komplett CW-tranceiver för 80 m bandet. Pixie 2 heter den och är nyligen byggd av Sture SM7CHX.

Richard Wiik 9/16/2011

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

7. Konstruera Koncept

Grundläggande logik och modellteori

Space Shooter. Projektrapport i kursen Avancerad C/C++ (DVA303) vid Mälardalens Högskola av Lars Lindqvist och Niklas Nolte

Artificiell Intelligens inom datorspel Är det ett seriöst ämne?

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

PRODUCT DEVELOPMENT BASED ON HUMAN BEHAVIOUR. PT Dagen i Skövde

Bridging the gap - state-of-the-art testing research, Explanea, and why you should care

Metoder och verktyg för funktionssäkerhet

TDP005 Projekt: Objektorienterat system

» Industriell ekonomi

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

SONOTOPIA slutrapport

Robust och energieffektiv styrning av tågtrafik

Classes och Interfaces, Objects och References, Initialization

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Gameplay. Föreläsning 6. Logiska, inferens och latterala. Olika typer av utmaningar

Bordsspel som stöd för lärande. Thomas Sundell Vasa / Vanda

Spekulativ exekvering i CPU pipelining

Microsoft Operations Manager 2005

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Blekinge tekniska högskola Sektionen för teknokultur, humaniora och samhällsbyggnad VT09. Soundvolume 2.0. En prototyp för ljuddesign i spel

Principles of subclasses. Objekt-orienterad programmering och design Alex Gerdes, 2018

Labb LABB 15. XML användande i praktiken. Plushögskolan Frågeutveckling inom MSSQL - SU14

Inkapsling (encapsulation)

Skrivtolkad version av telefonintervju med Katarina L Gidlund, professor och digitaliseringsforskare, Mittuniversitetet

Ledarskapsutbildning CISV, kapitel 4, Grupputveckling och grupprocesser Hemsida:

Arv och polymorfism i Java

SPELHUND.Se. Nummer 1 Juni 2018

Subtyping och variance. Objekt-orienterad programmering och design Alex Gerdes, 2018

Självrättande Master Data

Lektion 1: Möt Robo! Områden: Robotteknik, ingenjörsteknik mekanisk design

Programmering B med Visual C

Examensarbete inom M/P/T,grundnivå

729G Artificiell jakt och flockbeteende inom datorspel

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Vi är alla i gruppen väldigt intresserade av spel och vill lära oss mer om hur man skapar ett helt spel från idé till slutprodukt.

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Sex strategier för effektivt lärande

Ämnesområden. Examensarbete inom datavetenskap (1DV41E) Martin Fredriksson

HexaFlip. Kravspecifikation

Objektorienterad programmering

Transkript:

31(55) Vi har pratat om alla bubblorna, och labbat i de flesta... utom en. Fysik Datorgrafik Spelmekanismer AI Animation 31(55)

Spelmotorer och Spelmekanismer Två begrepp förvillande långt från varandra Fysik Datorgrafik Fysik Datorgrafik Spelmekanismer AI Spelmekanismer Animation AI Animation Spelmotorn - alla bubblorna men inte nödvändigtvis allt som finns i dem Spelmekanismer - innersta bubblan. Kan ingå i spelmotor. 32(55)32(55)

Spelmotorer Ser inte de här böckerna perfekta ut? Dessa handlar inte alls om spelmotorer Bara om perifera komponenter. 33(55)33(55)

Spelmotorer och Spelmekanismer Förvånansvärt lite skrivet om båda 2008: "The Case for Research on Game Engine Architecture" 2011 fortfarande första resultat i sökningar. Artiklar och även böcker behandlar bara egna motorn Men en del system och övergripande saker kan man hitta. 34(55)34(55)

Vad ingår i en spelmotor? Enligt Rautenbach: - 3D engine - AI subsystem - Sound engine - Physics engine - Networking engine - Development tools Notera development tools, externa verktygsprogram. Men var är motorn? 35(55)35(55)

Arkitekturtyper: Ad-hoc Modular Directed acyclic graph 36(55)36(55)

Directed acyclic graph architecture: Enda vettiga "modellen" som låter oss bryta isär spelspecifik kod från återanvändbar. Spelspecifikt: Game statemodul NPC updatemodul Dela upp ytterligare i återanvändbart och spelspecifikt: Grafikmodul Level initmodul Inputmodul AI- modul Återanvändbart: Fysikmodul 37(55)37(55)

Plug-in-arkitektur: Din arkitektur kan vara gjord för att underlätta modifikation utifrån Spelmotor Game loop Spelmotor Grafikmodul Fysikmodul Agent-modul Spelspecifikt: Level initmodul Grafikplugin Grafikplugin Fysikplugin NPCplugin Spelarplugin Spelmotor Fysikmodul AI- modul Inputmodul 38(55)38(55)

Spelmekanismer Innersta bubblan, även detta ett område som är stökigt och svårt att beskriva 39(55)39(55)

Spelmekanismer enligt Daley ( Learning ios game programming ) kortfattad översikt över spelmekanismer: Objective Time Lives Health Objects (Keys, Energy Items, Parchment pieces) Doors Weapons Entities Player Inte så generaliserbart men innehåller några korn av sanning 40(55)40(55)

Spelmekanismer enligt Adams ( Fundamentals of Game Design ) Ett kapitel av intresse: Core mechanics Lyckas faktiskt bena ut spelmekanismer till en imponerande nivå och detalj 41(55)41(55)

Spelmekanismer sköter om att - Hantera spelets interna ekonomi - Hålla reda på aktiva utmaningar - Ta emot spelarens handlingar och applicera dem på värden - Bestäm vinst/förlust, dvs kontrollera vinstvillkor - Hantera AI (men är inte det AI-motorns jobb?) - Byta spelläge - Skicka triggers till storytellingmotor Gränsar ofta till andra delar, speciellt UI och AI 42(55)42(55)

Huvudkoncept: resources entities attributes mechanics 43(55)43(55)

Resources: tillgångar som spelaren kan använda för att nå sitt mål. Inkluderar mått som "popularitet" mm Även egenskaper hos spelaren är resurser. Resurser är "mått", inte saker. Det är hur mycket man har. Saker är entities Saker som man har många av kan vara både "entities" och "resources". 44(55)44(55)

Entities: Saker och personer. Skiljer på "simple" and "compound". "Simple" är extremt enkelt, någonting som representeras av ett enda värde. Meningslöst begrepp, specialfall av "compound". "unique entities", finns bara en av. Ofta central i spelet, kan specialkodas som globala variabler. Ex: Bollen i fotbollsspel. 45(55)45(55)

Attributes: Egenskaper hos entities (Variabler i spelarobjekten) Position, hastighet, hälsa... Även minne för AI kan ses som attribut 46(55)46(55)

Mechanics: Regler för hur saker hänger ihop. Global mekanism: gäller alltid. Kan styra när andra mekanismer är aktiva events & processes. Processer startas och fortsätter sedan en tid Relationer mellan entities. Numeric and symbolic relationship. Mekanismer är ofta beteenden. Draken vaktar sina ägg, regel mappas till AI-beteende. 47(55)47(55)

Internal economy: Spel har ofta en intern ekonomi - även actionspel. Actionspel: Hur mycket fiender? Kommer det nya efter hand? Hur mycket ammunition? Balansen viktig del av speldesignen Hit points är en resurs. Hur mycket skada (drain), hur lätt är det att läka (source)? 48(55)48(55)

Ekonomimekanismer sources: spawn points, tillgång till resurs. Production rate, hur mycket hur snabbt? drains: åtgång. Hur mycket ammo går åt? converters: Ändrar en resurs till en annan. Pengar till hit points? (Öl och hamburgare i LPMUD.) traders: egentligen en slags converter Undvik oändliga resurser, oändlig vinst 49(55)49(55)

Ekonomimekanismer Tangible and intangible, materiell och immateriell: Fysisk eller abstrakt räknare. Exempel: Lords Feedback loops, dependencies and deadlocks Resurs A kan behövas för att skapa resurs B, som behövs för C, som behövs för A. Tar någon slut kan hela kedjan ta stopp (deadlock). Se till att bryta deadlocks. sten-stenhuggarhus (Settlers) Om man gör av med startkapitalet i sten så kan man inte starta cykeln senare 50(55)50(55)

Gameplay passive/active challenge Passiva utmaningar: Enkelt, kan vara statiska hinder. Dock kan man vilja ha en trigger som meddelar att utmaningen avklarats. (Skapa nya utmaningar mm.) Aktiva utmaningar: flytta saker, pussla, besegra motståndare: AI, beteenden, kopplingar krävs. Actions och triggers. Mycket triggas av spelarhandlingar och spelarobjektet. 51(55)51(55)

Koppingen spelmotorer - spelmekanismer Spelmotorer kan (bör) stödja händelser Dessa händelser används för triggers, upptäcker måluppfyllelse, ändrar speltillstånd Spelmotorn kan stödja detta mer aktivt. Beskriv händelsesekvenser kompakt, skapa händelselistor på hög nivå, kan vara del av motorn. 52(55)52(55)

Spelmekanismer i flera nivåer. - Låg nivå: Implicita spelmekanismer, givet av geometri, rörelsemöjligheter, enkla verktyg, grundläggande egenskaper, enkel fysik, enkla actionspels-ai. - Medelnivå: Enkla vinstvillkor, AI som hanterar beteenden. Enkel ekonomi. - Hög nivå: Uttalade utmaningar/quests, handlingar, tidssekvenser, komplexa resurskopplingar med produktion, handel och konverteringar. AI som hanterar ekonomi. 53(55)53(55)

Om de olika nivåerna Låg nivå: Motorn behöver bara enkla triggers om ens det. Man tänker knappt på att man skapar dessa. Medelnivå: Även de enklaste spelen behöver vinstvillkor, men det är en mer explicit spelmekanism. Triggers som kan testa om man vinner. Hit points, antal liv, vapen resurser utan komplexa handelsmekanismer, behöver inga speciella hanterare, bara plats i spelarobjekten. Hög nivå: Mer komplexa system för att hantera uppdrag, händelser och tid. Spelmotorn kan hjälpa till, speciellt med att tillhandahålla tidsverktyg och händelselistor. 54(55)54(55)

Slutsatser om spelmotorer och spelmekanismer Spelmotorer har väldigt varierad arkitektur, alla gör på sitt sätt och sneglar inte mycket på andra. Består av en central del för spelloop och spelmekanismer, samt perifera komponenter. Vissa spelmekanismer kan generaliseras och är övergripande. Detekera händelser, intern ekonomi. Representera uppdrag och andra processer, berätta historien i spelet. 55(55)55(55)