ARCHITECTURE FOR CASUAL GAMES

Similar documents
Game Programming with. presented by Nathan Baur

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)

12/15/2008. All about Game Maker. Integrated Development Environment for 2D games Global idea

Unity Game Development

All Blocks of Scratch

Computing Long Term Plan

Appendix A ACE exam objectives map

Computer Games 2014 Selected Game Engines

3dSprites. v

Table of Contents 1.1. Introduction Installation Quick Start Documentation Asynchronous Configuration 1.4.

IT 201: Information Design Techniques. Review Sheet. A few notes from Professor Wagner s IT 286: Foundations of Game Production Course

Dr. Shahanawaj Ahamad. Dr. S.Ahamad, SWE-423, Unit-04

IAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil

Crossley Fields - Computing Vocabulary

the gamedesigninitiative at cornell university Lecture 12 2D Animation

Flash. Session 4: Importing Assets. Shiny Yang special thanks to Alex Miller

Mudd Adventure. A 3D Raycasting Game. CSEE 4840 Embedded Systems. Project Design 3/27/2014

Index. Angry Birds, 19

Dynamic Animation with Fuse Kit Free!

Windows Movie Maker. Panes (Movie and. Menu Bar. Tool Bar. Monitor. Rewind. Play. Storyboard/Timeline. Playhead. Audio. Microphone Playback

Quick Setup Guide. Date: October 27, Document version: v 1.0.1

IOS PERFORMANCE. Getting the most out of your Games and Apps

Asset List & Content Creation

GET FAMILIAR WITH WINDOWS MOVIE MAKER

Software Development & Education Center. Java Platform, Micro Edition. (Mobile Java)

Movie Maker Tutorial created by Cheryl McKnight

Teaching Kids to Program. Lesson Plan: Catch the Ball

Pong in Unity a basic Intro

Creating and Triggering Animations

Creating a Vertical Shooter Based on; accessed Tuesday 27 th July, 2010

QUICK START GUIDE.

ios Simulator User Guide

//gravity of the game. //speed of the obstacle. //force with which it jumps. //an array to store all the obstacles

Coherent GT for UE4 Artist quick start guide. version 1.0.0

ActionScript package{ 2. import flash.display.movieclip; 3. import flash.events.keyboardevent; 4. import flash.ui.keyboard;

CURRICULUM MAPPING FORM

AN INTRODUCTION TO SCRATCH (2) PROGRAMMING

Basic Waypoints Movement v1.0

5 Programming with Animations

Demo Scene Quick Start

Interactive & Cross-platform development studio

Windows Movie Maker / Microsoft Photo Story Digital Video

Understanding XNA Framework Performance. Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft

the gamedesigninitiative at cornell university Lecture 12 Scene Graphs

2 Development of multimedia applications

2 Development of multimedia applications

Technical Manual Urban Ninja

Space Shooter - Movie Clip and Movement

Creating a Story in Expert Mode

Connecting the ICT Standards with Grade 4 Literacy

COMP : Practical 8 ActionScript II: The If statement and Variables

Game Development for

[Not for Circulation]

WCSD/NUES Educational Technology Animation

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

WHAT S NEW IN QUIZXPRESS 5. Overview of new features in QX5

Add in a new balloon sprite, and a suitable stage backdrop.

1. What is the name of the control unit in Robotics? a. R2D2 b. MSN c. Pilot d. XJ7 e. RCX

SMK SEKSYEN 5,WANGSAMAJU KUALA LUMPUR FORM

INTRO TO COCOS2D. 360iDev 2011

Using Windows MovieMaker pt.1

The Next Step. DPS Adobe Digital Publishing Suite. Apple cofounder Steve Jobs stated in a 1983 speech

Towards a Proximal Resource-based Architecture to Support Augmented Reality Applications. Cynthia Taylor, Joe Pasquale UC San Diego

ios in Practice MANNING BEAR CAHILL Shelter Island

Toon Boom Harmony Essentials 16.0

Making ecards Can Be Fun!

Consolidated High School District Orland Park, Illinois Windows Movie Maker Instruction Guide

Toon Boom Harmony Advanced V15.0

Developing Simulations & Games in Adobe Flash: Challenges & Solutions

PowToon Kaltura MediaSpace Module Quick Start User Guide

Flash CS4 - Lab 3 Introduction to Classes:

Universal Ad Package (UAP)

Appendix A Reference: Built-in Methods

Add the backgrounds. Add the font.

SL-6397 DECUS GAMING MOUSE

Getting Started with Macromedia Flash p. 1 Introducing the Development Environment p. 1 Tools Panel p. 2 Properties Panel p. 2 Timeline p.

Introduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy

8 th Grade Animation Exam Study Guide

PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3

MANAGING MODS Imported mods are located in:..\[steamlibrary]\steamapps\common\purefarming \ PureFarming_Data\StreamingAssets\IMPORTER\mod

Platformer Tutorial Part 9 Andrew Van Beck, 2009

3D Display and Gesture Technology For Scientific Programming

Index. Aditya Ravi Shankar 2017 A. R. Shankar, Pro HTML5 Games, DOI /

Digital Documentaries Premiere Elements 8

STORYTELLING-PowerPoint-Windows Movie Maker 2

IPad Basics at Necessary Knowledge 2017

Chapter 19: Multimedia

Toon Boom Harmony Essentials V15.0

Section 2 - Part A - Setup Start Time End Time Duration Recording Section Overview 0:00 0:33 0:33 Recording Setup Overview 0:33 0:54 0:21 Recording Au

Java FX 2.0. Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden

User Interface. Technology Domain Roadmap & Strategy. 22 February 2010 Scott Weiss, UI Technology Manager

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

The Timeline records the actions in each Frame. It also allows multiple independent images and actions through Layers.

Better UI Makes ugui Better!

Chapter 1- The Blender Interface

Collaborative Room. Introduction This document introduces users to basic system operation procedures using the touch screen.

Assignment 5 Storyboards - Individual Assignment

Tacky Golf Senior Project Write-Up By Robert Crosby

Introduction to Engine Development with Component Based Design. Randy Gaul

Transcription:

ARCHITECTURE FOR CASUAL GAMES How to finish coding a game without despising it. Keith Peters BIT-101 / Wicked Pissah Games

Great Idea! Complete (or not...) Prototype/ Proof of Concept Pain and Suffering Start Coding Complexity Enters

GAME ARCHITECTURE The cure to all your problems. (probably not, but it will help)

FRAMEWORKS & TOOLKITS flixel http://flixel.org PushButton Engine http://pushbuttonengine.com

THREE QUESTIONS Is there a need for Game Architecture? How about Casual Game Architecture? If so, what should it consist of?

Controller Model

Input Model

THE GAME LOOP while(!gameover) { pollinput(); updategame(); renderscreen(); sleep(16); }

INPUT Where is the mouse? Is it up? down? Did it click? Double click? Which keys are down? Which formerly down keys are now up? Which keys were tapped?

UPDATE GAME Input moveleft() Model update() Object update() update() update() Character Item

Domain Driven Design by Eric Evans

RENDER SCREEN Draw everything in the model to the screen.

GAME LOOP SUMMARY Input Update model Render Controller Model View

SO WHAT ABOUT FLASH?

FLASH GAME LOOP Obviously, no while loop, no sleep EnterFrame or Timer

addeventlistener(event.enter_frame, onenterframe); function onenterframe(event:event):void { pollinput(); updategame(); renderscreen(); }

INPUT Built in input events: Keyboard, Mouse, etc. Keyboard Manager? KeyboardManager.keyIsDown(Key.SPACE) Poll for input 30x a second? Or use events?

Polling Events Model Model the shift key is down! the shift key is down! Controller Input Layer is the shift key down? is the shift key down? is the shift key down? Controller Input Layer the shift key is down!

POLLING // do every frame: function pollinput():void { if(keymanager.keyisdown(key.shift)){ model.doublespeed(); } else { model.normalspeed(); } }

EVENTS function onkeydown(event:keyboardevent):void { if(event.keycode == Key.SHIFT){ model.doublespeed(); } } function onkeyup(event:keyboardevent):void { if(event.keycode == Key.SHIFT){ model.normalspeed(); } }

ADDITIONAL INPUT Flash Microphone Camera iphone Accelerometer Touch

RENDERING Sprites and MovieClips: you dont need to re-render every frame. Change position, maybe rotation to match model. Update animation (timeline frame, bitmap sprite sheet)

MODEL Integrate view and model?

Controller View Model render loop update loop Item Item Item Item Item Item (Display Objects) (Data Objects)

Controller View Model update and render loop Item Item Item (Display Objects)

ANEMIC MODEL Model objects with little or no behavior little more than bags of getters and setters Logic implemented outside the model objects.

ship.position.x += ship.velocity.x; ship.position.y += ship.velocity.y; ship.shootbuttondown = inputlayer.shoot; if(ship.canshoot && ship.shootbuttondown) { ship.isshooting = true; } if(ship.isshooting) { ship.canaccelerate = false; }

ship.shootbuttondown = inputlayer.shoot; ship.update(); // in ship.update(): position.x += velocity.x; position.y += velocity.y; if(canshoot && shootbuttondown){ isshooting = true; } if(isshooting){ canaccelerate = false; }

A GAME IS MORE THAN A GAME LOOP

WHAT DOES A GAME NEED? State Machine Scenes and Transitions UI Elements Buttons Menus Text Asset Management Sound / Music Management Level Management Level Editor External Level Definitions Level Chooser

ASOBU GAME TOOLKIT Loosely based on parts of cocos2d for iphone Done: State Machine Scenes and Transitions UI Elements Buttons In Progress: Asset Management Sound / Music Management Level Management External Level Definitions Menus Text

STATE MACHINE: A game is an application. Game play is one small part of that application.

High Score/ Leaderboard Help/ Instructions Level Chooser About/ Credits Game Modes Loading Game Splash Screen Sponsored by Advertisement Intro Main Menu Settings/ Options Sub Menus

STATE MACHINE a model of behavior composed of a finite number of states, transitions between those states, and actions

var director:director = new Director(); addchild(director); director.setscene(new MainMenuScene());

var director:director = new Director(); addchild(director); director.settransitionclass(slidelefttransition); director.setscene(new MainMenuScene());

UI ELEMENTS Usually don t need full component set, but almost always need: a quick and easy way to style and display text text or image based buttons - toggle-able a menu system with layout

ASSETS MANAGEMENT Loading assets Embedding Assets Runtime Shared Library based assets

SOUND MANAGEMENT Similar to asset management but... Ability to play a specific sound by ID Loop a sound Play a sound with a delay Play a sound at a volume Overall volume Mute / unmute

LEVEL MANAGEMENT Load levels as external files Embed levels Tile maps

COMPONENT ORIENTED DESIGN aka Entity Based Design

OBJECT ORIENTED Entity Character GameObject Enemy Player Weapon Vehicle Boss??? Tank

COMPONENT ORIENTED Entity Components Player Enemy Boss Character Character Character Attack Attack Gun Tank Weapon Weapon Vehicle

THAT S ALL. THANKS! www.bit-101.com www.wickedpissahgames.com kp@bit-101.com