Giter Site home page Giter Site logo

ransome / impactplusplus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from collinhover/impactplusplus

0.0 2.0 0.0 3.45 MB

Impact++ is a collection of additions to ImpactJS with full featured physics, dynamic lighting, UI, abilities, and more.

Home Page: http://collinhover.github.com/impactplusplus

License: MIT License

impactplusplus's Introduction

Impact++ (r4)

####Overview A series of extensions and additions to the Impact javascript engine

The core goal of this project is to expand ImpactJS to make it easier and faster to start developing full featured games. ImpactJS is a great engine, but it is fairly minimal to start, and our hope is that Impact++ will save you a few months of dev time!

Impact++ is also partly a product of work on the game Mimic (which may or may not be released as of you reading this), which you can see in action here!

####Features

  • Extended capability of ImpactJS's default classes to improve collisions, animations,...
  • ig.CONFIG data driven configuration to allow you to change parameters without rebuilding or modifying the library
  • ig.GameExtended game with layers, easy pausing, improved debugger,...
  • ig.EntityExtended entities with lots of extra helper functions, opt-in performance, inheritance friendly animations,...
  • ig.InputPoint input with multi-touch and gestures that works the same for mouse or touch
  • ig.Camera camera for screen control, smooth target transitions, atmospheric overlays,...
  • ig.UIElement a whole list of ui element entities to make text, buttons, overlays,...
  • ig.Ability abilities that are entirely modular, have a built in casting system, upgrades,...
  • ig.EntityLight lighting in real-time with shadows, dynamic alpha and/or color,...
  • ig.Character abstract character class with options for moving, jumping, climbing,...
  • ig.Player abstract player class with built in interaction and input handling,...
  • ig.Tutorial abstract tutorial class to help you show your players how to do things
  • ig.Spawner abstract spawner class with pooling for better performance
  • ig.Particle abstract particle class with fading in and/or out, random velocities,...
  • ig.EntityTrigger easy to use set of triggers for complex event driven behavior
  • ig.EntityCheckpoint checkpoint for automatic player respawning on death
  • ig.utils huge list of utility functions for vectors, drawing, intersections, math, tiles,...
  • and too much more to reasonably list here!

####Download Download Zip Download Zip

##Getting Started ####First Steps

  1. Download using one of the "Download" links and extract the files.
  2. Copy the impactplusplus/lib/plusplus folder into your new or existing ImpactJS project lib directory.
  3. Either copy the impactplusplus/lib/weltmeister/config.js into your projet's lib/weltmeister directory...
  4. Or, if you have a custom Weltmeister config:
    • add 'lib/plusplus/entities/*.js' to the entityFiles setting
    • change the collisionTiles.path setting to 'lib/weltmeister/collisiontiles_plusplus_64.png'
  5. Make sure you're comfortable with the ImpactJS Documentation
  6. Load up the Impact++ Jump N' Run demo (see below) to review the basics
  7. 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 Jump N' Run directory!

####Feature Examples You will find example levels demoing various advanced features of Impact++ in the 'examples/levels' directory. Copy them into your 'lib/game/levels' directory and load them up through Weltmeister. Don't forget to add your player entity to the example levels before trying them out!

##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.

impactplusplus's People

Contributors

collinhover avatar

Watchers

Ransome avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.