Paradygmat programowania, w którym obiekty gry (byty) składają się z komponentów i są obsługiwane przez systemy. Każda jednostka jest identyfikatorem, który wskazuje na określone składniki.
Pracuję nad systemem jednostek dla gry sieciowej i przypisuję każdej jednostce unikalny 32-bitowy identyfikator liczby całkowitej, którego mogę użyć do serializacji odniesień do jednostek i samych jednostek. Obecnie tylko zwiększam licznik za każdym razem, gdy tworzony jest byt. Wydaje mi się, że identyfikatory ostatecznie się skończą, ale tak naprawdę nie …
Moje pytanie brzmi: Jak poradzić sobie ze stanami gry w moim systemie encji bez uciekania się do utrzymywania stosu obiektów stanu gry w pobliżu? Tak więc projekt mojego systemu encji oznacza, że gdy encja musi się zarejestrować na przykład dla zdarzeń wejściowych, komponent wejściowy wywołuje system wejściowy i mówi „zarejestruj …
Jest to kontynuacja tego pytania, na które odpowiedziałem, ale to dotyczy bardziej szczegółowego tematu. Ta odpowiedź pomogła mi zrozumieć Entity Systems nawet lepiej niż ten artykuł. Przeczytałem (tak,) artykuł o systemach Entity Systems i powiedział mi, co następuje: Encje to tylko identyfikator i tablica komponentów (artykuły mówią, że przechowywanie encji …
Często czytam w dokumentacji silnika gry ECS, która jest dobrą architekturą do rozsądnego używania pamięci podręcznej procesora. Ale nie mogę zrozumieć, w jaki sposób możemy skorzystać z pamięci podręcznej procesora. Jeśli komponenty są zapisywane w tablicy (lub puli), w ciągłej pamięci, to dobry sposób na użycie pamięci podręcznej procesora, ALE …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Projektuję silnik gry do odgórnej wieloosobowej strzelanki 2D, którą chcę w rozsądny sposób wykorzystać do innych strzelanek z góry. W tej chwili myślę o tym, jak należy zaprojektować coś w tym systemie bytu. Najpierw pomyślałem o tym: Mam klasę o nazwie EntityManager. Powinien zaimplementować metodę o nazwie Update i inną …
Moja implementacja E / C jest podstawowa, w której jednostki to tylko identyfikatory, komponenty to dane, a systemy działają na danych. W tej chwili mam problem z materiałami obiektowymi i renderowaniem w ogóle. Dla prostych objetcs mam a ModelComponent, powiązane z a RenderSystem, ModelComponentma identyfikatory bufora wierzchołków, których używa system …
Więcej zabawy z ES ... Obecnie mam kilka systemów: Renderer (atrybut do renderowania, atrybut przekształcenia) Ruch (atrybut ruchomy, atrybut Przekształć, atrybut Renderowalny [dla obwiedni itp.]) Dane wejściowe (atrybut InputReceiver) itp. Dodam wykrywanie kolizji. Moją pierwszą myślą było dodanie nowego systemu, który wykonuje kolizję. Sensowne jest dla mnie trzymanie tego w …
Czytałem o Entity System Frameworks, w szczególności Artemis. Próbuję zdecydować, czy jest to dla mnie odpowiednie. Ściśle pracuję nad grami opartymi na kafelkach 2d pixel art i nie sądzę, aby kiedykolwiek były tak wymagające pod względem zasobów. W przeszłości zawsze korzystałem ze standardowego OOP z dużym dziedzictwem. Moje rozumienie frameworku …
Wiem, że to pytanie zostało zadane kilka razy, ale nadal nie jestem pewien, jak zaimplementować obsługę danych wejściowych w silniku opartym na komponentach. Projekt oparty na komponentach, którego użyłem, był oparty na serii blogów T = Machine i na Artemis, w których jednostki to tylko identyfikatory. Istnieją trzy główne pomysły, …
Zaczynamy od podstawowego podejścia system-komponenty-byty . Stwórzmy zespoły (termin wywodzący się z tego artykułu) jedynie na podstawie informacji o typach komponentów . Odbywa się to dynamicznie w czasie wykonywania, tak jak dodawalibyśmy / usuwaliśmy komponenty do encji jeden po drugim, ale nazwijmy to bardziej precyzyjnie, ponieważ dotyczą one tylko informacji …
Projektując układ encji-komponentu dla mojego silnika, natknąłem się na małą przeszkodę w sposobie przechowywania i wyszukiwania określonego typu komponentu. Po pierwsze, pozwól mi wyjaśnić trochę terminologii, której zamierzam użyć w tym pytaniu: Nazywam „ Component ” strukturą danych, która przechowuje odpowiednie dane dla konkretnego systemu. Nazywam „ System ” agregacją …
Ustawiać Mam architekturę encji-komponentu, w której encje mogą mieć zestaw atrybutów (które są czystymi danymi bez zachowania) i istnieją systemy, które uruchamiają logikę encji, która działa na te dane. Zasadniczo w nieco pseudo-kodzie: Entity { id; map<id_type, Attribute> attributes; } System { update(); vector<Entity> entities; } Może to być system, …
Obecnie próbuję wdrożyć system encji oparty na komponentach, w którym encja jest w zasadzie tylko identyfikatorem, a niektóre metody pomocnicze wiążą kilka komponentów razem, tworząc obiekt gry. Niektóre cele tego obejmują: Komponenty zawierają tylko stan (np. Pozycja, zdrowie, ilość amunicji) => logika przechodzi do „systemów”, które przetwarzają te komponenty i …
Widziałem wiele gier, które definiują komponenty encji w plikach skryptów, ale kiedy konfigurują każdą encję i określają jej komponenty, używają innego formatu pliku (np. XML). Dlaczego oni to robią? Pragnę głównie zobaczyć, jakie były uzasadnienia innych. Ja również skonfigurować moje podmioty spoza skryptów (choć nie wybrałem JSON XML). Moim powodem …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.