Everything that is part of this project is 100% original. All images,
sprites, sprite sheets and scripts included were created using Github's
Atom Programming Text Editor, Adobe Photoshop, and Adobe Illustrator.
However, this project was not done without research.
A couple of the SVG
buildings featured in the background of the first level of the Physics
of Ninjas Game are loosely based off of those found in the open source
image uploaded to wikimedia.org which can be found
here.
I learned the JavaScript language throughout the duration
of this project by researching problems as I ran into them and
stackoverflow.com proved
to be a major asset due to its large database of experienced active
members who have a large repositoire of answered questions behind them.
Also, I followed a guide posted on williammalone.com
by William Malone in 2014 on creating spritesheets for animation. The realtime
physics engine I created, which was arguably one of the more difficult parts
of this project for me, was created after reading a heuristic guide on
building various types of physics engines found here
and written by Adam Ranfelt from IBM on November 20th, 2012 (Note:
only general ideas from this guide were utilized and no code or methods
for accomplishing a task were copied).
The physics behind the game has varying ranges of complexities
but is partially based off of lectures given in class over kinematics,
kinetic friction, gravity, and conversation of momentum. In order to
slow the ninja down when in contact with surfaces, I created a kinetic
friction property as part of my physics engine and based these amounts off
of findings from the article Coefficient of Friction from school-for-champions.com
written by Ron Kurtus on November 2nd 2005. The inspiration for the
application of physics by a ninja however comes from a variety of sources
including this one.
The repository for all source code concerned in this project
can be found on my GitHub page
and is provided under an open source MIT license (can be used without
restriction as long as author is credited). From this link the repository can
be cloned/downloaded and unzipped to run offline. Note: This code was tested
using Google Chrome V. 54 on macOS Sierra and due to time constraints, proper
cross browser/platform testing was not extensively done so all behaviour
can only be guaranteed for this browser and operating system.