Skip to main content

The teeniest, tiniest ECS system

Project description

tinyecs - The teeniest, tiniest ECS for python

ECS stands for Entity Component System, and it is a programming paradigm that differs from the well known OO.

During my research I stumbled over

this article

and after reading part 2 and 3, I decided to implement an ECS myself, well aware that esper is a solid and long existing implementation, but I wanted to see how to implement it myself.

I'm not trying to sell you an ECS by explaining the problems of multiple inheritance in game programming. There are articles out there that do this in much detail. If you're here, you're already interested in the concept, so the tutorial might be a good starting point. It will create a small demo with bouncing sprites using pygame-ce. But tinyecs is platform agnostic, you can use it with whatever library you like.

Installation

tinyecs is available on pip and can be installed by::

pip install tinyecs

The project is maintained and hosted on github at https://github.com/dickerdackel/tinyecs, where you also can find the wheels for a local install, or install it directly from the cloned repo.

git clone https://github.com/dickerdackel/tinyecs
cd tinyecs
python3 -m venv --prompt tinyecs .venv
.venv/bin/activate
# or .venv/Scripts/activate.bat on windows
pip install .

Support / Contributing

Issues can be opened on Github_

.. _Github: https://github.com/dickerdackel/tinyecs/issues

Please respect, that I don't want any contributions done with the assistance of AI. This is a hobby project with focus on the craft of programming. I have experimentally used AI to audit parts of the code and documentation, and while it found a lot of typos and 2 actual issues, without exception, the provided solutions were often besides the point or plain wrong.

I have no possibility to enforce that request, the simple fact that I ask for it should be sufficient.

License

This software is provided under the MIT license.

See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinyecs-0.3.3.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinyecs-0.3.3-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file tinyecs-0.3.3.tar.gz.

File metadata

  • Download URL: tinyecs-0.3.3.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for tinyecs-0.3.3.tar.gz
Algorithm Hash digest
SHA256 65cb62823041f6347bee7e085d38c00b6883e24f2fd0416ae9b9bfa28b0f5256
MD5 27bb5b1d21b2277284d0137d1d59e2a1
BLAKE2b-256 9760b7df53f76a26a62af0701f53e96488efcb53102a0a5ee7df476f4395c755

See more details on using hashes here.

File details

Details for the file tinyecs-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: tinyecs-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for tinyecs-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1639e54febc819257065ca4438b6e98e7dff695e5ce62b34250f1ed2afc8cfd2
MD5 f380e367570d43a6213a30a585cdc644
BLAKE2b-256 46ef7ca4c821c9115da0341ae90f880ed5cf77bcbf202247d3f77fb4f4a4861e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page