아무 것도 표시하지 않고 XNA 게임을 실행할 지 궁금합니다.
한 명의 플레이어가 호스트이고 다른 사람들이 자신의 게임에 연결할 수있는 클라이언트 서버 설정에서 실행되는 작업중인 게임이 있습니다.
이제 그래픽 카드가없는 decicated 서버에서 호스트로 게임을 실행할 수 있기를 원합니다. 기본적으로 Draw () 로직을 전혀 실행하고 싶지 않습니다.
게임 전체를 살펴보고 XNA에 대한 모든 참조를 제거해야합니까?
사람들은 이것을 어떻게 했습니까?
편집 : 내가 원하는 이유는 게임에서 작동하는 클라이언트 서버 설정이 있고 별도의 “헤드리스”서버 프로그램을 만들고 싶지 않기 때문입니다.
답변
정상적인 C # 프로젝트를 만들고 XNA 바이너리를 포함하십시오. 그러면 XNA 데이터 유형 및 프레임 워크 메소드에 액세스 할 수 있습니다. 내 게임은 이것을하고 완벽하게 작동합니다.
답변
대답은 이러지 마십시오. 게임을 할 필요가없는 경우 – 즉; XNA가 제공하는 기능을 활용하지 않으려는 이유는 무엇입니까? 실제로 게임을 성공적으로 시뮬레이션 할 수있는 사용자 지정 소프트웨어 (일반적으로 일종의 콘솔 시스템)를 개발해야합니다. 자세한 내용을 알려 주면 덜 일반적인 답변으로 답변을 업데이트하겠습니다.
답변
당신은 단순히 그리기 호출을 제거하고자하는 음 경우이를 사용하여 시도가 : 억제 그리기
답변
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 를
참조하십시오.
답변
XNA 프로젝트의 출력 유형을 “콘솔 응용 프로그램”으로 변경하면 실제 게임 창을 열지 않고도 응용 프로그램을 시작할 때 빈 콘솔을 열 수 있습니다. 테스트를 원하기 때문에 수행하려는 작업에 유용 할 수 있으며 콘솔을 디버그 창으로 매우 쉽게 사용할 수 있습니다.
답변
업데이트 및 그리기 호출을 재정의하고 단순히 돌아 오는 것을 고려할 수도 있습니다.
또한 메인 게임 클래스에서 그래픽스 디바이스를 호출하지 마십시오. 그러면 서버 역할을하는 게임에서 xna 창이 인스턴스화되지 않아야합니다.