The current ECS guideline offers a starting point with samples and user cases. I definitely think it would be a good idea to create guidelines for other EnTT features (signals, event bus, scheduler, event dispatcher, ... similar to the current ECS guideline (registry and views).
That would greatly improve the appeal of the library for newcomers.
Of course, a list of documented methods is essential/necessary for reference. However It is not enough. (IMHO).
Obviously, it is a work in the medium and long term... but I believe it brings more added value than many other features. And it helps publicize the power of EnTT.
DJuego
It makes sense. Does it mean that you started using the new features? :-)
Started working on it on the doc branch. It will take a while, I'm a bit busy.
If you want/can kindly review the readme file it would help.
Amazing! Thank you very much, @skypjack !
It seems that it will be a really comprehensive README!! Sincerely, I'm really eager to read it! I admit it!
Tomorrow i will try to read the future README calmly.
Thanks again!
Keep your time @DJuego
I added only a bunch of TODO and a couple of new sections so far. ;-)
Hey! First, thanks for sharing and maintaining this great software! I'm successfully using EnTT in my game programming course.
I need however an opinions of other users: While it is clear how to use EnTT in singleplayer, how do You use EnTT in multiplayer? If You create new entity on server and send appropriate event to (some) clients, how You manage entity indexing on clients?
I use either pools of "free" entities (without components) or dictionary (server_id => client_id). What are Your approaches?
First, thanks for sharing and maintaining this great software! I'm successfully using EnTT in my game programming course.
Hi @AndrzejKozik thank you for using EnTT in your course!! It's amazing.
If you plan to publish something online (slides or whatever) I'd be glad to link them in the README.
And don't forget to star the project!! It helps to spread it even more.
While it is clear how to use EnTT in singleplayer, how do You use EnTT in multiplayer? If You create new entity on server and send appropriate event to (some) clients, how You manage entity indexing on clients?
I'm pretty sure #27 will help you a lot with this (once closed at least). It will give you the chance to _serialize_ a bunch of components and entities and send the resulting array of bytes over the net to the client.
The first version will be focused on snapshots to load as a whole in an empty registry, but I plan to write a dedicated loader to _append_ entities to an already existent registry. It solves exactly your problem at the end of the day. ;-)
If you want to contribute to the development somehow, feel free to contact me.
How I would approach it until #27 isn't released?
Well, identifiers server side and client side are different, no doubts about it.
Probably I'd create a map remote/local ids on the client side, then:
If I was you, I wouldn't try to bind remote and local ids. I mean, there is no need for the local identifier X to be X also on the server, right? With a map you introduce an extra indirection, but you are free to manage the relationships the way you prefer.
Hope it's a bit clearer now.
@DJuego
I'm almost there to finish.
I've still to document the resource part and one class from the signal part. However, if you want to start reading it and give me a feedback to improve the documentation, it would be appreciated.
Thank you.
Yes, @skypjack !. I have followed your slow but relentless progress with anticipation. I know it can be a hard and ungrateful job. I am very grateful to you for your involvement.
Although I have problems with my schedule at this moment,I will try to take some time for a complete first reading this weekend. My feedback will be limited because my English and C++ knowledge is limited but I will do my best.
I am excited with your framework! Thanks for this!
Hi. @skypjack
I have already made my first complete reading. Maybe you abuse too much of passive sentences ...:-D But your English is infinitely better than mine. And the text is quite understandable. Congratulations!
I attached an image with my first "review" of the text. I have deep gaps about the content, but it's basically because I've never worked with these patterns. I'm pretty sure I'll do future readings and then I hope to offer you better feedback.
I have marked my "findings" with red and green. It is a very big picture. Sorry.

P.S: If you have any question just ask.
@Djuego
It's done. Everything has been documented.
I'll re-read it during the week and merge everything on master.
Please, let me know if you find errors or feel free to open PR to fix them.
Thank you.
@DJuego
I'm ready to merge the doc branch with master and thus to close the issue.
The sole problem I see is that the README file is now indecently long. Probably it's worth it creating different sections within the online documentation and move there all this stuff, then put the links in the README file.
I'm not so sure that such a long introduction will not scare people...
@skypjack
Yes Yes. I completely agree. It also facilitates the search of what you need.
I had even thought about proposing to make a wiki. But I did not want to do it so as not to bother you with more documentation tasks.
@DJuego
Well, you are right, my free time isn't much... however, if you want to help, you're welcome. ;-)
As an example and as a first step, we could add a table of contents to the README file (there are plenty of TODOs out there about how to create a TOC in a README file on GitHub).
Want you to try and create a PR for that?
@DJuego Well, I did a test, it was not difficult - https://github.com/skypjack/entt/tree/doc :-)
@skypjack
Pleased that you got it. It looks great! 馃憤 Thanks!
Your trust honors me but I'm pretty sure that you would be more efficient than me (in time and energy) even in such a trivial task. And I do not want to delay your agenda.
Maybe later I can propose a worthy PR for this project (I have never created a PR :-D) but my time has not arrived yet.
Upstream. Time to close the issue.
If you have the time to read it and give me a feedback, it would be appreciated.
Thank you.
I plan to reduce the readme to a few lines and put the whole documentation on gh-pages branch. It will be available online as usual.
I don't think such a long readme file was helpful. Documentation separated in multiple sections is much easier to consult.
What about? @DJuego
Sounds good. But maybe include a small overview of the api in the readme so people can see at a glance how the library works?
@reworks Yeah, probably an example of use would makes sense. I'd like also to implement a pong-like game to show how to use the whole framework, but I've not much time to do that at the moment unfortunately...
@skypjack I could do it and submit a PR, but I can't guarantee it would get done in any reasonable time-frame. I also assume you want it's code style to be the same as entt?
@reworks
Wow, it would be great!! Thank you, really appreciated.
Actually, no: code style doesn't require to be the same of EnTT. Moreover, if you can write down something that works, I can easily review it and adjust the code style if required, it's not a problem. Otherwise, you can also push it on a repo in your account and we can link it from the README.
Currently I'm working on new features within EnTT and I prefer to do it than working on a pong-like example. I think I won't be able to develop a toy game for at least a couple of months, so probably I can start working on it my side in the summer.
Let me know...
@reworks
Actually, if you are willing to help, we can create a _small team_ to work on it so that we can provide newcomers with an example made with EnTT before the summer.
Probably @morbo84 wants to join us? Any other user of EnTT out there is willing to help?
+1 I'm in.
I'm in too.
@morbo84 @skypjack
I set up a repo here: https://github.com/reworks/EnttPong
and invited you both as collaborators.
I went ahead and wrote a basic outline for the game using sdl2 and entt.
At the moment it just structures the game and renders a square.
I still need to add build integration, and I tried to make the visual studio stuff generic but I wrote the project on the latest version of visual studio 2017. (15.6.1).
I'm going to try to use googles gyp or cmake to create more build files when I next have some more free time.
Good. I'm closing this issue... again!!
It looks like a reworking of the documentation isn't a problem for you, so... why not? :-)
Sooner or later I'll find the time to do it probably.
@reworks
We can continue speaking about EnttPong directly on its board. Thank for you help. Really appreciated.
Most helpful comment
@skypjack I could do it and submit a PR, but I can't guarantee it would get done in any reasonable time-frame. I also assume you want it's code style to be the same as entt?