Game project
A game project is an application that houses a single graphical viewport that is redrawn by a high speed timer. This project type can be considered low-level compared to a visual project, in that it requires experience in graphical programming to master.
The project does not support any visual controls or user interface elements in order to achieve maximum rendering speeds. Due to the nature of the VJL (the visual javascript component library) an experienced developer can of-course add this manually, but games which are made using pixel graphics should try to avoid this.
As mentioned, the main view is dominated with a canvas based control and a single timer. To handle input control on mobile devices you must write handlers for the touch and gesture events of the control.
Alternatives to the game project
Smart also ship with a unit called “sprite3d” which is a pascal implementation of the famous javascript library with the same name. Sprite3d does not use a canvas but can be applied to normal controls (i.e using any TMovableControl based object as a sprite, or game character). For some game types sprite3d is a more suitable option since it employs hardware accelerated graphics.