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.
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 …
Okey, co wiem do tej pory; Jednostka zawiera komponent (przechowywanie danych), który przechowuje takie informacje; - Tekstura / sprite - Shader - itp A potem mam system renderujący, który rysuje to wszystko. Ale nie rozumiem, w jaki sposób należy zaprojektować renderer. Czy powinienem mieć jeden komponent dla każdego „typu wizualnego”. …
Tworzę grę zaprojektowaną według paradygmatu encja-komponent, który wykorzystuje systemy do komunikacji między komponentami, jak wyjaśniono tutaj . Osiągnąłem punkt w moim rozwoju, że muszę dodawać stany gry (takie jak pauza, gra, rozpoczęcie poziomu, rozpoczęcie rundy, zakończenie gry itp.), Ale nie jestem pewien, jak to zrobić w moim środowisku. Przejrzałem ten …
Tło: Projektuję prosty system renderowania 3D dla architektury typu elementu systemu elementów za pomocą C ++ i OpenGL. System składa się z renderera i wykresu sceny. Kiedy skończę pierwszą iterację mechanizmu renderującego, mogę rozpowszechnić wykres sceny w architekturze ECS. Na razie jest to symbol zastępczy w taki czy inny sposób. …
Moje pytanie brzmi: Jak przechowywać globalne dane kontekstowe, tj. informacje o danych na świecie, aktualny czas na świecie itp. w systemie elementów encji? Myślę o pracy nad stworzeniem otwartej gry symulacyjnej Dwarf Fortress w C ++. Stworzyłem silnik gry w stylu komponentu bytu dla zabawy i obecnie próbuję dowiedzieć się, …
Jeśli jednostka nie ma wyraźnego „typu” (np. Odtwarzacz) i jest po prostu zbiorem komponentów, w jaki sposób mogę zidentyfikować jednostki, nad którymi moje systemy powinny i nie powinny pracować? Na przykład w grze Pong wiosło i piłka zderzają się z granicami okna. Jednak systemy obsługi kolizji dla każdego będą inne, …
Obecnie mam do czynienia z następującym problemem: Usiłuję napisać klon ponga przy użyciu systemu komponentu jednostki (ECS). „Schemat” napisałem sam. Jest więc klasa, która zarządza bytami wszystkimi składnikami. Są też same klasy komponentów. Na koniec są moje systemy, które po prostu pobierają wszystkie byty, które mają komponenty, których potrzebuje system. …
Próbuję zaprojektować oparty na komponentach system encji do celów uczenia się (a później używać go w niektórych grach) i mam problemy z aktualizacją stanów encji. Nie chcę mieć metody update () wewnątrz komponentu, aby zapobiec zależnościom między komponentami. Mam na myśli to, że komponenty przechowują dane i aktualizują systemy. Tak …
Aby komponenty mogły aktualizować każdą ramkę (i pozostawić tę funkcjonalność poza komponentami, które nie muszą), wpadłem na pomysł, aby utworzyć komponent UpdateComponent. Inne elementy, takie jak MovableComponent(które utrzymują prędkość), dziedziczyłyby po IUpdatableklasie abstrakcyjnej. Wymusza MovableComponentto implementację Update(gametime dt)metody i innej, RegisterWithUpdater()która daje UpdateComponentwskaźnik do MovableComponent. Wiele komponentów może to zrobić, …
Niedawno zapytałem o to, jak oddzielić byty od ich zachowania i główną odpowiedź związaną z tym artykułem: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ Ostateczna koncepcja opisana tutaj jest następująca: OBIEKT JAKO CZYSTA AGREGACJA. Zastanawiam się, jak mogę przejść do tworzenia jednostek gry jako czystej agregacji przy użyciu C #. Nie do końca zrozumiałem, jak to …
Pytanie jest dość samo wyjaśniające: czy wielokrotne dziedziczenie nie rozwiązuje wszystkich problemów, które rozwiązują również systemy encji? Właśnie przypomniałem sobie termin zwany „wielokrotnym dziedziczeniem”, który wydaje się rozwiązywać wiele wzdęć, które narzuciło klasyczne dziedzictwo.
Tworzę grę, która wykorzystuje obiekty gier oparte na komponentach, i trudno mi wdrożyć sposób komunikacji każdego komponentu z jego obiektem gry. Zamiast wyjaśniać wszystko naraz, wyjaśnię każdą część odpowiedniego przykładowego kodu: class GameObjectManager { public: //Updates all the game objects void update(Time dt); //Sends a message to all game objects …
W ramach mojego obecnego projektu wdrożyłem system oparty na komponentach / jednostkach , zasadniczo przestrzegając większości najlepszych praktyk w tym raczej nieokreślonym obszarze . Mam więc (nieco rozszerzone) byty , które są w zasadzie intidentyfikatorem, czytelną dla człowieka nazwą, std::mapskładników i long„wskaźnikiem typu”, który służy do pokazania, które składniki są …
Jestem całkiem nowy w koncepcji systemów encji, po przeczytaniu wielu rzeczy (najbardziej przydatne, ten świetny blog i ta odpowiedź ). Chociaż mam mały problem ze zrozumieniem, jak coś tak prostego, jak możliwość manipulowania pozycją obiektu przez nieokreśloną liczbę źródeł. To znaczy, mam swój byt, który ma element pozycji. Mam wtedy …
Uwaga: Programuję to w Javascripcie, ale w większości powinien to być język. Zastanawiam się nad zmianą silnika na ECS. Dostaję podstawowy pomysł ( uwaga: to źle, patrz moja odpowiedź ): Istoty są obiektami gry. Składniki to bity funkcjonalności ( reactToInput()) lub state ( position), które można „przykleić” do elementów. Systemy …
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.