Difference between revisions of "FSOSS 2010/processing.js/"
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | < | + | <b>Welcome to the Game Development Using Processing.js Workshop!</b> |
− | + | ==Intro (me)== | |
− | |||
<ul> | <ul> | ||
<li>Seneca college BSD student</li> | <li>Seneca college BSD student</li> | ||
Line 11: | Line 10: | ||
− | + | ==Goals & Schedule== | |
− | <ul><li>Develop a simple 2D or 3D game using in Processing</li></ul> | + | <ul> |
+ | <li>Develop a simple 2D or 3D game using in Processing</li> | ||
+ | <li>9-11 Examples and exercises</li> | ||
+ | <li>11-12 Work, experiment, collaborate</li> | ||
+ | </ul> | ||
− | + | ==Processing (aka P5)== | |
<ul> | <ul> | ||
+ | <li>[http://www.Processing.org Processing.org]</li> | ||
<li>Open source data visualization language</li> | <li>Open source data visualization language</li> | ||
<li>Developed in Java</li> | <li>Developed in Java</li> | ||
Line 27: | Line 31: | ||
− | + | ===Setting up Processing=== | |
<ul> | <ul> | ||
<li>Download it [http://www.processing.org/download/ here]</li> | <li>Download it [http://www.processing.org/download/ here]</li> | ||
Line 37: | Line 41: | ||
− | + | ==Processing.js (aka PJS)== | |
<ul> | <ul> | ||
+ | <li>[http://www.ProcessingJS.org ProcessingJS.org]</li> | ||
<li>Open source JavaScript port of Processing</li> | <li>Open source JavaScript port of Processing</li> | ||
<li>Started by John Resig</li> | <li>Started by John Resig</li> | ||
Line 45: | Line 50: | ||
<li>Does not require a plug-in</li> | <li>Does not require a plug-in</li> | ||
<li>Uses the <canvas> tag</li> | <li>Uses the <canvas> tag</li> | ||
+ | <li>Lots of IDEs [http://processingjs.org/learning/ide Processing.js IDE], [http://hascanvas.com/ HasCanvas], [http://sketchpad.cc/ SketchPad], [http://sketch.processing.org/ Sketch.Processing.org], [http://matrix.senecac.on.ca/~asalga/pjswebide/ My IDE]</li> | ||
</ul> | </ul> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Setting up Minefield== | |
<ul> | <ul> | ||
− | <li> | + | <li>Why use it?</li> |
+ | <li>Much faster than Firefox</li> | ||
+ | <li>Has WebGL</li> | ||
<li>Download a working version of Minefield [http://zenit.senecac.on.ca/wiki/index.php/Level_Up:_An_OpenWeb_Game_Jam#Resources here]</li> | <li>Download a working version of Minefield [http://zenit.senecac.on.ca/wiki/index.php/Level_Up:_An_OpenWeb_Game_Jam#Resources here]</li> | ||
<li>Instructions to enabled WebGL [http://www.c3dl.org/index.php/tutorials/tutorial-1-browsers/ here]</li> | <li>Instructions to enabled WebGL [http://www.c3dl.org/index.php/tutorials/tutorial-1-browsers/ here]</li> | ||
Line 62: | Line 64: | ||
− | + | ==Setting up Processing.js== | |
<ul> | <ul> | ||
<li>3 Files Required</li> | <li>3 Files Required</li> | ||
Line 71: | Line 73: | ||
− | + | ==Examples & Exercises== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ===Basics=== | |
− | |||
size, background, rect [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/example1 Example] | size, background, rect [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/example1 Example] | ||
Line 91: | Line 86: | ||
ArrayList [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/example5 Example] | ArrayList [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/example5 Example] | ||
− | + | ===Input=== | |
mousePressed, mouseReleased, println, debugging with P5 [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/example6 Example] | mousePressed, mouseReleased, println, debugging with P5 [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/example6 Example] | ||
Line 97: | Line 92: | ||
− | + | ===Text & Random=== | |
text, random [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/randomText Example] | text, random [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/randomText Example] | ||
Line 106: | Line 101: | ||
− | <b>Vectors & | + | <b>Vectors & Transformations</b> |
[http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/vectors Vectors] | [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/vectors Vectors] | ||
+ | |||
+ | [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/vector_ex Vector Exercise] | ||
Particle System [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/psys1 Example] | Particle System [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/psys1 Example] | ||
Line 113: | Line 110: | ||
<b>Exercise!</b> Modify the Particle System | <b>Exercise!</b> Modify the Particle System | ||
− | [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/transforms | + | [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/transforms Transformations] |
+ | |||
+ | [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/transforms_ex Transform Exercise] | ||
− | + | ===3D=== | |
box [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/box1 Example] | box [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/box1 Example] | ||
Line 124: | Line 123: | ||
Vertex, Texture [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/texture1 Example] | Vertex, Texture [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/texture1 Example] | ||
− | + | ===Debugging=== | |
println [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/debugging1 Example] | println [http://zenit.senecac.on.ca/wiki/index.php/FSOSS_2010/processing.js/debugging1 Example] | ||
Line 132: | Line 131: | ||
Error console | Error console | ||
− | + | ===DOM Manipulation/Library Integration=== | |
DOM Interaction [http://studio.sketchpad.cc/Qbm0fYDiTE Example] | DOM Interaction [http://studio.sketchpad.cc/Qbm0fYDiTE Example] | ||
Line 144: | Line 143: | ||
More demos! [http://matrix.senecac.on.ca/~asalga/pjswebide/ My PJS Web IDE] ([http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=31 Visualizations], [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=20 Spatial hierarchies], [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=30 Image manipulation], [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=33 Particle Systems!]) | More demos! [http://matrix.senecac.on.ca/~asalga/pjswebide/ My PJS Web IDE] ([http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=31 Visualizations], [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=20 Spatial hierarchies], [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=30 Image manipulation], [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=33 Particle Systems!]) | ||
− | + | ==Sample Games== | |
− | + | Here are some Processing.js games and prototypes to give you an idea what is possible<br /> | |
− | + | [http://pointmarker.com/webgl/test1b.html 3D Pong] by bmidgley<br /> | |
− | + | [http://ptdef.com/ Tower Defense] by Will Larson and Peter Burns<br /> | |
− | + | [http://matrix.senecac.on.ca/~asalga/pjswebide/index.php?sketchID=32 Core] by Andor Salga<br /> | |
− | + | [http://bocoup.com/processing-js/docs/index.php?page=Game%20-%20Light%20Cycles Light Cycles] by Al MacDonald<br /> | |
− | + | [http://processingjs.org/learning/topic/conway Game of Life] by Al MacDonald<br /> | |
− | + | [http://code.bocoup.com/js-ninja/ JS Ninja] by Al MacDonald<br /> | |
+ | [http://matrix.senecac.on.ca/~asalga/FSOSS2010/zelda/zelda-js.html Zelda] by Scott Downe<br /> | ||
+ | |||
+ | ==Challenges== | ||
+ | Create an empty sketch and try to code a simple game:<br /> | ||
+ | Pong!<br /> | ||
+ | [http://www.concntr8.com/ Concentration]<br /> | ||
+ | Flying side-scroller<br /> | ||
+ | [http://en.wikipedia.org/wiki/Sokoban Sokoban]<br /> | ||
− | < | + | ==Gotchas== |
− | + | <ul><li>Integer/Integer division println(5/2) v.s. println(5/2.0)</li> | |
− | + | <li>NPOT (Non Power of Two) textures will not load in 3D</li> | |
− | + | <li>color does not use <b>new</b></li> | |
− | + | </ul> | |
− |
Latest revision as of 07:29, 28 October 2010
Welcome to the Game Development Using Processing.js Workshop!
Contents
Intro (me)
- Seneca college BSD student
- Research assistant in CDOT
- Related projects: C3DL and XB PointStream
- Wordpress, Twitter
Goals & Schedule
- Develop a simple 2D or 3D game using in Processing
- 9-11 Examples and exercises
- 11-12 Work, experiment, collaborate
Processing (aka P5)
- Processing.org
- Open source data visualization language
- Developed in Java
- "Sketches" written using Java syntax
- Requires a JVM plug-in
- Uses the <object> tag
- Reference
- Bug tracking
Setting up Processing
- Download it here
- Save the .DMG file to the Desktop
- Double-click to extract file
- Drag the Processing icon to the desktop
- Double-click the icon to start
Processing.js (aka PJS)
- ProcessingJS.org
- Open source JavaScript port of Processing
- Started by John Resig
- Many contributions by Seneca
- Bug Tracking
- Does not require a plug-in
- Uses the <canvas> tag
- Lots of IDEs Processing.js IDE, HasCanvas, SketchPad, Sketch.Processing.org, My IDE
Setting up Minefield
- Why use it?
- Much faster than Firefox
- Has WebGL
- Download a working version of Minefield here
- Instructions to enabled WebGL here
Setting up Processing.js
- 3 Files Required
- Processing.js file
- Sketch file
- HTML file
Examples & Exercises
Basics
size, background, rect Example
setup Example
draw, noStroke, ellipse, fill, mousePressed Example
line, stroke, strokeWeight Example
ArrayList Example
Input
mousePressed, mouseReleased, println, debugging with P5 Example
keyPressed, keyCode, keyReleased Example
Text & Random
text, random Example
Exercise
Animation Timing
Timing Example
Vectors & Transformations
Vectors
Vector Exercise
Particle System Example
Exercise! Modify the Particle System
Transformations
Transform Exercise
3D
box Example
sphere, sphereDetail Example
Vertex, Texture Example
Debugging
println Example
Checking in P5
Error console
DOM Manipulation/Library Integration
DOM Interaction Example
Integration with jQueryUI - Example
Audio Example, Audio Data API Demos
Physics using Box2DJS - Al MacDonald's Demo, 0.1 PJS Crayon Physics
More demos! My PJS Web IDE (Visualizations, Spatial hierarchies, Image manipulation, Particle Systems!)
Sample Games
Here are some Processing.js games and prototypes to give you an idea what is possible
3D Pong by bmidgley
Tower Defense by Will Larson and Peter Burns
Core by Andor Salga
Light Cycles by Al MacDonald
Game of Life by Al MacDonald
JS Ninja by Al MacDonald
Zelda by Scott Downe
Challenges
Create an empty sketch and try to code a simple game:
Pong!
Concentration
Flying side-scroller
Sokoban
Gotchas
- Integer/Integer division println(5/2) v.s. println(5/2.0)
- NPOT (Non Power of Two) textures will not load in 3D
- color does not use new