Skip to main content

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, 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 .

Documentation

The project home and main documentation is on Read the Docs.

Support / Contributing

Issues can be opened on github 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.

Release files for tinyecs 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tinyecs 0.4.0
File Size Uploaded
tinyecs-0.4.0.tar.gz 28.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tinyecs 0.4.0
File Interpreter ABI Platform
tinyecs-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.2 kB

Release files / tinyecs-0.4.0.tar.gz

Download URL tinyecs-0.4.0.tar.gz
Size 28.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8ea73783c28fe85c30c2a910c381da1511c19b0bb0a46306ff61c4b5af8088c4
BLAKE2b-256 checksum
How to use checksums
ef4692ddeaa825f2abbaf4b476503cddc206b6e20b4291ab289fc21e8e7e05ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / tinyecs-0.4.0-py3-none-any.whl

Download URL tinyecs-0.4.0-py3-none-any.whl
Size 29.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d093e53aa820c71a445b41ac1ab330f17cee4d5e449e7874c1238ab987520cf
BLAKE2b-256 checksum
How to use checksums
711dcb71b036d6d127a312c8c011027db87f4798a6351f1c05439874c508473e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page