Coder Social home page Coder Social logo

Guidelines about entt HOT 25 CLOSED

skypjack avatar skypjack commented on May 10, 2024
Guidelines

from entt.

Comments (25)

skypjack avatar skypjack commented on May 10, 2024 2

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

reworks-org avatar reworks-org commented on May 10, 2024 2

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

skypjack avatar skypjack commented on May 10, 2024 1

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.

reworks-org avatar reworks-org commented on May 10, 2024 1

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.

skypjack avatar skypjack commented on May 10, 2024 1

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

from entt.

morbo84 avatar morbo84 commented on May 10, 2024 1

I'm in too.

from entt.

skypjack avatar skypjack commented on May 10, 2024

It makes sense. Does it mean that you started using the new features? :-)

from entt.

skypjack avatar skypjack commented on May 10, 2024

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.

DJuego avatar DJuego commented on May 10, 2024

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.

skypjack avatar skypjack commented on May 10, 2024

Keep your time @DJuego
I added only a bunch of TODO and a couple of new sections so far. ;-)

from entt.

AndrzejKozik avatar AndrzejKozik commented on May 10, 2024

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.

skypjack avatar skypjack commented on May 10, 2024

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.

skypjack avatar skypjack commented on May 10, 2024

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

DJuego avatar DJuego commented on May 10, 2024

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.

DJuego avatar DJuego commented on May 10, 2024

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.

entt_v2

P.S: If you have any question just ask.

from entt.

skypjack avatar skypjack commented on May 10, 2024

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

from entt.

skypjack avatar skypjack commented on May 10, 2024

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

DJuego avatar DJuego commented on May 10, 2024

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

skypjack avatar skypjack commented on May 10, 2024

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

skypjack avatar skypjack commented on May 10, 2024

@DJuego Well, I did a test, it was not difficult - https://github.com/skypjack/entt/tree/doc :-)

from entt.

DJuego avatar DJuego commented on May 10, 2024

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

skypjack avatar skypjack commented on May 10, 2024

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.

skypjack avatar skypjack commented on May 10, 2024

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

from entt.

reworks-org avatar reworks-org commented on May 10, 2024

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

skypjack avatar skypjack commented on May 10, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.