Canvas
Perhaps no other HTML5 feature is as powerful as the canvas API with regards to game development for the web platform. Although we may have every other feature currently in the specification, as well as any forthcoming feature that the browser can possibly support, it would be nearly impossible to produce a high quality, engaging, fun game using HTML and JavaScript. The canvas API allows us to create 2D, as well as 3D graphics right on the browser. It also lets us manipulate the graphical data stored in the canvas context, down to the individual pixel level.
One major difference between a canvas graphic and an SVG graphic, apart from the fact that SVG graphics are vector-based, and canvas graphics are always raster graphics, is that the canvas is a single HTML element, and everything drawn in it is, for all practical purposes, non-existent to the browser. Thus, any event handling on individual entities drawn on a canvas must be handled at the application level. There are generic events...