cs 4730 game architecture cs 4730 – computer game design credit: some slide material courtesy...
TRANSCRIPT
![Page 1: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/1.jpg)
CS 4730
Game Architecture
CS 4730 – Computer Game Design
Credit: Some slide material courtesy Walker White (Cornell)
![Page 2: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/2.jpg)
CS 47302
Event-Driven Programming• Consider all the programs you’ve written up to
this point• Did they do anything when the user didn’t ask
for something?• Was there processing in the background?• Or did it mainly respond to user input?
![Page 3: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/3.jpg)
CS 47303
Event-Driven Programming• The event-driven paradigm works great for a lot
of systems– Web (we REALLY want this!)– Mobile– Office apps
• But is this what we want in this class?• Well… maybe if we were only programming
board games…
![Page 4: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/4.jpg)
CS 47304
Event-Driven Gaming• Consider board games• They are, in fact, event-driven in many cases• There are some things that happen “behind the
scenes”– Updating tallies– Shuffling the deck– Deciding the moves of the “bad guys”
• But not all games are like this
![Page 5: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/5.jpg)
CS 47305
The Game Loop
Credit: Walker White
![Page 6: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/6.jpg)
CS 47306
Step 1. Player Input• Remember: player input is one set of variables
that enter our equation to affect game state• Input is typically polled during game loop
– What is the state of the controller?– If no change, do no actions
• However, we can only read input once per game loop cycle
• But good frame rate is short and most events are longer than one frame
![Page 7: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/7.jpg)
CS 47307
Step 2. Process actions• Alter the game state based on your input• We’ve discussed this!• These are the player actions / verbs• However, don’t lock the controller to directly
changing the state!• Place a buffer here – have it call a method
which allows some flexibility in design later
![Page 8: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/8.jpg)
CS 47308
Step 3. Process NPCs• An NPC (Non-Player Character) is anything that has
volition in the world that isn’t you• NPCs take input from the AI engine (maybe!) but not
from a direct controller• Work on the idea of Sense-Think-Act:
– Sense the state of the world around it (how can we “cheat” here to make an NPC “harder”?)
– Think about what action to perform (usually limited choices)
– Act in the world
![Page 9: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/9.jpg)
CS 47309
Step 3. Process NPCs• Problem is sensing is hard!
– What does the NPC need to know?– What is the state of ALL OTHER OBJECTS? UGH.
• Limit sensing? “Cheat?”• Another problem – thinking is hard!
– Can take more than one frame to decide what to do!– Act without thinking?– What if one acts, then the next acts on that action?
• More in AI and Pathfinding!
![Page 10: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/10.jpg)
CS 473010
Step 4. World Processing• Physics!• Lighting!• Collisions!• So much cool stuff!• But later!
![Page 11: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/11.jpg)
CS 473011
Drawing• Well, it needs to be fast!
– We want to do as little computation as possible– Draw ONLY what’s on the screen!
• Keep the drawing and the state modification separate!
• Pretty easy to do in MonoGame
![Page 12: CS 4730 Game Architecture CS 4730 – Computer Game Design Credit: Some slide material courtesy Walker White (Cornell)](https://reader036.vdocuments.mx/reader036/viewer/2022082818/56649f0c5503460f94c1f314/html5/thumbnails/12.jpg)
CS 473012
Architecture Big Picture
Credit: Walker White