abstracta¶ ↑
-
[Email](jweissman1986 at gmail.com)
Description¶ ↑
Cellular automata framework for ruby
Features¶ ↑
Examples¶ ↑
Again, intentionally abstract, so there’s not much output you can derive directly from interacting with it. It might go something like this:
require 'abstracta' world = Abstracta::World.new # creates a sim space 100.times { world.step } # iterates/grows organisms
In any particular case you’ll want to extend from these classes and build on top of them. A concrete example from the Biosphere game (probably the place to go right now for something to look at around this/inspiration):
class Cell < Abstracta::Occupant def coordinates(cell_size=1) x, y = cell.x * self.cell_size, cell.y * self.cell_size x1, y1 = x + self.cell_size, y + self.cell_size [[x,y], [x1,y], [x, y1], [x1,y1]] end def render(window, color=Gosu::Color::WHITE) coords = coordinates(window.cell_size) quad_args = coords.map{|c| c + [color] } draw_quad(*quad_args) end end
Requirements¶ ↑
Everything gosu needs, which is really not all that bad. But it’s not exactly portable, or easy stand up a dev environment through a simple provisioning script (though maybe a little focused effort there could help containerize it.)
Install¶ ↑
$ gem install biosphere
Synopsis¶ ↑
$ biosphere
Copyright¶ ↑
Copyright © 2014 Joseph Weissman
See {file:LICENSE.txt} for details. Abstracta
Cellular automata game :)
The idea is to have a game server where different players’ organisms could interact…
Dependencies¶ ↑
You will need to
brew install sdl2 libogg libvorbis
for Gosu’s dependencies. Then bundle and rake to play.
Ideally we’ll get vagrant setup to build a dev environment for us…
(Eventually we’ll want to containerize the server application too, although that can be headless… A containerized dev environment makes sense eventually too once that is reified a bit further. Something like boxen may not be the worst thing to think about eventually there too.)