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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65cb62823041f6347bee7e085d38c00b6883e24f2fd0416ae9b9bfa28b0f5256
|
|
| MD5 |
27bb5b1d21b2277284d0137d1d59e2a1
|
|
| BLAKE2b-256 |
9760b7df53f76a26a62af0701f53e96488efcb53102a0a5ee7df476f4395c755
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1639e54febc819257065ca4438b6e98e7dff695e5ce62b34250f1ed2afc8cfd2
|
|
| MD5 |
f380e367570d43a6213a30a585cdc644
|
|
| BLAKE2b-256 |
46ef7ca4c821c9115da0341ae90f880ed5cf77bcbf202247d3f77fb4f4a4861e
|