Brute

screenshot of Brute

A simple and lightweight Entity Component System library for writing games with Clojure and ClojureScript.

Overview

Brute is a lightweight Entity Component System library for writing games with Clojure or ClojureScript. It aims to provide a flexible architecture for integrating with different game approaches. The library allows for easy extension of the Component type system and provides systems as references to functions. Brute is designed to give developers control over state mutation and allows for multiple ES systems within a single game. It also offers simple game saving and loading by serializing the ES data structure.

Features

  • Entities are UUIDs.
  • The Component type system can be easily extended through a multimethod get-component-type.
  • Components default to using the component's instance class as its type, allowing for defrecords or deftypes as default.
  • Systems are references to functions of the format (fn [delta]).

Summary

Brute is a lightweight Entity Component System library for Clojure and ClojureScript game development. It offers flexibility in integrating with different game approaches and provides easy extension of the Component type system. With Brute, developers have control over state mutation and can easily manage multiple ES systems within a single game. The library also allows for simple game saving and loading by serializing the ES data structure.