Score, Variables, Conditionals in Game Maker (BrickMania 2 of 2) Foundations of Interactive Game Design Professor Jim Whitehead January 30, 2008 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Announcements • www.soe.ucsc.edu/classes/cmps080k/Winter08/ Has syllabus, assignment descriptions, exam days, final exam time, link to gamelog site, links to tool descriptions, and more… • Game club announcement ► ► Meet Thursdays, 2:15pm Conference room A • Go in entrance next to “Express It” • Help for making your Mac dual boot: ► Contact Ian Rickard to arrange help time • [email protected] Game Design Workshops • Game Maker ► ► ► Wednesdays (starting today) 6-8pm Engineering 2, room 180 (Simularium) • Enter on plaza level between E2 and JBE • RPG Maker ► ► ► Wednesdays (starting today) 5-7:15pm Engineering 2, room 280 • 2nd floor, on front of building, on driving circle/Communications end (right side, east end) of the building • Arrive by 6pm to avoid external doors locking • Knock on nearest door to be let in if late… Game Design Workshops • CS 20/C# and XNA Game Studio Express ► ► ► Thursdays, 4:30-7pm Engineering 2, room 399 (third floor, by elevators) Starts this week Upcoming Exams and Assignments • Exam #1: Friday, January 26 ► ► ► ► ► ► Will cover all material in lectures Material from readings also fair game, even if not covered in lecture Will give a list of study questions today Closed book, closed note Bring pencil/pen Arrive early, seating will be tight Potential Exam Topics • As Univ. of California students, you are expected to be able to assess complex material and make judgments concerning its relative importance. • That said, it can be helpful to have some input from the Professor to help focus studying activity. • The following are questions/material that are likely, but not guaranteed to appear on the exam. • Anything covered in class or in the assigned readings may appear, even if not explicitly mentioned today. ► Exception: Test will not cover new material covered in today’s class Potential Exam Topics (2) • Rules, play, culture framework ► ► • Difference between games, toys, play ► • Given an activity, be able to describe why it is a game, toy, or play Know Abt, Costikyan, and Juul game definitions ► Know both the definitions, as well as differences among them ► Understand all six elements of Juul’s definition ► • Know what each category represents Given a game, be able to describe elements of the game that match rules, play, & culture Be able to describe whether an activity is a game according to each definition Know Huizinga and Caillois definitions of play ► ► Understand differences between them Know six elements of Caillois definition Potential Exam Topics (3) • • • • Know the concept of the magic circle Understand the dichotomy of rules as limitations and rules as affordances ► Describe how game rules create the structure of a game Know the seven aspects (qualities) of rules ► • • • Know what an affordance is (p. 57-58 of Juul) On p. 55-56 of Juul Understand the difference between operational, constituative, and implicit rules Understand the concept of a finite state machine Describe the difference between games of emergence and games of progression ► ► Be able to place a game in one or the other category Know the game guide test of progression and emergence (p. 71 Juul) Potential Exam Topics (4) • Game Maker ► ► Know difference between Sprite and Object Know difference between Event and Action • ► Know that events are received by objects, who take action based on them Know what a Room is, and what it can be used for • Know that a room contains objects and backgrounds ► ► Know what a Background is Understand the benefit of inheriting behavior from a parent object • CS 20 students are expected to answer Game Maker questions Potential Exam Topics (5) • Understand difference between gameplay rules and gameworld rules • Temporal aspects of games ► ► ► Know cardinality of gameplay Different types of game exhaustion Know concept of segmentation of gameplay • • Also know different kinds of segmentation (challenge, spatial, temporal, narrative) Should understand that Conway’s game of Life is: ► Different from Milton Bradley game of Life ► Example of emergent behavior from a simple rule set CS 20: Potential Exam Topics • Given an example of C# code, should be able to identify ► Array, property, loop constructs, class definition, method definition, variable definition • Understand meaning of private, protected, public • Given a simple example of C# code, should be able to provide its output ► Including switch, conditionals, properties, foreach, lists, etc. • Should be able to write simple get and set accessor code to create a property • Should be able to write a simple foreach loop • Know difference between value and reference types Let’s create a simple Breakout game • Game elements ► ► ► ► ► ► ► Background Ball Paddle Score Lives 3 brick types Playfield is smaller than screen Score System • Game Maker has a special system for maintaining score ► ► ► Can think of it as a global “score” variable Use Set Score on score tab Typically with a “relative” value to add to current score • Below, if “relative” not clicked, would reset score to 10, instead of adding 10 Displaying Score & Draw Events • Want to display score in lower left corner • Game Maker has a “Draw the Value of Score” action ► But, it can only be used inside a Draw Event • Draw Event ► ► Typically, in each step Game Maker draws the sprite for an object on screen Using a Draw Event, you can specify a different set of drawing commands • Could, for example, draw a halo around your sprite ► Draw Event also used for utility drawing behavior • Such as displaying the high score Create Game State object • To display the current score, want an object that is invisible ► ► ► • So its sprite isn’t affected by score drawing Create a “game state” object Also useful No sprite - invisible for holding number of lives Place in room ► Location doesn’t matter, is invisible Draw event Set color to white (for white on black text) Draw score in lower left of screen Desired Lives Behavior • Player has 3 lives • When ball goes offscreen below paddle, need to subtract one life • Want a nice display of remaining lives • When there are no more lives, display a game over message Lives System • Game Maker has a built-in lives system ► ► ► Similar to score, a built-in global variable Can set number of lives, check number of lives Draw a representation of number of lives • Uses an existing sprite to represent a life • General idea: hearts representing life in Zelda series Displaying Lives • Select “Draw Life Images” and place inside a Draw Event ► Place in Draw Event in Game State object • Has no sprite, don’t need to worry about effect on object’s normal sprite drawing Pick sprite to use for life image (small paddle image) Place in absolute position on screen (upper left) Set Initial Lives • Need to set the initial number of lives ► ► Do this in create event on game state object We do not want to do this on the paddle object • Will be destroying paddle object instances when the ball goes offscreen • Then re-creating paddle for a new ball • Setting lives in the create event on the paddle would cause the lives to be reset to the starting amount each time a ball was lost Ball Going Offscreen • When ball goes offscreen below paddle ► ► Sound effect Decrease lives by one • If no more lives, display “Game Over” • Then, press key to restart game ► ► ► ► ► Visually remove paddle Pause game Create new paddle Create new ball Set ball moving • Check for this by putting a conditional (if … then) in the End Step event ► I.e., check ball’s position every clock tick to ensure is still in-bounds Variables • Variable ► ► ► A named value Can be read: look up the value Can be written: change the value to something new • Examples ► The horizontal location of the player in the room is named “x” • ► The vertical location of the player in the room is named “y” • ► Its value is a number between 0 and the width of the room Its value is a number between 0 and the height of the room Need names to identify the value we want Variables (2) • Full disclosure ► ► There appear to be two kinds of variables Variables defined on object instances • • ► Global variables • • • x and y giving player position are defined on the player object instance Most of the dialog boxes in Game Maker default to instance variables, so don’t have to worry about this point usually We’ll see these in a few slides, things like view information Seem to be able to access these anywhere In Game Maker ► Can set the value of a variable using square “Var” action • • Under “Control” tab in Object window That is, setting a variable is a kind of action – Set a variable in response to an event Conditionals • If .. then behavior • Example ► ► If the player horizontal position is outside the view... Then make sure the player stays inside the view • Conditionals in Game Maker are represented by octagon shapes ► ► Found under “Control” tab Are an action you can take in response to an event • Often want to check condition all the time ► ► Place these in the step event Step event is called every game tick (1/30th of a second) Ball Going Offscreen Logic Conditional: if y > 480 then… Play sound, remove paddle, decrease lives, and sleep Lives < 1 means game over. Create game over message. Destroy ball. Still have lives. Create new paddle. Move ball to starting position. Make ball move up and diagonally. Control Tab Conditional Dialog Box Can check the value of a variable on yourself, or on the other object in a collision, or on any arbitrary object Choices are: larger than equals less than Missing from the Game • The game still needs end-screen logic ► ► Need to count number of bricks When all are gone, go to next screen • Could redraw the same screen • Could create a new room with a new arrangement of bricks • Power-ups ► ► Could have many interesting powerups Multi-ball, bigger paddle, etc.
© Copyright 2026 Paperzz