Czy powinienem mieć osobne wątki do renderowania i logiki, a nawet więcej? Jestem świadomy ogromnego spadku wydajności spowodowanego synchronizacją danych (nie mówiąc już o jakichkolwiek blokadach mutex). Zastanawiałem się, czy nie podejść do tego ekstremalnie i zrobić nici dla każdego możliwego podsystemu. Ale martwię się, że to też może spowolnić. …
W Dwarf Fortress możesz mieć setki krasnoludów, zwierząt, goblinów itp. W grze w tym samym czasie, każda z własną złożoną sztuczną inteligencją i procedurami poszukiwania ścieżki. Moje pytanie brzmi: w jaki sposób nie powoduje to zauważalnego spowolnienia? Czy każdy krasnolud działa we własnym wątku?
Jakie są najlepsze zasoby na temat projektowania i rozwoju wielowątkowej gry lub silnika gry? Ponieważ w tym kierunku zmierzają komputery, zamierzam przestudiować ten temat i chciałbym wiedzieć, jakie zasoby i przykłady są dostępne.
Jestem bardzo nowy w tworzeniu gier, ale nie w programowaniu. Gram (ponownie) w grę typu Pong, używając canvaselementu JavaScript . Utworzyłem Paddleobiekt, który ma następujące właściwości ... width height x y colour Mam również Pongobiekt, który ma właściwości takie jak ... width height backgroundColour draw(). draw()Metoda obecnie jest zresetowanie canvasi …
Mam algorytm generowania poziomów, który jest ciężki obliczeniowo. Wywołanie go zawsze powoduje zawieszenie się ekranu gry. Jak mogę umieścić funkcję w drugim wątku, gdy gra nadal wyświetla ekran ładowania, aby wskazać, że gra się nie zawiesiła?
To pytanie ma tylko na celu zdobycie wiedzy o tym, jak gra może poradzić sobie z tak wieloma postaciami na raz. Jestem nowy w grach, dlatego z góry proszę o wybaczenie. Przykład Tworzę grę obrony wieży, w której jest 15 miejsc na wieże, w których buduje się wieże, a każda …
Co najmniej gra OpenGL na Androida ma wątek interfejsu użytkownika i wątek renderujący utworzony przez GLSurfaceView. Renderer.onDrawFrame()powinien wykonywać minimum pracy, aby uzyskać najwyższy FPS. Fizyka, sztuczna inteligencja itp. Nie muszą uruchamiać każdej klatki, więc możemy umieścić je w innym wątku. Teraz mamy: Wątek renderowania - Aktualizuj animacje i rysuj polisy …
Buduję grę w eksplorację kosmosu i obecnie rozpocząłem pracę nad grawitacją (w C # z XNA). Grawitacja wciąż wymaga ulepszenia, ale zanim to zrobię, muszę rozwiązać niektóre problemy z wydajnością w moich obliczeniach fizycznych. Wykorzystuje 100 obiektów, zwykle renderując 1000 z nich bez obliczeń fizycznych, osiąga znacznie ponad 300 FPS …
Właśnie zaimplementowałem obsługę wielowątkowego wprowadzania danych w silniku gry, w którym kod odpytujący system operacyjny w celu zebrania danych wejściowych i znaczników czasu znajduje się w osobnym wątku, a każda ramka w głównym wątku zjadam zebrane dane wejściowe do logiczny czas gry. Wszystko działa, ale ta konfiguracja zużywa 100% mojego …
Podczas gdy biblioteka taka jak SDL zapewnia wieloplatformowy interfejs API do tworzenia wątków, myślę, że naiwnością byłoby zakładać, że prowadzi to bezpośrednio do łatwego rozwoju gier na bardzo różnych platformach (stacjonarnych / mobilnych). Jaki jest najlepszy sposób radzenia sobie z programowaniem w ten sposób (biorąc pod uwagę dowolny wieloplatformowy interfejs …
Ostatnio miałem do czynienia z niektórymi problemami z drganiami dotyczącymi liczby klatek na sekundę w mojej grze i wydaje się, że najlepszym rozwiązaniem byłoby to zaproponowane przez Glenna Fiedlera (Gaffer o grach) w klasycznej wersji Napraw swój timestep! artykuł. Teraz - używam już ustalonego przedziału czasu dla mojej aktualizacji. Problem …
Silnik C ++, nad którym obecnie pracuję, jest podzielony na kilka dużych wątków - Generacja (do tworzenia treści proceduralnych), Rozgrywka (do sztucznej inteligencji, skryptów, symulacji), Fizyka i Rendering. Wątki komunikują się ze sobą za pośrednictwem małych obiektów wiadomości, które przechodzą od wątku do wątku. Przed krokiem wątek przetwarza wszystkie przychodzące …
W jaki sposób oddzielna logika gry i rendering? Wiem, że wydaje się, że są tutaj pytania, które dokładnie o to pytają, ale odpowiedzi nie są dla mnie zadowalające. Z tego, co do tej pory rozumiem, rozdzielenie ich na różne wątki polega na tym, aby logika gry mogła natychmiast uruchomić kolejny …
Utworzyłem ekran ładowania, aby wyświetlać animację ładowania podczas ładowania następnej sceny. Następną scenę ładuję asynchronicznie za pomocą: yield return SceneManager.LoadSceneAsync(scene,LoadSceneMode.Additive); I również ustawione Application.backgroundLoadingPriority = ThreadPriority.Low;, ale zachowanie jest nadal takie samo jak zwykłe obciążenie poziomu. Czy coś brakuje? Oczekiwane zachowanie: Wyjdź z poziomu i wycisz. Pojawi się ekran ładowania. …
Mam projekt stworzenia od podstaw gry strategicznej w czasie rzeczywistym. Wciąż jestem na wczesnym etapie planowania, ale trochę programowałem, żeby zobaczyć mechanikę. Wiem jak programować. Mam również dobry pomysł na to, jak ustrukturyzuję klasy gier i sztuczną inteligencję opartą na regułach (komputer-maszyna) dla gracza komputerowego. Chcę opracować Doktryny, które nadadzą …
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.