GitHub - starwed/Crafty: JavaScript Game Engine · GitHub
https://github.com/starwed/Crafty • 329 KB fetched
Open original page
GitHub - starwed/Crafty: JavaScript Game Engine · GitHub
Skip to content
Navigation Menu
Sign in Appearance settings
* Platform
* AI CODE CREATION
* GitHub Copilot Write better code with AI
* GitHub Copilot app Direct agents from issue to merge
* MCP Registry Integrate external tools
* DEVELOPER WORKFLOWS
* Actions Automate any workflow
* Codespaces Instant dev environments
* Issues Plan and track work
* Code Review Manage code changes
* Code Quality Enforce quality at merge
* APPLICATION SECURITY
* GitHub Advanced Security Find and fix vulnerabilities
* Code security Secure your code as you build
* Secret protection Stop leaks before they start
* EXPLORE
* Why GitHub
* Documentation
* Blog
* Changelog
* Marketplace
View all features
* Solutions
* BY COMPANY SIZE
* Enterprises
* Small and medium teams
* Startups
* Nonprofits
* BY USE CASE
* App Modernization
* DevSecOps
* DevOps
* CI/CD
* View all use cases
* BY INDUSTRY
* Healthcare
* Financial services
* Manufacturing
* Government
* View all industries
View all solutions
* Resources
* EXPLORE BY TOPIC
* AI
* Software Development
* DevOps
* Security
* View all topics
* EXPLORE BY TYPE
* Customer stories
* Events & webinars
* Ebooks & reports
* Business insights
* GitHub Skills
* SUPPORT & SERVICES
* Documentation
* Customer support
* Community forum
* Trust center
* Partners
View all resources
* Open Source
* COMMUNITY
* GitHub Sponsors Fund open source developers
* PROGRAMS
* Security Lab
* Maintainer Community
* GitHub Stars
* Archive Program
* REPOSITORIES
* Topics
* Trending
* Collections
* Enterprise
* ENTERPRISE SOLUTIONS
* Enterprise platform AI-powered developer platform
* AVAILABLE ADD-ONS
* GitHub Advanced Security Enterprise-grade security features
* Copilot for Business Enterprise-grade AI features
* Premium Support Enterprise-grade 24/7 support
* Pricing
Search /
Sign in
Sign up Appearance settings
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
starwed
/
Crafty
Public
forked from craftyjs/Crafty
*
Notifications
You must be signed in to change notification settings
*
Fork
1
*
Star
2
*
Code
*
Pull requests
0
*
Actions
*
Projects
*
Wiki
*
Security and quality
0
*
Insights
Additional navigation options
*
Code
*
Pull requests
*
Actions
*
Projects
*
Wiki
*
Security and quality
*
Insights
develop
Branches Tags
Go to file
Code Open more actions menu
Latest commit
History
1,969 Commits
1,969 Commits
Folders and files
Name Name Last commit message
Last commit date
.vscode
.vscode
build
build
dist
dist
playgrounds
playgrounds
src
src
tests
tests
.editorconfig
.editorconfig
.gitattributes
.gitattributes
.gitignore
.gitignore
.jshintignore
.jshintignore
.jshintrc
.jshintrc
.npmignore
.npmignore
.travis.yml
.travis.yml
CHANGELOG.md
CHANGELOG.md
CONTRIBUTING.md
CONTRIBUTING.md
Gruntfile.js
Gruntfile.js
LICENSE
LICENSE
README.md
README.md
appveyor.yml
appveyor.yml
bower.json
bower.json
package.json
package.json
supported-browsers-webdriver.json
supported-browsers-webdriver.json
supported-browsers.json
supported-browsers.json
travis-nightly.sh
travis-nightly.sh
yarn.lock
yarn.lock
View all files
Repository files navigation
*
* README
* Contributing
* MIT license
More items
Crafty JS
Crafty is a JavaScript game library that can help you create games in a structured way…
Key Features:
* Entities & Components - A clean and decoupled way to organize game elements. No inheritance needed!
* Eventbinding - Event system for custom events that can be triggered whenever, whatever and bound just as easily.
* No dom manipulation or custom drawing routines required.
Other Goodies:
* Thriving community - Help is readily available in the forum.
* Community modules - A growing collection of user-generated code you can use.
* Pure JavaScript - No magic. Works in all major browsers and can be combined with your favorite js library.
##Using Crafty
A simple game of pong:
Crafty . init ( 600 , 300 ) ;
Crafty . background ( 'rgb(127,127,127)' ) ;
//Paddles
Crafty . e ( "Paddle, 2D, DOM, Color, Multiway" )
. color ( 'rgb(255,0,0)' )
. attr ( { x : 20 , y : 100 , w : 10 , h : 100 } )
. multiway ( 200 , { W : - 90 , S : 90 } ) ;
Crafty . e ( "Paddle, 2D, DOM, Color, Multiway" )
. color ( 'rgb(0,255,0)' )
. attr ( { x : 580 , y : 100 , w : 10 , h : 100 } )
. multiway ( 200 , { UP_ARROW : - 90 , DOWN_ARROW : 90 } ) ;
//Ball
Crafty . e ( "2D, DOM, Color, Collision" )
. color ( 'rgb(0,0,255)' )
. attr ( { x : 300 , y : 150 , w : 10 , h : 10 ,
dX : Crafty . math . randomInt ( 2 , 5 ) ,
dY : Crafty . math . randomInt ( 2 , 5 ) } )
. bind ( 'EnterFrame' , function ( ) {
//hit floor or roof
if ( this . y <= 0 || this . y >= 290 )
this . dY *= - 1 ;
// hit left or right boundary
if ( this . x > 600 ) {
this . x = 300 ;
Crafty ( "LeftPoints" ) . each ( function ( ) {
this . text ( ++ this . points + " Points" ) } ) ;
}
if ( this . x < 10 ) {
this . x = 300 ;
Crafty ( "RightPoints" ) . each ( function ( ) {
this . text ( ++ this . points + " Points" ) } ) ;
}
this . x += this . dX ;
this . y += this . dY ;
} )
. onHit ( 'Paddle' , function ( ) {
this . dX *= - 1 ;
} ) ;
//Score boards
Crafty . e ( "LeftPoints, DOM, 2D, Text" )
. attr ( { x : 20 , y : 20 , w : 100 , h : 20 , points : 0 } )
. text ( "0 Points" ) ;
Crafty . e ( "RightPoints, DOM, 2D, Text" )
. attr ( { x : 515 , y : 20 , w : 100 , h : 20 , points : 0 } )
. text ( "0 Points" ) ;
Left paddle is controlled by W & S , right paddle by UpArrow & DownArrow .
Check it out online and try to modify it yourself here .
##Developing
If you want to fix a bug, please submit a pull request against the development branch. Some guides to help you can be found on the wiki
If you would like to make larger contributions please catch us in the forum and we will help you get started. Much appreciated :-)
Quick build instructions
The easiest way to build crafty uses gruntjs , which requires node and npm . If you have grunt, node, and npm already installed, then run npm install from Crafty's root directory. (This will pull down about 30MB of node packages.) From then on, just run grunt to build.
You can also use yarn instead of npm.
( Full instructions here .)
About
JavaScript Game Engine
craftyjs.com
Resources
Readme
MIT license
Contributing
Contributing
Activity
Stars
2 stars
Watchers
5 watching
Forks
1 fork
Report repository
Releases
Packages
Contributors
Languages
Footer
(c) 2026 GitHub, Inc.
Footer navigation
*
Terms
*
Privacy
*
Security
*
Status
*
Community
*
Docs
*
Contact
*
Manage cookies
*
Do not share my personal information
You can’t perform that action at this time.
Links found on this page
- Skip to content [direct]
- Sign in [direct]
- GitHub Copilot Write better code with AI [direct]
- GitHub Copilot app Direct agents from issue to merge [direct]
- MCP Registry Integrate external tools [direct]
- Actions Automate any workflow [direct]
- Codespaces Instant dev environments [direct]
- Issues Plan and track work [direct]
- Code Review Manage code changes [direct]
- Code Quality Enforce quality at merge [direct]
- GitHub Advanced Security Find and fix vulnerabilities [direct]
- Code security Secure your code as you build [direct]
- Secret protection Stop leaks before they start [direct]
- Why GitHub [direct]
- Documentation [direct]
- Blog [direct]
- Changelog [direct]
- Marketplace [direct]
- View all features [direct]
- Enterprises [direct]
- Small and medium teams [direct]
- Startups [direct]
- Nonprofits [direct]
- App Modernization [direct]
- DevSecOps [direct]
- DevOps [direct]
- CI/CD [direct]
- View all use cases [direct]
- Healthcare [direct]
- Financial services [direct]
- Manufacturing [direct]
- Government [direct]
- View all industries [direct]
- View all solutions [direct]
- AI [direct]
- Software Development [direct]
- DevOps [direct]
- Security [direct]
- View all topics [direct]
- Customer stories [direct]
- Events & webinars [direct]
- Ebooks & reports [direct]
- Business insights [direct]
- GitHub Skills [direct]
- Customer support [direct]
- Community forum [direct]
- Trust center [direct]
- Partners [direct]
- View all resources [direct]
- GitHub Sponsors Fund open source developers [direct]
- Security Lab [direct]
- Maintainer Community [direct]
- GitHub Stars [direct]
- Archive Program [direct]
- Topics [direct]
- Trending [direct]
- Collections [direct]
- Copilot for Business Enterprise-grade AI features [direct]
- Premium Support Enterprise-grade 24/7 support [direct]
- Pricing [direct]
- Sign up [direct]
- starwed [direct]
- craftyjs/Crafty [direct]
- Notifications [direct]
- Pull requests
0 [direct]
- Actions [direct]
- Projects [direct]
- Wiki [direct]
- Security and quality
0 [direct]
- Insights [direct]
- Branches [direct]
- Tags [direct]
- 1,969 Commits [direct]
- .vscode [direct]
- build [direct]
- dist [direct]
- playgrounds [direct]
- src [direct]
- tests [direct]
- .editorconfig [direct]