-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This is a work in progress! Documentation is not complete and is definitely under construction!
The Support Framework is a collection of basic components intended to accelerate the development of ImpactJS+Intel XDK(optional) based applications (or to inspire other solutions).
Prerequisites:
- ImpactJS (http://impactjs.com/) is required (and some working knowledge of ImpactJS). This repo is equivalent to the root of a folder containing the index.html to initialize the application.
Optional:
- Intel XDK: http://software.intel.com/en-us/html5/tools
Important Notes:
- I am not a JavaScript master
- I am learning more about JavaScript by working within the ImpactJS and Intel XDK environments/frameworks.
Upcoming Goals:
- Migrate existing code into the Support Framework repo
- Add a basic demo of the various components in action
- Lots of documentation
- Lots of code improvements
- Further support for Intel XDK specifics (input etc.)
In many of the code files it is common to find the reassignment of the long nested properties of a data or otherwise object to a local variable.
var Windows = ig.global.data.windows;
While the savings is minimal in most cases it also makes the code easier to read (the capitalization in particular makes these collections stand out).
Another reduction is in the form of data reuse. Certain components are intended to be referenced by others (ie. windows referenced by dialogs or custom menus). Any sort of object reuse you can use will cut down on your development time when making minor modifications. There are also a few instances of a "base" setting concept where the original definition can be reused and overridden as necessary.
Some of the files in the framework are just collections of other files. This is intended to avoid having to update numerous files just to add a new item type. There is also a minor code size optimization in doing so. One area to be wary of is circular references in the data. The various types currently do not overlap but if you make any modifications take care in checking what needs to reference what!
In the documentation the word Container is an indicator of a specific reference to a given item. These are always exclusively nested under the ig.global object.
- \media (standard ImpactJS media folder)
- \lib\data (contains all the data structures used by the support framework)
- \lib\game\entities (standard ImpactJS entities folder)
- \lib\game\entities\spawned (entities that are spawned by game code)
- \lib\game\levels (standard ImpactJS levels folder)
- \lib\game\objects (Support Framework objects folder for special game specific handling)
- \lib\impact *
- \lib\support (contains all the Support Framework core classes)
- \lib\weltmeister *
(*) items from ImpactJS
See the source for each item for details on their usage (how to setup in Weltmeister). (TODO: link to source)
Below are items that need a bit more information on their definition
- Player Spawn -- also covers levelexit and leveldoor.
- Projectile
- Thing
- Interact
- Trigger Action
TODO: Thing and Interact overlap a bit and may be further reduced by creating a base class.
- Custom Menu
- Dialog
- Input Config Menu (TODO)
- Input Configuration (TODO)
- Level Manager
- Mode Stack
- Pause
- Particle
- Save
- Util
- Window
- HUD
- Debug Menu (TODO: restore basic code for adjusting points as an example)