(The little gamer) Christian C-Keen Kellermann. FrOSCon s quasiconf the little gamer) FrOSCon /37

Size: px
Start display at page:

Download "(The little gamer) Christian C-Keen Kellermann. 2012-08-26 @ FrOSCon s quasiconf 2012. the little gamer) C-Keen @ FrOSCon 2012 1/37"

Transcription

1 the little gamer) FrOSCon /37 (The little gamer) Christian C-Keen Kellermann FrOSCon s quasiconf 2012

2 the little gamer) FrOSCon /37 Why program games? Definition of game: game noun: an amusement or pastime: children s games. webster s dictionary Games are known to ease learning So why not learn a language and have fun at the same time?

3 First steps ASCII Most programming introductions will tell you how to write text-based games They can get pretty fancy Unless you are a roguelike fan (like I am) or fond of text adventures, this will not hold attention span older machines, like the C64 did better I want pictures So why don t you get graphics in these books? Graphical IO (i.e. modern HW access) is complicated! (the little gamer) FrOSCon /37

4 SDL / GL / Allegro / WTF / BBQ Game engines and frameworks come by the dozen Different entry levels Many programming languages available Too much detail Advanced language features (the little gamer) FrOSCon /37

5 Available frameworks (a small selection) SDL Allegro Processing LÖVE How to design worlds (TeachScheme now!) (Your favourite one is probably missing... ) (the little gamer) FrOSCon /37

6 (the little gamer) FrOSCon /37 SDL This has been used by many many (more or less) popular games Fast, reliable, etc. Very low level Game loop needs to be implemented

7 (the little gamer) FrOSCon /37 Allegro Looks bigger than SDL Featurer complete, huge Supports Joysticks, Gamepads, Storage, Audio Game loop needs to be implemented

8 (the little gamer) FrOSCon /37 Processing Not really for games but visualisations Pseudo C like language + IDE Distribution is easy: Javascript, Java applet Lots of things have to be written from scratch

9 LÖVE Written in LUA Moderately big community Lots of new games Easy to get started Easy to distribute games (the little gamer) FrOSCon /37

10 How to design worlds Not really a game framework but a way of teaching programming Uses Racket as base Very nice emphasis on graphics Get the book for free (CC-BY-NC-SA 3.0) at Usage outside of classes unknown to me The exercises are fun to reprogram if you are bored. ( Why did the chicken cross the road... ) (the little gamer) FrOSCon /37

11 (the little gamer) FrOSCon /37 My favourite: CHICKEN Scheme A practical and portable Scheme system: Mailing lists: chicken-users, chicken-hackers Friendly helpers online: #chicken on freenode Comes with hundreds (> 500) extensions ( eggs ) Easy FFI to C/C++

12 (the little gamer) FrOSCon /37 Your options with CHICKEN Scheme Graphics SDL, OpenGL, GLUT Cairo Graphics Allegro simple-graphics doodle Sound OpenAL libsdlmixer Physics engines Box2D Chipmunk

13 (the little gamer) FrOSCon /37 Doodle My attempt to just open a window for graphics Goal: Find a convenient API / language / method for writing games 2D only Geared at the curious beginner and casual game programmer (like I am) Usable for games and visualisations, graphs, L-Systems, Turtlegraphics... A work in progress, still looking for the golden path...

14 (the little gamer) FrOSCon /37 Example L-Systems (define-l-system grass "F" ( "F" -> "F[+F]F[-F]F")) (draw-system grass 6 x: center-y y: h angle: -90 angle-step: 25.7 step-width: 2) (save-screenshot "grass.png")

15 Example Mouse events (the little gamer) FrOSCon /37

16 Example Tile set (the little gamer) FrOSCon /37

17 (the little gamer) FrOSCon /37 Sprites Not there yet, I am not sure of the API, demo:

18 Basic structure (use doodle) (new-doodle) ;; opens a window (define red ( )) ;; some nice transparent red (filled-circle (/ doodle-width 2) (/ doodle-height 2)) (show!) ;; If you want to save stuff (save-screenshot "circle.png") The easy way for visualisations: open a window draw things show window For games with interaction we have a game loop... (the little gamer) FrOSCon /37

19 (the little gamer) FrOSCon /37 Open the window (new-doodle #!key (width 680) (height 460) (title "Doodle") (background solid-black) (fullscreen #f)) Adjust to your own needs If background is a string, the file by that name will get loaded

20 The world Game loop (new-doodle) (world-inits (lambda ()...)) (world-changes (lambda (events dt exit-continuation)...) (world-ends (lambda ()...) (run-event-loop) Modelled after LÖVE and Processing, thanks! The world has three stages world-inits, world-changes, world-exits You can implement the ones you need Start the game loop with run-event-loop Those are (scheme) parameters, so you can reset them dynamically in the interpreter (the little gamer) FrOSCon /37

21 Drawing primitives Lines Circles Rectangles Text (True Type Fonts) Image blitting (the little gamer) FrOSCon /37

22 the little gamer) FrOSCon /37 An interactive example (use matchable doodle) (define *paint* #f) (define red ( )) (world-changes (lambda (events dt exit) (for-each (lambda (e) (match e (( mouse pressed x y 1) (set! *paint* #t) (filled-circle x y 10 red)) (( mouse released x y 1) (set! *paint* #f)) (( mouse moved x y) (when *paint* (filled-circle x y 10 red))) (( key pressed #\esc) (exit #t)) (else (void)))) events))) (new-doodle title: "Doodle paint" background: solid-white) (run-event-loop)

23 (the little gamer) FrOSCon /37 Beesteroids Heavily influenced by Andy Diver s CL version: https://github.com/andyhd/asteroids Ships, Rockets, Space! Gets unnecessary cruel later in the game Was done in 333 lines of code (sloccount) A tiny portion of the code has to do with actual graphics or sound!

24 Beesteroids Screenshot (the little gamer) FrOSCon /37

25 (Poor) Design Choices No object system is used but regular scheme records All drawable objects are things All things have a velocity and a direction Vectors and points are just lists Things are drawn as polygons, which points are stored and transformed Objects should wrap around the screen when they leave, but only whole objects are drawn (the little gamer) FrOSCon /37

26 the little gamer) FrOSCon /37 The things: Like... a ship (define (make-ship #!key (angle (random 360)) heading (pos center) (radius 30) velocity (speed 0) (thrust 0)) (let* ((h (or heading angle)) (nose (radial-point-from pos radius h)) (left (radial-point-from pos radius (- h 130))) (right (radial-point-from pos radius (+ h 130))) (tail (radial-point-from pos (round (* radius 0.5)) (+ h 180))) (velocity (or velocity (map - (radial-point-from pos speed angle) pos)))) (make-thing ship pos velocity h thrust radius (list nose left tail right))))

27 (the little gamer) FrOSCon /37 Drawing things... ;; Draws a polygon from a list of points (define (draw-poly points) (unless (null? points) (let loop ((ps (cdr points)) (last (car points))) (cond ((null? ps) (line last (car points))) (else (line last (car ps)) (loop (cdr ps) (car ps))))))) ;; This draws the polygon of a thing (define (draw-thing thing) (draw-poly (thing-edges thing)) (when *debugging* (let ((pos (thing-pos thing))) (circle (first pos) (second pos) (* 2 (thing-bounding-radius thing)) ( )) (line pos (map + (map (cut * 100 <>) (thing-velocity thing)) pos))))) ;; Draw all things (define (draw-things. list-of-things) (for-each (lambda (things) (for-each draw-thing things)) list-of-things))

28 (the little gamer) FrOSCon /37 Dodging Bullets: Movement ;; Move one thing around (define (move-thing dt t) (let* ((pos (thing-pos t)) (thrust (* dt (thing-thrust t))) (heading (thing-heading t)) (velocity (thing-velocity t)) (thrust-vec (map - (radial-point-from pos thrust heading) pos)) (scaled-vel (map (cut * 100 <> dt) (map + velocity thrust-vec))) (new-vel (map + velocity thrust-vec))) (thing-pos-set! t (map + pos scaled-vel)) (thing-edges-set! t (map (lambda (e) (map + e scaled-vel)) (thing-edges t))) (thing-velocity-set! t new-vel))) ;; Move objects around (define (move-things time-delta. list-of-things) (for-each (lambda (things) (for-each (lambda (t) (move-thing time-delta t)) things)) list-of-things))

29 (the little gamer) FrOSCon /37 All the things belong somewhere... The world object holds asteroids, bullets, our ship and everything the game rules need. (define-record world paused? level lives score bullets-left shield bullets asteroids ship)

30 (the little gamer) FrOSCon /37 Hits and misses: Collision detection Works on the world, as it influences world state such as lives, score etc. (define (check-collisions world) (let ((bullets (world-bullets world)) (ship (world-ship world)) (asteroids (world-asteroids world))) (cond ((find (cut collides? ship <>) asteroids) => (lambda (a) (if (zero? (world-shield world)) (ship-wrecked) (begin (world-asteroids-set! world (delete a asteroids)) (asteroid-destroyed a)))))) (for-each (lambda (b) (cond ((find (cut collides? b <>) asteroids) => (lambda (a) (world-asteroids-set! world (delete a asteroids)) (world-bullets-set! world (delete b bullets)) (world-bullets-left-set! *w* (add1 (world-bullets-left *w*))) (asteroid-destroyed a))))) bullets)))

31 (the little gamer) FrOSCon /37 Putting it together DEMO!

32 Need it simpler? The simple-graphics extension by Alaric Snell-Pym gives you turtle graphics In a REPL! Easy to save pictures Approved by real children (the little gamer) FrOSCon /37

33 Adding sound OpenAL bindins and SDL mixer bindings available Beesteroids uses sdl-mixer The sdl-mixer extension is an attempt to make the API more scheme like There is one piece of music and there are samples, you can play them all at the same time (open-audio) (set! *thrust-sound* (load-sample "assets/thrusters.wav")) (set! *firing-sound* (load-sample "assets/firing-rocket.wav")) (set! *explosion-sound* (load-sample "assets/explosion.wav")) (set! *background-music* (load-music "assets/myveryowndeadship.ogg")) (play-music *background-music*) (music-finished (lambda () (play-music *background-music*))) ; meanwhile somewhere else... (when (< 0 bullets-left) (play-sample *firing-sound* channel: 2 duration: 1000)) ; much later... (close-audio) the little gamer) FrOSCon /37

34 Lessons learned so far during game sprints I always come back to a OO like model of the world no matter how hard I resist UI handling is not hard but cumbersome I am not there yet (the little gamer) FrOSCon /37

35 (the little gamer) FrOSCon /37 Things I would like to work on in the future Better collision detection support in doodle Direct access to the graphics engine w/o cairo (Optional) integration of sound

36 (the little gamer) FrOSCon /37 What to take home Game programming is easy if your language helps you Programming games in a lisp is fun There are options for evey skill level in CHICKEN Scheme

37 (the little gamer) FrOSCon /37 Where to go from here? Find these slides on the froscon pages or at: More doodle examples on my blog: Grab beesteroids and enhance it, play it, make it your own: $ git clone Flamewars criticisms, thoughts, questions can be directed to me also via C-Keen on IRC (drop by in #chicken on on twitter

Game Programming with DXFramework

Game Programming with DXFramework Game Programming with DXFramework Jonathan Voigt voigtjr@gmail.com University of Michigan Fall 2006 The Big Picture DirectX is a general hardware interface API Goal: Unified interface for different hardware

More information

Discovering new features in HTML5 Offline applications

Discovering new features in HTML5 Offline applications 1 Introducing HTML5 Games Discovering new features in HTML5 Offline applications Discovering new features in CSS3 CSS3 animation The benefit of creating HTML5 games Breaking the boundary of usual browser

More information

Ten easy steps to creating great MicroWorlds EX projects. Steve Robson

Ten easy steps to creating great MicroWorlds EX projects. Steve Robson How do I? Ten easy steps to creating great MicroWorlds EX projects. Steve Robson Contents Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Introduction How do I move the Turtle? How do I

More information

Scheme Slides 101 by Paulo Jorge Matos May 4th, 2006 http://sat.inesc-id.pt/~pocm

Scheme Slides 101 by Paulo Jorge Matos May 4th, 2006 http://sat.inesc-id.pt/~pocm Scheme Slides 101 by Paulo Jorge Matos May 4th, 2006 http://sat.inesc-id.pt/~pocm 1 Scheme Slides 101 by Paulo Jorge Matos May 4th, 2006 http://sat.inesc-id.pt/~pocm Welcome my -friends... Let's get it

More information

MEDIATOR 8 PRO HIGHLIGHTS

MEDIATOR 8 PRO HIGHLIGHTS MEDIATOR 8 PRO HIGHLIGHTS Page Multi-User Editing...2 Vector Drawing Tool...3 Visual Effects...3 Shadow Effect...3 Glow Effect...4 Opacity / Transparency...4 Master Pages...4 Design Tools...5 Rotation...5

More information

Modern PHP Graphics with Cairo. Michael Maclean FrOSCon 2011

Modern PHP Graphics with Cairo. Michael Maclean FrOSCon 2011 Modern PHP Graphics with Cairo Michael Maclean FrOSCon 2011 Who am I? PHP developer for a number of years Working on some PECL extensions Mainly graphics extensions What is Cairo? It's a vector graphics

More information

An evaluation of JavaFX as 2D game creation tool

An evaluation of JavaFX as 2D game creation tool An evaluation of JavaFX as 2D game creation tool Abstract With the current growth in the user experience,and the existence of multiple publishing platforms, the investigation of new game creation tools

More information

U.Rahamathunnisa 1, S. Pragadeeswaran 2 *Assistant Professor, SITE, VIT University, Vellore. **MS(SE) Student, SITE, VIT University, Vellore.

U.Rahamathunnisa 1, S. Pragadeeswaran 2 *Assistant Professor, SITE, VIT University, Vellore. **MS(SE) Student, SITE, VIT University, Vellore. COLLISION DETECTION GAME USING COCOS2DX-A CROSS PLATFORM U.Rahamathunnisa 1, S. Pragadeeswaran 2 *Assistant Professor, SITE, VIT University, Vellore. **MS(SE) Student, SITE, VIT University, Vellore. Abstract

More information

A little code goes a long way Cross-platform game development with Lua. Ivan Beliy, Software Engineer

A little code goes a long way Cross-platform game development with Lua. Ivan Beliy, Software Engineer A little code goes a long way Cross-platform game development with Lua Ivan Beliy, Software Engineer 9/25/14 Marmalade. Trademarks belong to their respective owners. All rights reserved. 1 A bit of History!

More information

Goal: Let s create Pong!

Goal: Let s create Pong! Goal: Let s create Pong! About! Pong is one of the first computer games ever created. It is a simple game that involves a ball and a paddle. The goal is to use your paddle, which you control by sliding

More information

Beginning Android 4. Games Development. Mario Zechner. Robert Green

Beginning Android 4. Games Development. Mario Zechner. Robert Green Beginning Android 4 Games Development Mario Zechner Robert Green Contents Contents at a Glance About the Authors Acknowledgments Introduction iv xii xiii xiv Chapter 1: Android, the New Kid on the Block...

More information

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build

More information

CS 378: Computer Game Technology

CS 378: Computer Game Technology CS 378: Computer Game Technology http://www.cs.utexas.edu/~fussell/courses/cs378/ Spring 2013 University of Texas at Austin CS 378 Game Technology Don Fussell Instructor and TAs! Instructor: Don Fussell!

More information

SECOND EDITION. HTML5 Canvas. Steve Fulton and Jeff Fulton. Koin. Sebastopol. Tokyo. Beijing. Farnham. Cambridge

SECOND EDITION. HTML5 Canvas. Steve Fulton and Jeff Fulton. Koin. Sebastopol. Tokyo. Beijing. Farnham. Cambridge Koin Sebastopol SECOND EDITION HTML5 Canvas Steve Fulton and Jeff Fulton Beijing Cambridge Farnham Tokyo Table of Contents Preface xv 1. Introduction to HTML5 Canvas 1 What Is HTML5? 2 The Basic HTML5

More information

Visualizing Data: Scalable Interactivity

Visualizing Data: Scalable Interactivity Visualizing Data: Scalable Interactivity The best data visualizations illustrate hidden information and structure contained in a data set. As access to large data sets has grown, so has the need for interactive

More information

Tutorial: Creating Platform Games

Tutorial: Creating Platform Games Tutorial: Creating Platform Games Copyright 2003, Mark Overmars Last changed: March 30, 2003 Uses: version 5.0, advanced mode Level: Intermediate Platform games are very common, in particular on devices

More information

The very basic basics of PowerPoint XP

The very basic basics of PowerPoint XP The very basic basics of PowerPoint XP TO START The above window automatically shows when you first start PowerPoint. At this point, there are several options to consider when you start: 1) Do you want

More information

Graphics and Graphical User Interfaces (part 1)

Graphics and Graphical User Interfaces (part 1) Caltech/LEAD Summer 2012 Computer Science Lecture 11: July 18, 2012 Graphics and Graphical User Interfaces (part 1) Graphics This lecture Graphical user interfaces (GUIs) Event handling and event loops

More information

Fruit Machine. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code

Fruit Machine. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code Introduction: This is a game that has three sprites that change costume. You have to stop them when they re showing the same picture (like a fruit machine!). Activity Checklist Follow these INSTRUCTIONS

More information

Farm. Miguel Yanez, Prachi Shukla and Shruti Ramesh {may2114,

Farm. Miguel Yanez, Prachi Shukla and Shruti Ramesh {may2114, Eskimo @ Farm Miguel Yanez, Prachi Shukla and Shruti Ramesh {may2114, ps2829,sr3155}@columbia.edu Overview: Eskimo @ Farm is a single player, side scrolling, shoot em up game. It follows the adventures

More information

User Guide 14 November 2015 Copyright GMO-Z.com Forex HK Limited All rights reserved.

User Guide 14 November 2015 Copyright GMO-Z.com Forex HK Limited All rights reserved. User Guide 14 November 2015 Copyright GMO-Z.com Forex HK Limited All rights reserved. Table of Contents Section ONE: Layout I. General View II. Quotes List III. Chart Window Section TWO: Drawing Tools

More information

PowerPoint 2010 Tips

PowerPoint 2010 Tips PowerPoint 2010 Tips CONTENTS Creating a New Presentation... 2 Setting Video Quality... 2 Setting Resolution for the Show... 2 Setting Photo Resolution... 2 Setting up a Slide Master... 2 Building a Slide

More information

Index. 2D arrays, 210

Index. 2D arrays, 210 Index 2D arrays, 210 A ActionScript 2 (AS2), 6-7 ActionScript 3.0 (AS3), 6-7 Adobe Flash Platform Distribution service, 579 Adobe Flash Platform Shibuya service, 579 Adobe Flash Platform Social service,

More information

The Basics of Robot Mazes Teacher Notes

The Basics of Robot Mazes Teacher Notes The Basics of Robot Mazes Teacher Notes Why do robots solve Mazes? A maze is a simple environment with simple rules. Solving it is a task that beginners can do successfully while learning the essentials

More information

Board Games They are adaptations of classic board games. Examples of board games include Chess, Checkers, Backgammon, Scrabble and Monopoly.

Board Games They are adaptations of classic board games. Examples of board games include Chess, Checkers, Backgammon, Scrabble and Monopoly. Computer Games Computer games are programs that enable a player to interact with a virtual game environment for entertainment and fun. There are many types of computer games available, ranging from traditional

More information

Instructions. To run the slideshow:

Instructions. To run the slideshow: Instructions To run the slideshow: Click: view full screen mode, or press Ctrl +L. Left click advances one slide, right click returns to previous slide. To exit the slideshow press the Esc key. Monkey

More information

Triggers & Actions 10

Triggers & Actions 10 Triggers & Actions 10 CHAPTER Introduction Triggers and actions are the building blocks that you can use to create interactivity and custom features. Once you understand how these building blocks work,

More information

Finger Paint: Cross-platform Augmented Reality

Finger Paint: Cross-platform Augmented Reality Finger Paint: Cross-platform Augmented Reality Samuel Grant Dawson Williams October 15, 2010 Abstract Finger Paint is a cross-platform augmented reality application built using Dream+ARToolKit. A set of

More information

LibGDX játék fejlesztése és publikálása Google Play-en. Vörös Viktor, NNG

LibGDX játék fejlesztése és publikálása Google Play-en. Vörös Viktor, NNG LibGDX játék fejlesztése és publikálása Google Play-en Vörös Viktor, NNG Outline 1. Cross-platform játékfejlesztés LibGDX használatával 2. Kihívások a. különböző képernyőméretek kezelése b. irányítás c.

More information

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps Introduction Computer stuff Pixels Line Drawing Video Game World 2D 3D Puzzle Characters Camera Time steps Geometry Polygons Linear Algebra NURBS, Subdivision surfaces, etc Movement Collisions Fast Distances

More information

PowerPoint Help Sheet (for Windows) Mike Blum

PowerPoint Help Sheet (for Windows) Mike Blum PowerPoint Help Sheet (for Windows) Mike Blum The Basics: Creating a PowerPoint document is easy. At the Windows Desktop, start by opening Microsoft PowerPoint: START > PROGRAMS > MICROSOFT POWERPOINT.

More information

Collecting and displaying data

Collecting and displaying data 5 Collecting and displaying data VV Decide which data would be relevant to an enquiry and collect and organise the data. VV Design and use a data collection sheet or questionnaire for a simple survey.

More information

Building Blocks Artist Driven Procedural Buildings. James Golding - Epic Games

Building Blocks Artist Driven Procedural Buildings. James Golding - Epic Games Building Blocks Artist Driven Procedural Buildings James Golding - Epic Games Who Am I Started as Field Engineer at MathEngine Oxford, UK 1999-2003 Senior Programmer at Epic Games Raleigh, NC, USA Worked

More information

PowerPoint 102. For more information on the Library and programs, visit BCPLS 5/5/2010 PEMA

PowerPoint 102. For more information on the Library and programs, visit  BCPLS 5/5/2010 PEMA PowerPoint 102 Once you are comfortable with the basic parts of PowerPoint, the next step is to figure out how the more advanced tasks can be accomplished. Microsoft PowerPoint can be set up to run automatically,

More information

#include Gamer gamer; void setup() { gamer.begin(); } void loop() {

#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() { #include Gamer gamer; void setup() { gamer.begin(); void loop() { Gamer Keywords Inputs Board Pin Out Library Instead of trying to find out which input is plugged into which pin, you can use

More information

Getting started with PowerPoint 2010

Getting started with PowerPoint 2010 Getting started with PowerPoint 2010 This document is a brief introduction to PowerPoint 2010. For help with using the Office 2010 interface, see Getting Started with Microsoft Office 2010. Creating a

More information

Java Community Process and Embedded Java User Interface

Java Community Process and Embedded Java User Interface Java Community Process and Embedded Java User Interface IBM WebSphere Device Developer Runtimes Architect pmuellr@acm.org This paper is presented as a position paper for the OOPSLA 2003 Workshop on Pervasive

More information

PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms

PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms PROG0101 FUNDAMENTALS OF PROGRAMMING Chapter 3 1 Introduction to A sequence of instructions. A procedure or formula for solving a problem. It was created mathematician, Mohammed ibn-musa al-khwarizmi.

More information

Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent to the company owning

Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent to the company owning 1 Description of a typical M2M chain: An asset is a machine which needs to communicate over the net, without human operator intervention. There can be one or many assets; one of them used as a network

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

START TEACHER'S GUIDE

START TEACHER'S GUIDE START TEACHER'S GUIDE Introduction A complete summary of the GAME:IT Junior curriculum. Welcome to STEM Fuse's GAME:IT Junior Course Whether GAME:IT Junior is being taught as an introductory technology

More information

CS 325 Computer Graphics

CS 325 Computer Graphics CS 325 Computer Graphics 01 / 25 / 2016 Instructor: Michael Eckmann Today s Topics Review the syllabus Review course policies Color CIE system chromaticity diagram color gamut, complementary colors, dominant

More information

C# and Other Languages

C# and Other Languages C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List

More information

Physics 11 Fall 2012 Practice Problems 4 - Solutions

Physics 11 Fall 2012 Practice Problems 4 - Solutions Physics 11 Fall 01 Practice Problems 4 - s 1. Under what conditions can all the initial kinetic energy of an isolated system consisting of two colliding objects be lost in a collision? Explain how this

More information

Experiences with 2-D and 3-D Mathematical Plots on the Java Platform

Experiences with 2-D and 3-D Mathematical Plots on the Java Platform Experiences with 2-D and 3-D Mathematical Plots on the Java Platform David Clayworth Maplesoft What you will learn > Techniques for writing software that plots mathematical and scientific data > How to

More information

Getting Started with WebSite Tonight

Getting Started with WebSite Tonight Getting Started with WebSite Tonight WebSite Tonight Getting Started Guide Version 3.0 (12.2010) Copyright 2010. All rights reserved. Distribution of this work or derivative of this work is prohibited

More information

GEOMETRY CIRCLING THE BASES

GEOMETRY CIRCLING THE BASES LESSON 3: PRE-VISIT - PERIMETER AND AREA OBJECTIVE: Students will be able to: Distinguish between area and perimeter. Calculate the perimeter of a polygon whose side lengths are given or can be determined.

More information

Getting Started in Tinkercad

Getting Started in Tinkercad Getting Started in Tinkercad By Bonnie Roskes, 3DVinci Tinkercad is a fun, easy to use, web-based 3D design application. You don t need any design experience - Tinkercad can be used by anyone. In fact,

More information

Kathy Au Billy Yi Fan Zhou Department of Electrical and Computer Engineering University of Toronto { kathy.au, billy.zhou }@utoronto.

Kathy Au Billy Yi Fan Zhou Department of Electrical and Computer Engineering University of Toronto { kathy.au, billy.zhou }@utoronto. ECE1778 Project Report Kathy Au Billy Yi Fan Zhou Department of Electrical and Computer Engineering University of Toronto { kathy.au, billy.zhou }@utoronto.ca Executive Summary The goal of this project

More information

Creating Maze Games. Game Maker Tutorial. The Game Idea. A Simple Start. Written by Mark Overmars

Creating Maze Games. Game Maker Tutorial. The Game Idea. A Simple Start. Written by Mark Overmars Game Maker Tutorial Creating Maze Games Written by Mark Overmars Copyright 2007-2009 YoYo Games Ltd Last changed: December 23, 2009 Uses: Game Maker 8.0, Lite or Pro Edition, Advanced Mode Level: Beginner

More information

TouchDevelop Curriculum

TouchDevelop Curriculum TouchDevelop Curriculum "I thought programming would have been really hard, but this wasn t. (Darren, 14 year old high school student) Table of Contents Foreword... 3 Session 1 Creating your first application...

More information

Mobile Game and App Development the Easy Way

Mobile Game and App Development the Easy Way Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected

More information

IE Class Web Design Curriculum

IE Class Web Design Curriculum Course Outline Web Technologies 130.279 IE Class Web Design Curriculum Unit 1: Foundations s The Foundation lessons will provide students with a general understanding of computers, how the internet works,

More information

Env3D: A Very Simple Java Gaming Engine for CS 1

Env3D: A Very Simple Java Gaming Engine for CS 1 Env3D: A Very Simple Java Gaming Engine for CS 1 Jason Madar Capilano College jmadar@capcollege.bc.ca Introduction 3D gaming is becoming very popular, and students are exposed to interactive 3D virtual

More information

Planning for Learning - Record of Validation

Planning for Learning - Record of Validation Children s University Planning for Learning - Record of Validation Part A To be completed by the Learning Destination provider prior to the visit / conversation Name of Learning Destination Lead Person

More information

CS 480/680: GAME ENGINE PROGRAMMING GRAPHICS: 2D AND 3D RENDERING

CS 480/680: GAME ENGINE PROGRAMMING GRAPHICS: 2D AND 3D RENDERING CS 480/680: GAME ENGINE PROGRAMMING GRAPHICS: 2D AND 3D RENDERING 1/24/2013 Santiago Ontañón santi@cs.drexel.edu https://www.cs.drexel.edu/~santi/teaching/2013/cs480-680/intro.html Outline Student Presentations

More information

Java game programming. Game engines. Fayolle Pierre-Alain

Java game programming. Game engines. Fayolle Pierre-Alain Java game programming Game engines 2010 Fayolle Pierre-Alain Plan Some definitions List of (Java) game engines Examples of game engines and their use A first and simple definition A game engine is a (complex)

More information

The Design and Implementation of an Android Game: Foxes and Chickens

The Design and Implementation of an Android Game: Foxes and Chickens Vol.3, Issue.2, March-April. 2013 pp-1129-1134 ISSN: 2249-6645 The Design and Implementation of an Android Game: Foxes and Chickens Justin R. Martinez, 1 Wenbin Luo 2 12 Engineering Department, St. Mary's

More information

TeachingEnglish Lesson plans. Kim s blog

TeachingEnglish Lesson plans. Kim s blog Worksheets - Socialising (3): Social networking TeachingEnglish Lesson plans Previous post Posted Friday, 25 th November by Kim Kim s blog Next post What I learned about social networking I used to think

More information

Developing multi-platform mobile applications: doing it right. Mihail Ivanchev

Developing multi-platform mobile applications: doing it right. Mihail Ivanchev Developing multi-platform mobile applications: doing it right Mihail Ivanchev Outline Significance of multi-platform support Recommend application architecture Web-based application frameworks Game development

More information

Outline. 1.! Development Platforms for Multimedia Programming!

Outline. 1.! Development Platforms for Multimedia Programming! Outline 1. Development Platforms for Multimedia Programming 1.1. Classification of Development Platforms 1.2. A Quick Tour of Various Development Platforms 2. Multimedia Programming with Python and Pygame

More information

Make your own Temple Run game

Make your own Temple Run game Make your own Temple Run game These instructions will talk you through how to make your own Temple Run game with your pupils. The game is made in Scratch, which can be downloaded here: http://scratch.mit.edu

More information

lubyk lua libraries for live arts Gaspard Bucher (Buma)! artist, musician, coder

lubyk lua libraries for live arts Gaspard Bucher (Buma)! artist, musician, coder lubyk lua libraries for live arts Gaspard Bucher (Buma)! artist, musician, coder lubyk is not a framework Why lubyk? Reuse code from project to project Accelerate development (live coding) Simple APIs

More information

USE OF HYPERVIDEO FOR TEACHING C/C++ Luiz-Alberto Vieira-Dias Andre Catoto-Dias

USE OF HYPERVIDEO FOR TEACHING C/C++ Luiz-Alberto Vieira-Dias Andre Catoto-Dias USE OF HYPERVIDEO FOR TEACHING C/C++ Luiz-Alberto Vieira-Dias Andre Catoto-Dias UNIVAP-Paraiba Valley University School of Computer Science São Jose dos Campos, SP, Brazil vdias@univap.br ABSTRACT This

More information

Conditionals: (Coding with Cards)

Conditionals: (Coding with Cards) 10 LESSON NAME: Conditionals: (Coding with Cards) Lesson time: 45 60 Minutes : Prep time: 2 Minutes Main Goal: This lesson will introduce conditionals, especially as they pertain to loops and if statements.

More information

Digital File Management

Digital File Management Digital File Management (AKA: I ve done all this awesome work and I don t want to lose it) Written by Tamzin Byrne I ve worked in community radio and TV for nearly 3 years. On my computer, in my radio

More information

Cross-Platform Game Development Best practices learned from Marmalade, Unreal, Unity, etc.

Cross-Platform Game Development Best practices learned from Marmalade, Unreal, Unity, etc. Cross-Platform Game Development Best practices learned from Marmalade, Unreal, Unity, etc. Orion Granatir & Omar Rodriguez GDC 2013 www.intel.com/software/gdc Be Bold. Define the Future of Software. Agenda

More information

Zero Footprint Image Viewers For Mobile Devices

Zero Footprint Image Viewers For Mobile Devices Zero Footprint Image Viewers For Mobile Devices John Kingan Unrestricted Internal Use 2011, Carestream Health The good old days p.2 p.3 Emergence of Mobile Technology When Computers were Computers and

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages 15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning

More information

Write Your Angry Bird Game on Tizen for Fun and Profit. Lu Guanqun Intel Corporation

Write Your Angry Bird Game on Tizen for Fun and Profit. Lu Guanqun Intel Corporation Write Your Angry Bird Game on Tizen for Fun and Profit Lu Guanqun Intel Corporation Why? 3 The market is big! 4 Famous games apps Playing games is fun. Developing a game is more fun. 5 How? Native app

More information

Chapter 9 Slide Shows

Chapter 9 Slide Shows Impress Guide Chapter 9 Slide Shows Transitions, animations, and more Copyright This document is Copyright 2007 2013 by its contributors as listed below. You may distribute it and/or modify it under the

More information

Use fireworks and Bonfire night as a stimulus for programming

Use fireworks and Bonfire night as a stimulus for programming Learn it: Scratch Programming Make fireworks in Scratch Use fireworks and Bonfire night as a stimulus for programming Create an animated bonfire Design and program a working Catherine wheel Design and

More information

State of the GStreamer Project. Jan Schmidt. Centricular Ltd jan@centricular.com

State of the GStreamer Project. Jan Schmidt. Centricular Ltd jan@centricular.com State of the GStreamer Project Jan Schmidt Centricular Ltd jan@centricular.com Who am I? GStreamer developer since 2003 Director & Engineer with Centricular Ltd Introduction I work here for Introduction

More information

Moving from Paper to Scratch to Python

Moving from Paper to Scratch to Python Moving from Paper to Scratch to Python Scheme of Work Year 9 First Autumn Half Term we do: Scratch recap make a basic game in Scratch Designing Algorithms/Programs Design a Guessing Game Make a Guessing

More information

MXwendler Javascript Interface Description Version 2.3

MXwendler Javascript Interface Description Version 2.3 MXwendler Javascript Interface Description Version 2.3 This document describes the MXWendler (MXW) Javascript Command Interface. You will learn how to control MXwendler through the Javascript interface.

More information

Creating a landscape schematic using Microsoft PowerPoint

Creating a landscape schematic using Microsoft PowerPoint Creating a landscape schematic using Microsoft PowerPoint By Ilissa Ocko You don t need fancy software like Adobe Illustrator to create a nice science visual. You can create a graphic in basic, accessible

More information

Physics 125 Practice Exam #3 Chapters 6-7 Professor Siegel

Physics 125 Practice Exam #3 Chapters 6-7 Professor Siegel Physics 125 Practice Exam #3 Chapters 6-7 Professor Siegel Name: Lab Day: 1. A concrete block is pulled 7.0 m across a frictionless surface by means of a rope. The tension in the rope is 40 N; and the

More information

App and Game Development with Corona SDK

App and Game Development with Corona SDK App and Game Development with Corona SDK http://www.anscamobile.com - Altaf Rehmani Jun 11 Jun 12 facebook.com/tinytapps What is Corona? A cross development mobile sdk from AnscaMobile (http://www.anscamobile.com)

More information

Mail Programming Topics

Mail Programming Topics Mail Programming Topics Contents Introduction 4 Organization of This Document 4 Creating Mail Stationery Bundles 5 Stationery Bundles 5 Description Property List 5 HTML File 6 Images 8 Composite Images

More information

GYM PLANNER. User Guide. Copyright Powerzone. All Rights Reserved. Software & User Guide produced by Sharp Horizon. www.sharphorizon.com.

GYM PLANNER. User Guide. Copyright Powerzone. All Rights Reserved. Software & User Guide produced by Sharp Horizon. www.sharphorizon.com. GYM PLANNER User Guide Copyright Powerzone. All Rights Reserved. Software & User Guide produced by Sharp Horizon. www.sharphorizon.com. Installing the Software The Powerzone gym Planner is a piece of software

More information

Animations in DrRacket

Animations in DrRacket 90 Chapter 6 Animations in DrRacket 6.1 Preliminaries Up to this point we ve been working with static pictures. But it s much more fun and interesting to deal with pictures that change over time and interact

More information

Creating Animated Apps

Creating Animated Apps Chapter 17 Creating Animated Apps This chapter discusses methods for creating apps with simple animations objects that move. You ll learn the basics of creating two-dimensional games with App Inventor

More information

Developing a Graphical Library for a Clojure-based Introductory CS Course

Developing a Graphical Library for a Clojure-based Introductory CS Course Developing a Graphical Library for a Clojure-based Introductory CS Course Paul Schliep, Max Magnuson, and Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris, MN 56267 schli202@umn.edu,

More information

Microsoft PowerPoint 2013 Part 2: Notes, Links, & Graphics. Choosing a Design. Adding Content Exercise. Inserting Screen Shots.

Microsoft PowerPoint 2013 Part 2: Notes, Links, & Graphics. Choosing a Design. Adding Content Exercise. Inserting Screen Shots. Microsoft PowerPoint 2013 Part 2: Notes, Links, & Graphics Choosing a Design Open PowerPoint. Click on Blank Presentation. Click on the Design tab. Click on the design tab of your choice. Adding Content

More information

Advantages of PML as an iseries Web Development Language

Advantages of PML as an iseries Web Development Language Advantages of PML as an iseries Web Development Language What is PML PML is a highly productive language created specifically to help iseries RPG programmers make the transition to web programming and

More information

Designing Games with Game Maker

Designing Games with Game Maker Designing Games with Game Maker version 5.0 (April 14, 2003) Written by Mark Overmars Table of Contents Chapter 1 So you want to create your own computer games... 6 Chapter 2 Installation... 8 Chapter

More information

Titles. presentation with. a password. presentations. using. other. Microsoft PowerPoint. Page 1

Titles. presentation with. a password. presentations. using. other. Microsoft PowerPoint. Page 1 Microsoft PowerPoint 2010 learning assets Simply type the id# in the search mechanism of ACS Skills Online too access the learning assets outlined below. Titles Microsoft PowerPoint 2010: Adding Charts

More information

Tec: A Cross-Platform Game Engine

Tec: A Cross-Platform Game Engine Tec: A Cross-Platform Game Engine Dept. of CIS - Senior Design 2010: Final Report Christopher Sulmone sulmone@seas.upenn.edu Univ. of Pennsylvania Philadelphia, PA Noir Nigmatov nigmatov@seas.upenn.edu

More information

Adding emphasis to a presentation in PowerPoint 2010 and 2013 for Windows

Adding emphasis to a presentation in PowerPoint 2010 and 2013 for Windows Adding emphasis to a presentation in PowerPoint 2010 and 2013 for Windows This document introduces technique to add interest to your presentation using graphics, audio and video. More detailed training

More information

CREST Explorer. Self discovery API explorer. Final report. Spring 2013 Ingi Steinn Guðmundsson Hjörleifur Henriksson BSc in Computer Science

CREST Explorer. Self discovery API explorer. Final report. Spring 2013 Ingi Steinn Guðmundsson Hjörleifur Henriksson BSc in Computer Science CREST Explorer Self discovery API explorer Final report Spring 2013 Ingi Steinn Guðmundsson Hjörleifur Henriksson BSc in Computer Science Instructor: Stefán Freyr Stefánsson Examiner: Birgir Kristmannsson

More information

Assignment Work (Physics) Class :Xi Chapter :04: Motion In PLANE

Assignment Work (Physics) Class :Xi Chapter :04: Motion In PLANE 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Assignment Work (Physics) Class :Xi Chapter :04: Motion In PLANE State law of parallelogram of vector addition and derive expression for resultant of two vectors

More information

Chapter 7 Linked Lists

Chapter 7 Linked Lists Chapter 7 Linked Lists In order to use linked lists, you need to learn how to allocate memory dynamically on the heap and you need to learn about objects. Recall that local variables are temporary which

More information

Android. Lecture 1. Learning Android Marko Gargenta. Tuesday, February 26, 13

Android. Lecture 1. Learning Android Marko Gargenta. Tuesday, February 26, 13 Android Lecture 1 Learning Android Marko Gargenta Final Project Jan/Feb: ARM March: Android Apr: Final project Complexity Sense the world Analysis Service delivery Hands-on A fun project built-up through

More information

GAME MASTERS: THE GAME Resource Kit

GAME MASTERS: THE GAME Resource Kit GAME MASTERS: THE GAME Resource Kit GAME MASTERS : THE GAME Introduction The Game Masters exhibition brings together the world's most incredible designers and over 125 different playable games. Like the

More information

Scripting in Unity3D (vers. 4.2)

Scripting in Unity3D (vers. 4.2) AD41700 Computer Games Prof. Fabian Winkler Fall 2013 Scripting in Unity3D (vers. 4.2) The most basic concepts of scripting in Unity 3D are very well explained in Unity s Using Scripts tutorial: http://docs.unity3d.com/documentation/manual/scripting42.html

More information

ACADEMIC TECHNOLOGY SUPPORT

ACADEMIC TECHNOLOGY SUPPORT ACADEMIC TECHNOLOGY SUPPORT Adobe Photoshop Introduction Part 1 (Basics- Image Manipulation) ats@etsu.edu 439-8611 www.etsu.edu/ats Table of Contents: Overview... 1 Objectives... 1 Basic Graphic Terminology...

More information

Graphics Module Reference

Graphics Module Reference Graphics Module Reference John M. Zelle Version 3.2, Spring 2005 1 Overview The package graphics.py is a simple object oriented graphics library designed to make it very easy for novice programmers to

More information

Lecture Notes on MS PowerPoint Edited by Abbas Vattoli

Lecture Notes on MS PowerPoint Edited by Abbas Vattoli Lecture Notes on MS PowerPoint Edited by Abbas Vattoli Microsoft Office PowerPoint "PowerPoint" refers to Microsoft PowerPoint, a program that allows the user to design a presentation that consists of

More information

Computer Graphics. Lecture 1:

Computer Graphics. Lecture 1: Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session General Introduction http://www.cs.vu.nl/~graphics/

More information

Availability of the Program A free version is available of each (see individual programs for links).

Availability of the Program A free version is available of each (see individual programs for links). Choosing a Programming Platform Diane Hobenshield Tepylo, Lisa Floyd, and Steve Floyd (Computer Science and Mathematics teachers) The Tasks Working Group had many questions and concerns about choosing

More information