Zastanawiasz się, czy w ogóle można uruchomić grę XNA bez wyświetlania czegokolwiek.
Mam działającą grę, która działa w konfiguracji serwera klienta, w której jeden gracz jest gospodarzem, a inne osoby mogą połączyć się z jego grą.
Chcę teraz móc uruchomić grę jako host na decy towanym serwerze bez karty graficznej, w zasadzie nie chcę uruchamiać żadnej logiki Draw ().
Czy naprawdę muszę przejść przez całą grę i usunąć wszystkie odniesienia do XNA?
Jak ludzie to zrobili?
EDYCJA : Powodem, dla którego chcę to zrobić, jest to, że mam działającą konfigurację serwera klienta w grze i nie chcę tworzyć osobnego „bezgłowego” programu serwera.
Draw
podobnyif (headless) { return; }
?Odpowiedzi:
Wystarczy wykonać normalny projekt w języku C # i dołączyć pliki binarne XNA. Dzięki temu uzyskasz dostęp do typów danych XNA i metod ramowych. Moja gra to robi i działa bezbłędnie.
źródło
Odpowiedź brzmi: nie rób tego. Jeśli nie musisz tworzyć gry - tj. nie chcesz skorzystać z oferty XNA, dlaczego to robisz? Naprawdę powinieneś zastanowić się nad stworzeniem niestandardowego oprogramowania, które może z powodzeniem symulować grę, w którą chcesz zagrać - zazwyczaj jakiś system konsoli. Jeśli podasz więcej szczegółów, zaktualizuję moją odpowiedź mniej ogólną odpowiedzią.
źródło
Cóż, jeśli chcesz po prostu wyeliminować wywołania losowania, próbowałeś tego użyć: Pomiń losowanie
źródło
Aby skorzystać z sugestii bez tytułu, możesz po prostu dołączyć odwołania do bibliotek DLL i używać ich bez użycia domyślnych pętli gier. Przykłady tego można znaleźć w serii samouczków winforms w klubie twórców: http://xbox.create.msdn.com/en-us/education/catalog/sample/winforms_series_2
Ponadto, jeśli chcesz uzyskać jeszcze więcej fantazji, możesz zastąpić całą pętlę gry XNA własną, niestandardową i kontrolować cały proces. Aby uzyskać więcej informacji na temat tego spojrzenia na /programming/6361691/custom-xna-game-loop-in-windows
źródło
Jeśli zmienisz typ wyjścia projektu XNA na „Aplikacja konsoli”, aplikacja po prostu otworzy pustą konsolę podczas uruchamiania, nigdy nie otwierając okna rzeczywistej gry. Może to być przydatne do tego, co próbujesz osiągnąć, ponieważ chcesz wykonywać testy i bardzo łatwo możesz użyć konsoli jako okna debugowania.
źródło
Możesz również rozważyć zastąpienie aktualizacji i rysowanie połączeń, a po prostu powrót.
Nie należy również wywoływać urządzenia graficznego w głównych klasach gier, co powinno uniemożliwić wystąpienie okna xna w grze działającej jako serwer.
źródło