Pytania otagowane jako component-based

Projekty oparte na komponentach polegają na rozdzieleniu wielu logicznych atrybutów obiektów biznesowych i obiektów gry na małe komponenty przeznaczone tylko do określonych zadań. Podczas gdy obiekty gry są zwykle modelowane w celu odtworzenia atrybutów i zachowania obiektów „świata rzeczywistego” poprzez ich agregację i umożliwienie wyspecjalizowanym obiektom dziedziczenia po obiektach ogólnych, projektowanie oparte na komponentach opiera się raczej na kompozycji niż na dziedziczeniu.

5
Jak właściwie radzić sobie z kolizją w grze opartej na komponentach?
Próbuję owinąć głowę nad sposobami prawidłowego radzenia sobie z kolizją w grze zaprojektowanej wokół komponentów. Widzę, że w wielu przykładach coś PhysicsComponenttakiego dodaje się do listy komponentów bytu, ale faktyczna implementacja mnie dezorientuje. Aby to zadziałało, PhysicsComponentmusiałby mieć dostęp do otaczającego świata. To nie ma dla mnie intuicyjnego sensu. Czy …


2
Obsługa skryptu i „rodzimych” komponentów w systemie encji opartej na komponentach
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 …


5
Po co umieszczać konfigurację encji poza skryptami?
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 …

1
Zarejestruj komponenty obiektu gry w podsystemach gry? (Projektowanie obiektowe oparte na komponentach)
Tworzę system obiektowy oparty na komponentach . Kilka porad: GameObjectjest po prostu listą Components. Istnieje GameSubsystems. Na przykład renderowanie, fizyka itp. Każdy GameSubsystemzawiera wskaźniki do niektórych Components. GameSubsystemjest bardzo potężną i elastyczną abstrakcją: reprezentuje dowolny fragment (lub aspekt) świata gry. Potrzebny jest mechanizm rejestracji Componentsw GameSubsystems(kiedy GameObjectzostanie utworzony i skomponowany). …

2
Jak ustrukturyzować stany gry w systemie opartym na jednostce / komponencie
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 …

2
Ponieważ Table.drawDebug jest przestarzałe w libGDX, czego powinienem użyć?
Postępuję zgodnie z książką „Learning LibGDX Game Development”, aby stworzyć prostą grę. Jestem w sekcji tworzenia menu, w której tworzymy scenę i renderujemy ją z ramkami debugowania. Książka mówi, aby używać, Table.drawDebug(stage)ale ta statyczna metoda wydaje się Tablecałkowicie usunięta z klasy frameworków . Importuję com.badlogic.gdx.scenes.scene2d.ui.Table; poniżej jest mój kod: @Override …


3
Jak uniknąć „systemów Blob” w systemie komponentów bytu?
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. …

2
Kiedy / gdzie aktualizować komponenty
Zamiast moich zwykłych, ciężkich silników gier, bawię się podejściem opartym na komponentach. Mam jednak trudności z uzasadnieniem, gdzie pozwolić komponentom na wykonanie swoich zadań. Powiedzmy, że mam prosty byt, który ma listę komponentów. Oczywiście jednostka nie wie, jakie są te elementy. Może być obecny element, który nadaje bytowi pozycję na …


3
System encji składowych - Aktualizacje i zamówienia połączeń
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ć, …

3
Tworzenie encji jako agregacji
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 …

2
Jak mogę w bezpieczny sposób obsługiwać komunikację między komponentami i przy użyciu pamięci komponentu przyjaznej dla pamięci podręcznej?
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 …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.