Crafting with joy
Collider.JAM is a hand-crafted JavaScript game framework for game jamming, creative coding, prototyping and beyond.
Unlock your creativity and productivity by following the jamming way.
And pixelate reality!
Run It
Collider.JAM is multiplatform. Created games can be run on Web, Linux, macOS X, Windows, Android, and iOS.
A web browser is a primary target and the whole toolchain is developed around the modern web.
Learn It
We believe, that the best way to learn to program is by creative coding, experimenting, modeling, tinkering, and playing.
Collider.JAM takes the most popular programming language and wraps its rough edges into a simple and easy to use framework.
When you don’t have to worry about DOM, CSS and complex interactions with an MVC framework, JavaScript becomes a pleasant language to develop in.
Collider.JAM can give you a joyride into programming.
Grok It
The essential core of the framework is small - just little over 3k lines of JavaScript.
Collider.JAM is not a typical JavaScript library and has zero dependencies!
There is no terrible bloat that plagues most modern JS libraries and frameworks.
To grok the framework, use the latest
documentation
or just hit F1 on any Collider.JAM project
running in debug mode (e.g. jam -d
)
There is also Jamming Card you can print for quick reference.
Mix It
The top modules of Collider.JAM are called mixes.
During a game jam, you are ‘mixing’ independent units to shape the prototype. And mixing is straightforward - you either include a unit as a whole or patch the content into your mix.
To extend contemporary game frameworks or engines you need to use some kind of Plugin API.
Collider.JAM doesn’t have any - all plugins/modules are essentially just unit folders that follow the same convention as Collider.JAM itself.
And Collider.JAM provides a way to combine those any way you like.
Play It
Check out examples and game jam entries crafted with Collider.JAM on Itch.io.
Change It
Collider.JAM is open source and distributed under zlib license. Meaning you can explore it, use it, fork it or extend it any way you want.
Enjoy It
You can get into the jamming flow only when tools won’t be in your way.
The following are some of the reasons Collider.JAM works well.
No user interface creep
You don’t need a bunch of panels, tabs, buttons and menu options on the screen to create something fun and playable. In fact, rich UI can be in the way of flow and creativity.
Collider.JAM development flow is mostly text-oriented. Text is still the most compact, expressive and powerful tool to work with data and code.
There are a bunch of UI tools for specific purposes. But you use them only when needed.
You still can use any external tool. It is just files and folder after all…
No boilerplate in resource loading
In Collider.JAM you never do things like:
engine.loadResource('assets/images/hero.png')
All resources are automatically loaded, preprocessed and bounded to the scene.
No imports
There are no imports or usage directives of any form.
Code and data are loaded and bound to the scene just like any other resource - by putting files in appropriate folders.
No class hierarchies imposed
You don’t have to extend from an ugly internal class or prototype and write a lot of boilerplate code just to get a simple circle on the screen.
And though Collider.JAM provides some traits and prototypes for convenience, a node on the scene can be any arbitrary JavaScript object.
There are a bunch of conventions for particular types of nodes, but these are optional.
Circle It
Collider.JAM removes the hassle and boilerplate. It makes simple things simple.
To have a circle, just create a folder circle.mod with a single js file inside.
circle.mod/lab.js:
function draw() {
lineWidth(2)
fill(.4, .5, .5) // HSL color values
circle(100, 100, 50) // circle coordinates and radius
}
That’s it! Now just run from console:
jam play
You can find more bits here.
Check it out
Look at Collider.JAM main repo and core components.
Explore the source code of various games:
- Conway’s Game of Life - iconic celluar automata
- Vector Zone - local multiplayer arcade shooter example
- Station Keeping - local co-op multiplayer trader/survival on a remote space station created during Ludum Dare 46
- 300 Hearts for Escape - a survival trading game placed on an isolated island created during Ludum Dare 44.
- Cosmic Rays ’n DNAs - arcade from Global Game Jam 2020.
- Infected Island - a survival roguelike, part of 7 Day RogueLike Challenge.
- Cyber Sneeze - a robot virus infection game. Part of Quarantine Jam. And yeah, you can actually program those robots :)
- Xeno Relay Day - a cosmic relay network puzzler, created during Global Game Jam 2018.
- Dream Rocket Boy - a single screen platformer, created for Global Game Jam 2019.
- Master of Ritual - dungeon crawler from Ludum Dare 43.
- Metro Gang - strategic beat’em up from Ludum Dare 45.
- Alarm 1202 - a math learning variety of lunar lander.
Join the Invasion
Like Collider Labs Facebook Page.
Follow the development on Twitter.
Join the discussion on Discord.