Comments (25)
@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...
from entt.
@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?
from entt.
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
from entt.
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?
from entt.
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.
from entt.
I'm in too.
from entt.
It makes sense. Does it mean that you started using the new features? :-)
from entt.
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.
from entt.
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!
from entt.
Keep your time @DJuego
I added only a bunch of TODO and a couple of new sections so far. ;-)
from entt.
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?
from entt.
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 an entity isn't present yet, create a new one, add the pair to the map, then assign to the local entity all the components received by the server
- If an entity is already in the map (there exists a pair remote/local), accomodate all the components received by the server
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.
from entt.
@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.
from entt.
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!
from entt.
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.
from entt.
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.
from entt.
@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...
from entt.
@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.
from entt.
@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?
from entt.
@DJuego Well, I did a test, it was not difficult - https://github.com/skypjack/entt/tree/doc :-)
from entt.
@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.
from entt.
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.
from entt.
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...
from entt.
@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.
from entt.
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.
from entt.
Related Issues (20)
- Difficult to understand how it works without examples HOT 5
- 'each': is not a member of 'entt::basic registry<entt::entity,std::allocator<Entity>> HOT 1
- class object to entt? HOT 8
- Serialization of "dead" components
- C++20 ranges trait specializations
- Efficiently iterating over a set of groups? HOT 2
- Signals not triggering properly in storage mixin iterator based insert HOT 2
- Access violation when using registry.clear<Component>() HOT 9
- Is it possible to use entt::nth_argument_t with lambdas that capture? HOT 6
- Question it is posible to use Entt with lightweight wrapper class as a entt::entity HOT 2
- Calling valid() on empty entt::valid leads to a segmentation fault.
- Add ability to compare entt::null and entt::handle
- Components with overriden new operator. HOT 6
- sparse_set_iterator::operator[] causes warnings when used with size_t HOT 6
- Working with multiple storages for the same type and preparing a view for each of the storages HOT 3
- entt build error: unused type alias 'common_type' HOT 9
- assert on destroy (inside of release function) non-orphan entity HOT 8
- Handling large tilemap HOT 7
- Acecss components of an entity, without giving full registry access HOT 14
- bazel version and compatibility number out of sync
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from entt.