Overview
Preface
JackyJS is a labor of love inspired by jQuery and Game Maker. I borrowed many concepts from both to create a cohesive game engine/framework that I believe Web Developers will enjoy using. Originally it was meant to be a simple tool that would allow me to churn out casual web games, but as the tool matured, I started to realize that it could also benefit other people. It was at this point I couldn't resist the opportunity to develop JackyJS into a full blown game engine/framework.
The goal with JackyJS is to help the aspiring Game Designer produce quality full-featured casual web games, quickly. The focus and philosophy of the architecture is WEB first, GAMES second. This means JackyJS should feel right at home with Web Developers who want to design games. JackyJS contains all that one would expect from a typical web-based game engine, and then some; ie, there are specialized features NOT found in competing products. ;-)
Being a veteran Web Developer by trade, with experience in and a passion for games, JackyJS was a project that made a lot of sense to me. Now I get to share the fruits of my labor with others who want to have fun making casual games.
Casual Games
When I say "casual games", it's important to define what exactly I mean by that. In a nutshell any game that has simple pick-up-and-play controls with virtually no learning curve is essentially what I mean by casual. Tetris, Arkanoid, Bejewelled, and Flappy Bird are great examples of casual games. You can play them in small chunks of time, get a high score and come back later; no major time investment required. JackyJS is more than capable of handling the nitty gritty for these kinds of games. The best part is that it's not limited to these kinds of games; virtually any type of simple 2D game is possible.
With that said, there is one limitation that needs to be mentioned. For now JackyJS specializes in ONE screen games only, that is, games that do not have a large scrollable play area. Therefore, you will not be able to make scrollable games like Super Mario Bros., for example. However, this does not mean you cannot make single screen games that scroll, like a space shooter or procedurally generated endless runner. Imagination, creativity, and a little technical know-how can go a long way.
The General Idea
JackyJS was created as a tool to speed up the development of casual web games. Through years of experimentation I've tried many game engines, frameworks, and libraries but did not really enjoy using any of them. Most commercial grade engines have a steep learning curve which require a disproportionate amount of effort in order to produce a simple 2D game. With that said, my favorite game engine has always been Game Maker; I used it way back in 2004 to build all sorts of games, like Megabot and Monster Frenzy. The software's architectural philosophy, ease of use, and quick deployment of 2D games was a dream come true. Though, as much as I enjoyed working with it, the workflow was just not the same as building a game with raw Javascript via the modern web browser.
Javascript is a wonderful little language that has matured quite well. A language once limited to simple interactions and dynamic effects is now capable of so much more, including games. Ever since the adoption of the canvas HTML element and stigmatizing of Flash, HTML5 games have been on a steady increase. Flash was fantastic but it had its problems when it came to mobile devices, most notably, widespread support (or lack thereof). What's better than being able to rapidly develop and iterate your game idea knowing that anyone with a web browser will see it? To me this is a very satisfying process and a primary attraction to developing web games.
The nature of an HTML5 web game lends itself to so much freedom. Arguably, some of the best parts of the web are Javascript based; you can add so much functionality with minimal lines of code. Consider for a moment how ubiquitous the jQuery library has become and you know what I mean. It is the de facto tool for doing just about anything dynamic on the web, and this popularity has even confused some novice developers into thinking that jQuery === Javascript. Not exactly true but the philosophy underlying jQuery's functionality was also some of the inspiration for JackyJS.
At the end of the day, if you're a Web Developer with an aptitude for designing games, you're going to love JackyJS!
"I believe games are more than just entertainment; they are a precise amalgamation of multiple disciplines, working in harmony. Some consider Game Design as an art form; I'm inclined to agree with that sentiment."
-- Sandor Fekete