(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: 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 git@bitbucket.org:ckeen/beesteroids.git Flamewars criticisms, thoughts, questions can be directed to me also via C-Keen on IRC (drop by in #chicken on on twitter ckeen@pestilenz.org

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.h> 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

What makes a good coder and technology user at Mountfields Lodge School?

What makes a good coder and technology user at Mountfields Lodge School? What makes a good coder and technology user at Mountfields Lodge School? Pupils who persevere to become competent in coding for a variety of practical and inventive purposes, including the application

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

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

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers

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

DEVELOPING NFC APPS for BLACKBERRY

DEVELOPING NFC APPS for BLACKBERRY 1 DEVELOPING NFC APPS for BLACKBERRY NFC Forum, Developers Showcase March 21 st, 2014 Larry McDonough, Principal Evangelist @LMCDUNNA 2 CONTENTS Development on BlackBerry BlackBerry NFC Support 5 most

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

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

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

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

PIC 10A. Lecture 7: Graphics II and intro to the if statement

PIC 10A. Lecture 7: Graphics II and intro to the if statement PIC 10A Lecture 7: Graphics II and intro to the if statement Setting up a coordinate system By default the viewing window has a coordinate system already set up for you 10-10 10-10 The origin is in the

More information

Data Visualization Basics for Students

Data Visualization Basics for Students Data Visualization Basics for Students Dionisia de la Cerda Think about Your Message You want your audience to understand your message. This takes time. Think about your audience and plan your message.

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

REFERENCE GUIDE 1. INTRODUCTION

REFERENCE GUIDE 1. INTRODUCTION 1. INTRODUCTION Scratch is a new programming language that makes it easy to create interactive stories, games, and animations and share your creations with others on the web. This Reference Guide provides

More information

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we

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

Email Marketing Now let s get started on probably the most important part probably it is the most important part of this system and that s building your e-mail list. The money is in the list, the money

More information

T he complete guide to SaaS metrics

T he complete guide to SaaS metrics T he complete guide to SaaS metrics What are the must have metrics each SaaS company should measure? And how to calculate them? World s Simplest Analytics Tool INDEX Introduction 4-5 Acquisition Dashboard

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

Research on HTML5 in Web Development

Research on HTML5 in Web Development Research on HTML5 in Web Development 1 Ch Rajesh, 2 K S V Krishna Srikanth 1 Department of IT, ANITS, Visakhapatnam 2 Department of IT, ANITS, Visakhapatnam Abstract HTML5 is everywhere these days. HTML5

More information

Event processing in Java: what happens when you click?

Event processing in Java: what happens when you click? Event processing in Java: what happens when you click? Alan Dix In the HCI book chapter 8 (fig 8.5, p. 298), notification-based user interface programming is described. Java uses this paradigm and you

More information

Lean UX. Best practices for integrating user insights into the app development process. Best Practices Copyright 2015 UXprobe bvba

Lean UX. Best practices for integrating user insights into the app development process. Best Practices Copyright 2015 UXprobe bvba Lean UX Best practices for integrating user insights into the app development process Best Practices Copyright 2015 UXprobe bvba Table of contents Introduction.... 3 1. Ideation phase... 4 1.1. Task Analysis...

More information

1.0-Scratch Interface 1.1. Valuable Information

1.0-Scratch Interface 1.1. Valuable Information 1.0-Scratch Interface 1.1 Valuable Information The Scratch Interface is divided to three: 1. Stage 2. Sprite/background properties 3. Scratch Action Blocks Building the game by designing the sprites 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

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

6! Programming with Images

6! Programming with Images 6! Programming with Images 6.1! Graphics and Pictures Across Platforms! 6.2! Displaying Static Vector/Bitmap Graphics! 6.3! Structured Graphics: Display Lists, Scene Graphs! 6.4! Sprites Literature:!!

More information

Create unlimitted hip hop and urban music beats on your pc or mac

Create unlimitted hip hop and urban music beats on your pc or mac Create unlimitted hip hop and urban music beats on your pc or mac How To Make Beats Want To Make Rap And Hip Hop Music Like The Chart Toppers? Read On! We will tell you how you can quickly and easily get

More information

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated

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

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

Term paper on gas prices >>>CLICK HERE<<<

Term paper on gas prices >>>CLICK HERE<<< Term paper on gas prices. In the early stages of an internet based business opportunity you will need to wear many hats. Term paper on gas prices >>>CLICK HERE

More information