Ryan Stonebraker

Software Developer

The Physics Of Ninjas

The Physics of Ninjas was one of my first relatively large programming projects. For my Physics 211 class my 1st year of college, we were given a final project that required us to make a basic webpage contain a report on something physics related. I had been wanting to delve deeper into the world of web development beyond the simple HTML and CSS I knew, so I used this as an excuse to create a physics game using a custom realtime physics engine. 

This project proved to be extremely challenging and time consuming for me. I had never touched JavaScript before, I had minimal experience with HTML5, I had no experience with canvas elements, I had never made a game, I had never done anything close to building a physics engine before, and I had limited programming experience in general. Despite all these limitations weighing against me, I naively and wholeheartedly took on the challenge.

At almost every turn I ran into problems. I quickly learned that the most important tool in JavaScript programming is console.log. Yet despite my struggling, I made it through and achieved everything I set out to do. This was one of my most proud moments as an inexperienced programmer.

Today (August 31st, 2018), I am much more experienced in JavaScript. I have worked on projects that dwarf the scale of this one, which was, at the time, the largest codebase I had ever created (~1000 lines). However, my abilities in web and JavaScript development today can largely be accredited to the experiences I went through bringing this project to completion.

You can view a running copy of this project, on the original website I created for it, below. I would like to stress again though that this was one of my first major coding projects, so keep expectations low.