290 likes | 501 Views
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/
E N D
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.0creativecommons.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 • inio@soe.ucsc.edu
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 • Know what each category represents • Given a game, be able to describe elements of the game that match rules, play, & culture • 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 • 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 • Know what an affordance is (p. 57-58 of Juul) • Describe how game rules create the structure of a game • Know the seven aspects (qualities) of rules • 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 issmaller thanscreen
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 for holding number of lives • Place in room • Location doesn’tmatter, is invisible No sprite - 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 Place in absolute position on screen (upper left) Pick sprite to use for life image (small paddle image)
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 namedvalue • 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” • Its value is a number between 0 and the width of the room • The vertical location of the player in the room is named “y” • 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 • 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 • Global variables • 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.
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 thanequalsless 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.