####Overview
Expanding the ImpactJS engine by over x10 so you can kick-start your game project into a full featured experience for the web (and mobile!).
Impact++ is stable for ImpactJS v1.20 - v1.23
####Features
- Extended capability of ImpactJS's default classes to improve collisions, animations,...
ig.CONFIGdata driven configuration to allow you to change parameters without rebuilding or modifying the libraryig.GameExtendedgame with layers, easy pausing, improved debugger,...ig.EntityExtendedentities with lots of extra helper functions, opt-in performance, inheritance friendly animations,...ig.pathfindingefficient, garbage collector free pathfinding able to avoid entities and let you draw pathfinding maps in the editorig.InputPointinput with multi-touch and gestures that works the same for mouse or touchig.Cameracamera for screen control, smooth target transitions, atmospheric overlays,...ig.UIElementa whole list of ui element entities to make text, buttons, overlays,...ig.Abilityabilities that are entirely modular, have a built in casting system, upgrades,...ig.EntityLightlighting in real-time with shadows, dynamic alpha and/or color,...ig.Characterabstract character class with options for moving, jumping, climbing,...ig.Creatureabstract creature class with simple AI to find targets, move to, attack, use abilities, flee...ig.Playerabstract player class with built in interaction and input handling,...ig.Tutorialabstract tutorial class to help you show your players how to do thingsig.Spawnerabstract spawner class with pooling for better performanceig.Particleabstract particle class with fading in and/or out, random velocities,...ig.EntityTriggereasy to use set of triggers for complex event driven behaviorig.EntityCheckpointcheckpoint for automatic player respawning on deathig.utilshuge list of utility functions for vectors, drawing, intersections, math, tiles,...- and too much more to reasonably list here!
##Getting Started ####Generator Method
- Use the killer Yeoman Generator put together by @racingcow
####Manual Method
- Download using one of the "Download" links and extract the files.
- Copy the impactplusplus/lib/plusplus folder into your new or existing ImpactJS project lib directory.
- Either copy the impactplusplus/lib/weltmeister/config.js into your projet's lib/weltmeister directory...
- Or, if you have a custom Weltmeister config:
- add
'lib/plusplus/entities/*.js'to theentityFilessetting - change the
collisionTiles.pathsetting to'lib/weltmeister/collisiontiles_plusplus_64.png'
- add
Next, make sure you're comfortable with the ImpactJS Documentation. Then load up the Impact++ Jump N' Run demo (see below) to review the basics, and dive into the Impact++ Documentation.
####Demo: Jump N' Run Check out the Jump N' Run demo for an overview of getting started with Impact++, located in the 'examples/jumpnrun' directory. Don't forget to copy the ImpactJS engine and Weltmeister files into the demo directory!
####Demo: SUPER COLLIDER! Check out the SUPER COLLIDER demo for an overview of how to use almost every single feature in Impact++, located in the 'examples/supercollider' directory. Don't forget to copy the ImpactJS engine and Weltmeister files into the demo directory!
##FAQ ####Ejecta, Cocoonjs, etc? Impact++ has been built from day one to be portable / wrappable to iOS, Android, Win8, etc. Tests are ongoing, but the library does nothing that should need special handling when porting or wrapping your game code for distribution as a mobile app. Please let us know if you find any issues!
####Custom Settings // edit the user config file at 'plusplus/config-user.js' // then you can set values // for any of the properties that appear in ig.CONFIG // and they will automatically be merged // over the base settings ig.CONFIG_USER = { // for example, one thing you'll probably want to set right away // is your own logo (in base64) for the loader LOADER_LOGO_SRC_MAIN: 'data:image/png;base64,...' };
####Design Philosophy
- Modularity - code should be reusable whenever possible
- Parametrize - projects should be able to change settings without modifying the library
- Be agnostic - do not rely on device or browser specific functionality
- Consistency - the codebase should look like a cohesive whole
- Document - the codebase should be reasonably documented
####Contributing We'd love it if you want to help make Impact++ better, so if you're interested take a look at CONTRIBUTING.
####License Impact++ is licensed under the MIT license. For full license and information, see LICENSE.
##Changelog Check out the Releases.