«architecture» 태그된 질문

코드 구성 방식 게임 엔진의 내부 디자인에 대한 질문

5
키보드 입력 시스템 처리
참고 : API 제한 (SFML)으로 인해 콜백을 수행하기보다는 폴링해야합니다. 또한 '괜찮은'타이틀이없는 것에 대해 사과드립니다. 여기에 두 가지 질문이 있습니다. 수신중인 입력을 등록하는 방법 및 처리 방법 입력 처리 예를 들어, 'A'키를 눌렀다는 사실을 등록한 후 거기에서 수행하는 방법에 대해 이야기하고 있습니다. 전체 키보드 배열을 보았습니다. bool keyboard[256]; //And each input …

2
Manager 클래스 작성을 피하려면 어떻게해야합니까?
XxxManager게임 엔진 프로그래밍에서 스타일 클래스 를 사용하는 것은 좋지 않은 생각 이지만, 사용을 피하려고 할 때도 항상 모든 배우 / 엔터티 / 게임 세계 위치를 보유하고 행동하는 무언가로 끝납니다. Manager다른 이름 으로 if가됩니다. 실제로 따라하기 어려운 패턴입니까? 그렇다면 대안은 무엇입니까?

3
게임 엔진에서 자산을 식별합니까?
로드 된 자산을 식별하고 싶지만 어떤 자산을 선택해야하는지 모르겠습니다. 두 가지 옵션이 있습니다 : 이름 (문자열) 이것은 unorder_map (O (1))에서 가장 쉽고 빠르지 만 정수를 사용하는 것보다 느립니다. 코드에서 쉽게 이해할 수 있습니다. 정수 가장 빠릅니다. 코드에서 이해할 수 없습니다. 나는 문자열이 그렇게 안전하거나 빠르지 않다는 것을 알고 있지만 그렇게 …

4
개발 후반에 네트워킹 코드를 작성하는 방법은 무엇입니까?
나는 현재 대부분의 측면에서 개선하고 싶은 게임을 작성하는 초기 단계에 있습니다. 네트워크 코드 작성을 생략하고 쉽게 구현할 수있는 방법, 즉 게임을 추가하기 위해 전체 게임을 다시 작성할 필요가없는 방법은 무엇입니까? 무엇을 명심해야합니까? 물리 / 충돌 감지, 게임 로직, 데이터 유형 및 애니메이션 / 렌더링을 서로 분리하는 구성 요소 패턴이 있습니다. …

2
네트워크로 연결된 실시간 게임을 위해 게임 상태 스냅 샷 시스템은 어떻게 구현됩니까?
네트워킹 클래스를위한 프로젝트로 간단한 클라이언트-서버 실시간 멀티 플레이어 게임을 만들고 싶습니다. 실시간 멀티 플레이어 네트워크 모델에 대해 많이 읽었으며 클라이언트와 서버와 지연 보상 기술 간의 관계를 이해합니다. 내가하고 싶은 것은 Quake 3 네트워크 모델과 비슷한 것입니다. 기본적으로 서버는 전체 게임 상태의 스냅 샷을 저장합니다. 클라이언트로부터 입력을 받으면 서버는 변경 사항을 …

3
순수한 기능 프로그래밍 및 게임 상태
함수형 프로그래밍 언어에서 상태 (일반적으로)를 처리하는 일반적인 기술이 있습니까? 모든 (기능) 프로그래밍 언어에는 전역 상태를 처리하는 솔루션이 있지만 가능한 한 이것을 피하고 싶습니다. 순수한 기능 방식의 모든 상태는 기능 매개 변수입니다. 따라서 전체 게임 상태 (세계, 플레이어, 위치, 점수, 자산, 적 등을 포함한 거대한 해시 맵)를 주어진 입력 또는 트리거에서 …

2
엔터티 ID 시스템을 사용하면 어떤 이점이 있습니까?
저는 현재 Programming Game AI By Example을 읽고 있습니다. 이 책에서는 게임의 각 엔티티에 고유 ID 번호를 지정하는 것에 대해 언급합니다. 종종 엔티티 때 의 접촉 엔티티에 요구 B는 , A는 참조 얻는다 B 전송하여 B를 에의 ID 번호를 EntityDatabase의 클래스를. 이 클래스는 ID 번호를 받고 엔터티에 대한 참조를 반환합니다. …

3
"일정한 게임 속도 최대 FPS"게임 루프와 매우 혼동
최근에 Game Loops에서이 기사를 읽었습니다 : http://www.koonsolo.com/news/dewitters-gameloop/ 그리고 권장되는 마지막 구현은 나를 깊이 혼란스럽게합니다. 나는 그것이 어떻게 작동하는지 이해하지 못하며 완전한 혼란처럼 보입니다. 본인은 원칙을 이해합니다. 게임을 일정 속도로 업데이트하고 남은 것은 가능한 한 여러 번 게임을 렌더링합니다. 나는 당신이 사용할 수 없다고 생각합니다 : 25 틱에 대한 입력 받기 …

1
클래스 간 데이터와 종속성을 깨끗하고 우아하게 처리하는 방법
SFML 2에서 2D 하향식 게임을하고 있는데 모든 것이 작동하고 잘 어울리는 우아한 방법을 찾아야합니다. 설명해주세요. 모든 클래스에 그리기 메소드와 업데이트 메소드를 제공하는 추상 기반에서 상속되는 많은 클래스가 있습니다. 게임 루프에서 update를 호출 한 다음 각 클래스를 그립니다. 이것이 일반적인 접근법이라고 생각합니다. 타일, 충돌, 플레이어 및 모든 타일 / 이미지 / …
12 c++  2d  architecture  sfml 

4
순환 클래스 의존성
서로를 필요로하는 2 개의 수업을 갖는 것이 나쁜 디자인입니까? 나는 GameEngine몇 가지 GameState물건 을 가진 수업이 있는 작은 게임을 작성하고 있습니다. 여러 렌더링 방법에 액세스하려면 이러한 GameState객체도 GameEngine클래스 를 알아야합니다 . 따라서 순환 종속성입니다. 이 나쁜 디자인이라고 부를까요? 나는 확실히 확신하지 못하기 때문에 묻는데, 현재도 여전히 이러한 것들을 리팩토링 할 …
12 c++  architecture 

1
네트워크를 통해 데이터 구조를 동기화하는 방법은 무엇입니까?
문맥 내가 작업하고있는 게임 (일종의 포인트 앤 클릭 그래픽 어드벤처)에서 게임 세계에서 발생하는 거의 모든 작업은 다음과 같은 구조의 액션 매니저에 의해 제어됩니다. 예를 들어 객체를 검사 한 결과 캐릭터가 hello라고 말하고 조금 걸어 다니고 앉으면 다음 코드를 스폰합니다. var actionGroup = actionManager.CreateGroup(); actionGroup.Add(new TalkAction("Guybrush", "Hello there!"); actionGroup.Add(new WalkAction("Guybrush", new …

4
객체 지향 OpenGL
한동안 OpenGL을 사용하고 있으며 많은 자습서를 읽었습니다. 많은 사람들이 여전히 고정 파이프 라인을 사용한다는 사실 외에도 일반적으로 모든 초기화, 상태 변경 및 드로잉을 하나의 소스 파일에 넣습니다. 튜토리얼의 제한된 범위에는 문제가 없지만 전체 게임으로 확장하는 방법을 연구하는 데 어려움을 겪고 있습니다. OpenGL 사용법을 파일간에 어떻게 분할합니까? 개념적으로, 순수한 화면에 물건을 …

2
이벤트 핸들러에 열광 할 수 있습니까? 내 디자인으로 "잘못된 길"을 가고 있습니까?
이벤트 핸들러를 정말 좋아하기로 결정했습니다. 분석 마비로 인해 약간의 고통을 겪을 수 있지만 디자인이 다루기 어려워 지거나 디자인 결정에 예기치 않은 다른 결과가 발생할 수 있습니다. 내 게임 엔진은 현재 패닝 오버 헤드 카메라로 기본 스프라이트 기반 렌더링을 수행합니다. 내 디자인은 다음과 같습니다. SceneHandler SceneListener 인터페이스를 구현하는 클래스 목록을 포함합니다 …

2
XBox 컨트롤러를 추상화하는 올바른 방법
응용 프로그램의 입력으로 사용하려는 XBox360 컨트롤러가 있습니다. 내가 해결할 수없는 것은 인터페이스를 통해 이것을 노출시키는 가장 좋은 방법입니다. 배후에서 컨트롤러를 처리하는 클래스는 폴링 버튼 상태에 의존합니다. 나는 처음에 무언가를 시도했다. Event ButtonPressed() as ButtonEnum 어디 ButtonEnum했다 ButtonRed, ButtonStart등 ... 이것은 버튼 누름 만 지원하고 보류 / 패턴 (두 번 누르기 …

2
XNA를 사용한 게임 아키텍처에 관한 질문
그래서 마침내 XNA를 가지고 놀았고 2D 게임을 만들면서 놀았습니다 (iOS에서 그것을 개발 한 친구의 많은 예술 자산이 있습니다) 많은 것들이하기 쉽고 상자에서 나오는 것처럼 보이지만 대부분의 문헌 (예를 들어 구입 한 책들)은 2D에 너무 많은 관심을 기울이지 않기 때문에 많은 것들에 푹 빠져 있습니다. 다음 질문에 대한 설명이나 자세한 정보를 …

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