나는 Terraria 와 비슷한 게임 엔진을 주로 도전 과제 로 연구 해 왔으며 대부분을 알아 냈지만 수백만 개의 상호 작용 가능 / 수확 가능한 타일을 처리하는 방법에 대해 머리를 감쌀 수는 없습니다. 게임은 한 번에 있습니다. 내 엔진에서 약 500.000 타일, 즉 Terraria 에서 가능한 것의 1/20을 만들면 프레임 속도가 …
2D 게임에서 큰 비디오 메모리 요구 사항을 어떻게 해결합니까? 우리는 allegro C / C ++에서 2D 게임 (Factorio)을 개발하고 있으며 게임 콘텐츠가 증가함에 따라 비디오 메모리 요구 사항이 증가하는 문제에 직면하고 있습니다. 현재 사용할 이미지에 대한 모든 정보를 수집하고 가능한 한 많은 이미지를 자르고 가능한 한 큰 아틀라스로 구성합니다. 이러한지도 …
방금 길 찾기에 대해 배우기 시작했고 A * 알고리즘을 살펴 보았습니다. 내 주요 관심사는 내가 본 모든 예제가 계산하는 정적 장애물을 보여줍니다. 움직이는 장애물이있는 경우, 예를 들어 캐릭터가 움직여야하는 다른 캐릭터와 같이 움직이면 각 프레임마다 알고리즘을 실행해야한다고 가정하지만 다소 비싸 질까 걱정됩니다. 하드웨어가 각 움직이는 액터에 대해 각 프레임을 처리합니다. …
모범 사례 관점에서이 패턴에 대해 여러 번 읽었습니다. 메모리 할당 : 새 객체를 즉석에서 인스턴스화하는 대신 항상 객체 풀 생성 및 사용을 고려하십시오. 메모리 조각화를 줄이고 가비지 수집기의 작동을 줄이는 데 도움이됩니다. 그러나 나는 그것이 실제로 무엇을 의미하는지 모른다. 어떻게 구현할 수 있습니까? 예를 들어 Unity 메서드를 GameObject사용하여 인스턴스를 생성 …
범위가 잘 정의 된 게임에서는이 작업이 쉬울 수 있지만 플레이어가 무엇이든 만들거나 만들 수있는 샌드 박스 게임에 대한 문제입니다 . 가능한 기술 : 상한이있는 메모리 풀을 사용하십시오. 더 이상 주기적으로 필요하지 않은 개체를 삭제하십시오. 처음에 여분의 메모리를 할당하여 나중에 복구 메커니즘으로 해제 할 수 있습니다. 나는 약 2-4MB를 말할 것입니다. …
게임의 파일 크기와 음악을 줄이려고하는데 SFX가 좋은 부분을 차지하고 있습니다. 120bpm에 노래 나 사운드 효과를 낸 다음 DAW 또는 독립형 프로그램을 사용하여 템포와 피치 두 배를 적용한 다음 새로운 배속 오디오 파일을 녹음하면 원래 파일 크기의 절반이됩니다 (노래 길이는 현재 반으로). 그런 다음 게임 엔진 (Unity)을 사용하여 240bpm 오디오 파일을 …
보통 게임에서는 장면에 수백 또는 수천 개의 물체가 있습니다. 기본 샷 (bullet)을 포함한 모든 객체에 기본 new () 를 통해 동적으로 메모리를 할당하는 것이 완벽 합니까? 동적 할당을 위해 메모리 풀을 만들어야합니까 , 아니면 이것을 귀찮게 할 필요가 없습니까? 대상 플랫폼이 모바일 장치 인 경우 어떻게합니까? 모바일 게임에서 메모리 관리자 …
예를 들어 술 : 세계에 10 개의 방이 있다고 가정 해 봅시다. 그리고 세계가 10 개의 독립 체에 의해 거주한다고 가정 해 봅시다. 또한 각 엔티티에는 자체 "일상 루틴"이있어 회의실에서 특정 작업을 수행하고 회의실 간에도 이동할 수 있습니다. 플레이어가 한 번에 한 방에만있을 수 있다는 점을 고려할 때 다른 실체가 …
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? Game Development Stack Exchange에 대한 주제가 되도록 질문을 업데이트하십시오 . 휴일 3 년 전 . (이것은 게임 프로그래밍 그 자체는 아니지만, 내가 이것을 물었을 때 나는 역사가 우리에게 모든 큰 게임 이이 일에 대해 걱정하게한다고 말하더라도 …
CPU 캐시를 현명하게 사용하기에 적합한 아키텍처 인 ECS 게임 엔진 설명서를 자주 읽습니다. 그러나 CPU 캐시의 이점을 어떻게 얻을 수 있는지 알 수 없습니다. 구성 요소가 연속 메모리에 배열 (또는 풀)로 저장된 경우 구성 요소를 순차적으로 읽는 경우에만 CPU 캐시 BUT을 사용하는 것이 좋습니다. 시스템을 사용할 때 특정 유형의 구성 …
는 OpenGL ES에 내 마음을 상쾌하게하는 동안, 나는 우연히 glDrawArrays하고 glDrawElements. 나는 그것들이 어떻게 사용되는지 이해하고 왜 그들이 다른지 이해합니다. 내가 이해하지 못하는 것은 glDrawElements무승부 전화를 저장 하는 방법을 알 수 없다는 것입니다 ( 무승부 전화 저장 은 내가 읽은 대부분의 책에서 언급 한 설명이므로 여기에 언급합니다). 두 개의 삼각형을 …