그래픽없이 XNA 게임 실행


11

아무 것도 표시하지 않고 XNA 게임을 실행할 지 궁금합니다.

한 명의 플레이어가 호스트이고 다른 사람들이 자신의 게임에 연결할 수있는 클라이언트 서버 설정에서 실행되는 작업중인 게임이 있습니다.

이제 그래픽 카드가없는 decicated 서버에서 호스트로 게임을 실행할 수 있기를 원합니다. 기본적으로 Draw () 로직을 전혀 실행하고 싶지 않습니다.

게임 전체를 살펴보고 XNA에 대한 모든 참조를 제거해야합니까?

사람들은 이것을 어떻게 했습니까?

편집 : 내가 원하는 이유는 게임에서 작동하는 클라이언트 서버 설정이 있고 별도의 "헤드리스"서버 프로그램을 만들고 싶지 않기 때문입니다.


Draw처럼 코드를 작성할 수 if (headless) { return; }없습니까?
ashes999

1
@ asher999 게임에서 모든 그리기 및 그래픽 논리를 완전히 제거하는지 확실하지 않습니다. 가상 서버에는 실제 그래픽 어댑터가 전혀 없을 수 있습니다.
JensB

출력 유형을 변경하거나 도면을 건너 뛰어도 그래픽 장치에 대한 XNA의 의존성이 완전히 제거되지는 않습니다. 그래픽 장치 (특히 텍스처)가 필요한 컨텐츠를로드하는 경우 제안 된 솔루션 중 하나를 사용하여로드하지 못할 가능성이 매우 높습니다.
dadoo Games

답변:


10

정상적인 C # 프로젝트를 만들고 XNA 바이너리를 포함하십시오. 그러면 XNA 데이터 유형 및 프레임 워크 메소드에 액세스 할 수 있습니다. 내 게임은 이것을하고 완벽하게 작동합니다.


1
XNA와 같은 랩퍼를 작성하여 Update와 같은 필요한 메소드를 호출하는 것 같습니다. 감사합니다.
JensB

2

대답은 이러지 마십시오. 게임을 할 필요가없는 경우 – 즉; XNA가 제공하는 기능을 활용하지 않으려는 이유는 무엇입니까? 실제로 게임을 성공적으로 시뮬레이션 할 수있는 사용자 지정 소프트웨어 (일반적으로 일종의 콘솔 시스템)를 개발해야합니다. 자세한 내용을 알려 주면 덜 일반적인 답변으로 답변을 업데이트하겠습니다.


1
한 가지 이유는 유닛 테스트입니다. 종종로드 또는 그리기 및 그래픽없이 코드 또는 부분을 테스트하려고합니다.
Stephen Tierney 2013

3
@StephenTierney 나는 당신에게 또 다른 이유를 줄 수 있습니다 : 그는 노력하지 않고, 게임 서버를 (전용 기계에서) 실행하려고합니다. 질문을 다시 읽고 downvote를 다시 고려하십시오.
Vaughan Hilts


1

Untitled의 제안을 바탕으로 DLL에 대한 참조를 포함시키고 기본 게임 루프를 사용하지 않고 사용할 수 있습니다. 이에 대한 예는 제작자 클럽의 winforms 튜토리얼 시리즈를 참조하십시오. http://xbox.create.msdn.com/en-us/education/catalog/sample/winforms_series_2

또한 더 화려하게 만들고 싶다면 전체 XNA 게임 루프를 사용자 정의 루프로 교체하고 전체 프로세스를 제어 할 수 있습니다. 이에 대한 자세한 내용은 /programming/6361691/custom-xna-game-loop-in-windows참조하십시오.


1

XNA 프로젝트의 출력 유형을 "콘솔 응용 프로그램"으로 변경하면 실제 게임 창을 열지 않고도 응용 프로그램을 시작할 때 빈 콘솔을 열 수 있습니다. 테스트를 원하기 때문에 수행하려는 작업에 유용 할 수 있으며 콘솔을 디버그 창으로 매우 쉽게 사용할 수 있습니다.


1

업데이트 및 그리기 호출을 재정의하고 단순히 돌아 오는 것을 고려할 수도 있습니다.

또한 메인 게임 클래스에서 그래픽스 디바이스를 호출하지 마십시오. 그러면 서버 역할을하는 게임에서 xna 창이 인스턴스화되지 않아야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.