(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Does cropping actually cut the picture s edges? (PPT 409) No. Although you cannot see the cropped edges, they exist until you save the file.

Does cropping actually cut the picture s edges? (PPT 409) No. Although you cannot see the cropped edges, they exist until you save the file. Microsoft Office 2010: Advanced Q&As PowerPoint Chapter 7 How does PowerPoint determine the area to display within the marquee? (PPT 405) Microsoft Research software engineers developed the algorithms

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

YouthQuest Quick Key FOB Project

YouthQuest Quick Key FOB Project YouthQuest Quick Key FOB Project This project is designed to demonstrate how to use the 3D design application, Moment of inspiration, to create a custom key fob for printing on the Cube3 3D printer. Downloading

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

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

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

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

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

Web design build questions to ask new clients David Tully Web Designer/Developer

Web design build questions to ask new clients David Tully Web Designer/Developer Web design build questions to ask new clients David Tully Web Designer/Developer What do you want the web site to do for your company? (is it to just promote brand awareness and for people who hear about

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

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

Working With Animation: Introduction to Flash

Working With Animation: Introduction to Flash Working With Animation: Introduction to Flash With Adobe Flash, you can create artwork and animations that add motion and visual interest to your Web pages. Flash movies can be interactive users can click

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

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

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

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

Comp215: Software Design

Comp215: Software Design Comp215: Software Design Dan S. Wallach (Rice University) Copyright 2015, Dan S. Wallach. All rights reserved. What exactly is software design? There s a surprising amount of debate about this We do have

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

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

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

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

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

ICPC Challenge. Game Description. March 26, 2009

ICPC Challenge. Game Description. March 26, 2009 ICPC Challenge Game Description March 26, 2009 The ICPC Challenge game, Capture, is played on a field that looks something like the following figure. A red player and a blue player compete on the 800 800

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

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

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

Invitation to Ezhil : A Tamil Programming Language for Early Computer-Science Education 07/10/13

Invitation to Ezhil : A Tamil Programming Language for Early Computer-Science Education 07/10/13 Invitation to Ezhil: A Tamil Programming Language for Early Computer-Science Education Abstract: Muthiah Annamalai, Ph.D. Boston, USA. Ezhil is a Tamil programming language with support for imperative

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

HW Set VI page 1 of 9 PHYSICS 1401 (1) homework solutions

HW Set VI page 1 of 9 PHYSICS 1401 (1) homework solutions HW Set VI page 1 of 9 10-30 A 10 g bullet moving directly upward at 1000 m/s strikes and passes through the center of mass of a 5.0 kg block initially at rest (Fig. 10-33 ). The bullet emerges from the

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

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

Fast Paced Strategy Mobile Game

Fast Paced Strategy Mobile Game HKUST Independent Project CSIT 6910A Spring 2014 Report Fast Paced Strategy Mobile Game Submitted By, Email: jiefeng218@gmail.com MSc. Information Technology (2013), HKUST Supervised by, Dr. David Rossiter

More information

Chapter 15 Functional Programming Languages

Chapter 15 Functional Programming Languages Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,

More information

Practical Android Projects Lucas Jordan Pieter Greyling

Practical Android Projects Lucas Jordan Pieter Greyling Practical Android Projects Lucas Jordan Pieter Greyling Apress s w«^* ; i - -i.. ; Contents at a Glance Contents --v About the Authors x About the Technical Reviewer xi PAcknowiedgments xii Preface xiii

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

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

Introduction to WebGL

Introduction to WebGL Introduction to WebGL Alain Chesnais Chief Scientist, TrendSpottr ACM Past President chesnais@acm.org http://www.linkedin.com/in/alainchesnais http://facebook.com/alain.chesnais Housekeeping If you are

More information

Beginner s Guide to Microsoft PowerPoint 2002

Beginner s Guide to Microsoft PowerPoint 2002 Beginner s Guide to Microsoft PowerPoint 2002 Microsoft PowerPoint is a program that allows you to create slide presentations for business and pleasure. 1. Open Start Menu. Place arrow on Start icon and

More information

Getting Started with Scratch

Getting Started with Scratch Getting Started with Scratch a guide to designing introductory Scratch workshops draft version, september 2009 Overview There s no one way to host a Scratch workshop. Workshops can take on a variety of

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

3 Ways Your Web Design Can Better Connect You to Your Audience

3 Ways Your Web Design Can Better Connect You to Your Audience 3 Ways Your Web Design Can Better Connect You to Your Audience by Rafal Tomal Feb 06 How do people recognize good web design? There is a big difference between good and bad design. Many people can identify

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

Audience for This Book. What is emo-framework?

Audience for This Book. What is emo-framework? Audience for This Book This book is for all developers who are interested in creating games on smartphone platform, especially on ios (including iphone, ipad, and ipod touch) and Android. This book assumes

More information

Graphics Input Primitives. 5. Input Devices Introduction to OpenGL. String Choice/Selection Valuator

Graphics Input Primitives. 5. Input Devices Introduction to OpenGL. String Choice/Selection Valuator 4ICT10 Computer Graphics and Virtual Reality 5. Input Devices Introduction to OpenGL Dr Ann McNamara String Choice/Selection Valuator Graphics Input Primitives Locator coordinate pair x,y Pick required

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

Lesson 8: Simon - Arrays

Lesson 8: Simon - Arrays Lesson 8: Simon - Arrays Introduction: As Arduino is written in a basic C programming language, it is very picky about punctuation, so the best way to learn more complex is to pick apart existing ones.

More information

The Settings tab: Check Uncheck Uncheck

The Settings tab: Check Uncheck Uncheck Hi! This tutorial shows you, the soon-to-be proud owner of a chatroom application, what the &^$*^*! you are supposed to do to make one. First no, don't do that. Stop it. Really, leave it alone. Good. First,

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

IOIO for Android Beginners Guide Introduction

IOIO for Android Beginners Guide Introduction IOIO for Android Beginners Guide Introduction This is the beginners guide for the IOIO for Android board and is intended for users that have never written an Android app. The goal of this tutorial is to

More information

MJPEG Camera Client User Manual

MJPEG Camera Client User Manual MJPEG Camera Client User Manual CONTENTS User Manual 1 WELCOME... 3 1.1Features... 3 1.2Installation Requirements... 3 1.3 Software Installation... 3 2 Software Operation... 5 2.1 Tab bar... 6 2.2 Device

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

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

Make the Leap from ecommerce to Omni- Channel

Make the Leap from ecommerce to Omni- Channel Iaodesign/Shutterstock An ecommerce platform is the foundation for a successful Omni- Channel business model arvato Systems North America 6 East 32nd Street, New York, New York 10016 United States All

More information

PDF Primer PDF. White Paper

PDF Primer PDF. White Paper White Paper PDF Primer PDF What is PDF and what is it good for? How does PDF manage content? How is a PDF file structured? What are its capabilities? What are its limitations? Version: 1.0 Date: October

More information

increasing number of researchers itself. studying these phenomena and their implications for the education systems, see e.g. (Prensky 2001).

increasing number of researchers itself. studying these phenomena and their implications for the education systems, see e.g. (Prensky 2001). GAME DESIGN IN EDUCATION Mark Overmars Institute of Information and Computing Sciences Utrecht University 3584 CH Utrecht, The Netherlands E-mail: markov@cs.uu.nl KEYWORDS Game design, Education, Game

More information

Kotlin for Android Developers

Kotlin for Android Developers Kotlin for Android Developers Learn Kotlin in an easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published

More information