In this talk we will examine Cocos2d-JS, an open source, cross-platform, game development engine in JavaScript. Don't let the JavaScript part fool you. While your games logic is written in JavaScript, the graphics core runs in supercharged C++ and takes advantage of OpenGL when running on desktops and devices. When your game runs on the web, it takes advantage of everything HTML5 has to offer to produce amazingly fluid games for the web.
4. Troy Miles
Troy Miles aka the RocknCoder
Over 35 years of programming experience
Wrote a few games for Interplay in the 80's and 90’s
Speaker and writer on all things web & mobile
20. History
2008 - Ricardo Quesada, a game developer in Argentina,
writes a game framework named Cocos2d
2009 - After the iPhone SDK release, Cocos2d rewritten
in Objective-C to become Cocos2d-iPhone
2010 - Zhe Wang, a developer in China, creates a fork,
Cocos2d-x
Chukong Technologies Inc, Zhe's company, develops
Cocos2d-JS, -HTML5, and -Lua
30. Desktops
You can also build desktop apps for Windows and Mac
OS X
You will need Visual Studio and Xcode respectively
I won’t speak further about this
31. Python 2
The cocos command
line needs python to run
python 2.7.5+
It won’t work with
python 3
https://www.python.org/
downloads/
33. cocos command options
new - Creates a new project
compile - Compiles the current project to binary
deploy - Deploy a project to the target
run - Compiles & deploy project and then runs it on the
target
jscompile - minifies js files
34. cocos new
cocos new -l js
cocos new -l js —no-native
cocos new projectName -l js -d ./Projects
cocos new projectName -l js
36. Project files and folders
frameworks/runtime/tools
res - your resources
src - your JS source code
project.json - configuration
main.js - JS boot code
index.html - HTML markup
37. project.json
debug - the current debug setting
showFPS - whether or not to show the frame rate
frameRate - the desired frame rate
modules - cocos2d and potentially plugins
jsList - all of your source code
39. Terminology
cc - Cocos2d, most classes prepended with this
Director - takes care of navigation between scenes
Node - Almost every element is a node
Scene - a screen in your game
Sprite - a 2D image that can be moved, rotated, scaled &
more
Layer - a special node which accepts user input
40. More terminology
Action - an order given to a node, like animations
Menu - Creates an onscreen menu
LabelTTF - The simplest option for displaying text
41. Right handed coordinate system
Different than web
Origin (0,0) located at lower
left hand of screen
x position increases going
right
y position increases going up
max x,y at upper right hand
corner
45. Modifying
Double tap a file to open
it in the editor
Modify the text as desire
Click the refresh icon to
run the code again
46. Debugging
To set a break point,
click in the gutter to the
left of the text
To set a conditional
breakpoint, right click it
and specify a condition
Click again to delete it
47. Let’s look at a game
Parts
Scenes
Player
User Input
Physics plug-in
Collision detection
52. Cocos Studio + Other Tools
Animation Editor
UI Editor
Scene Editor
Data Editor
Tiled
53. iOS
$99 a year for an individual in the local currency
$299 for an enterprise
Free for the university program
Only developers can put apps on devices
58. Summary
Cocos2d-JS allows you to create fast cross platform
games in JavaScript
Installation & documentation are a bit rough
No support for Window Phone 8