A ClojureScript game made using Quil and the Brute entity component system library. Uses Figwheel for sweet interactive playtesting!
Run lein figwheel
and go to http://localhost:3449/. All changes will be reflected on save. Enter will reset the game state. In emacs you can use cider-connect
to localhost:7888 to connect to the figwheel repl. To then start a cljs repl issue (use 'figwheel-sidecar.repl-api)
followed by (cljs-repl)
.
Use WASD to control the red ship. V reverses time for the ship (position state undo!) and C fires the cannon. Arrows control the blue ship with . (period) engaging reverse time and , (comma) firing the cannon.
Beware of friendly fire!
This is one of my first nontrivial Clojure projects, and I already see many places where the code can be made cleaner. Composability could be improved and I should probably be using protocols and such neat things together with the records used for components. Performance could certainly be better and processing.js (which I'm using through Quil) does not seem to be getting the support it deserves. I'm going to have a look at how chocolatier uses records and protocols for entities and components, and how pixi.js performs.
Copyrigh © 2015 Jacob Michelsen
Distributed under the Eclipse Public License either version 1.0 or any later version.