[Numpy-discussion] A numpy based Entity-Component-System

Elliot Hallmark Permafacture at gmail.com
Fri May 20 19:24:43 EDT 2016


I have a Data Oriented programing library I'm writing that uses the
Entity-Component-System model.

https://github.com/Permafacture/data-oriented-pyglet

I have initially called it Numpy-ECS but I don't know if that name is
okay.  The numpy license says:

Neither the name of the NumPy Developers nor the names of any contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

but doesn't say anything about using the name of NumPy. Is this okay?

For anyone interested in what this project is, I suggest looking at the
project README.  Briefly, a Component is the Data Oriented version of what
Object Oriented calls an attribute (a Numpy array of values that represents
an attribute that Entities might have).  An Entity is the Data Oriented
version of an object instance (something subscribed to some subset of
Components, with an ID that can be used to access each instance's values in
those components).  A System is like an object method (a function that
operates on the Components of all Entities that have that Component).

This is something that one would use in a game engine or simulation.  It
allows you to have instances, but where the logic can be bulk applied to
all involved instances by operations on slices of Numpy arrays.  In an
example shown in this video <https://vimeo.com/66736654>, I went from 50
FPS in an object oriented approach to using ufuncs operating on shared
memory in multiprocessing and getting 180 space steps per second on the
physics and 500-600 FPS in the rendering.

Thanks for reading,
  Elliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20160520/6938e530/attachment.html>


More information about the NumPy-Discussion mailing list