디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

혹시 게임프로그래밍 하는 사람 없나 내가 처음으로 프로그래밍 질문올린다.

영꼰이갤로그로 이동합니다. 2012.11.22 18:58:02
조회 280 추천 0 댓글 21


1. 나는 그냥 프로그래머고 게임 프로그래밍을 하는 사람은 아닌데 그냥 2D 게임을 만들어 보려고 생각 중이다.

2. 대부분의 게임에서 가장 본질적이고 핵심적인 부분이라고 할 수 있는 '충돌체크'에 대한 질문을 하려고 한다.

3. 프로그래밍 언어나 게임프로그래밍에 대한 기초적인 지식은 가지고 있으니 적당히 설명해 주면 알아 들을 수 있다.

---

자, 우선 나는 일반적으로 2D 게임에서 쉽게 통용되는 '두 사각형 객체 간의 충돌체크'에 대해서는 무리 없이 알고 있다.

이 경우는 객체 간의 관계가 '일대일'일 때고, 다음으로 생각해 봐야 하는 상황은 객체 간의 관계가 '일대다'인 경우이다.

즉, 슈팅 게임에 나오는 '플레이어가 조종하는 캐릭터 하나와 다수의 적들의 관계' 정도를 생각하면 된다. 다시 말해,

내 캐릭터와 적들 간의 충돌체크는 필요하지만, 적들 서로 간의 충돌체크는 필요하지 않은 그런 상황을 말하는 것이다.

이런 경우에는 그냥 상대 객체의 수만큼(적의 수만큼) 체크를 반복하면 된다. 그렇게까지 연산 횟수가 많이 늘어나지 않아

(상대 객체가 100이면 100번만 하면 되니까) 이렇게 해도 사실 큰 무리가 없어 보인다.

---

문제는 객체 간의 관계가 '다대다'일 때이다. 다시 말해, "적군과 아군이 30대 30으로 전투를 벌이는 게임"에서는 아군과 적군

사이의 충돌체크 뿐만 아니라, 아군과 아군 사이에서도 충돌체크가 필요하다. (겹치면 안되니까) 다시 말해 화면 내에 있는

모든 객체들이 서로에 대한 충돌체크가 필요한 것이다. 이런 경우에 위와 같은 방법을 적용하면 생각보다 많은 연산횟수가

필요하게 된다. 중복된 체크를 피하더라도 객체의 수 n에 따라 n!이라는 횟수로 증가하게 되는데, 내가 실제로 구현해보지

않은 상태라 이게 어느정도의 부하를 가져 올 지는 모르겠지만, 누가 생각해 봐도 결코 좋은 방법은 아니다.

---

그렇다면 결론적으로 "다수의 객체들이 실시간으로 자신을 제외한 모든 객체와 충돌체크를 할 수 있는 효율적인 알고리즘 혹은 그 방법"

이 있다면 어떤 방법이 있을까? 그리고 일반적인 2D 게임들은 어떤 방법을 이용하는 것일까? 그것이 궁금하다.

---

구체적인 구현 방법에 대해서 설명하지 않아도 개괄적으로 이런 방식이 효율적이다 정도만 제시해 줘도 충분히 구현 할 수 있을 거 같은데

어디 그런 거 물어볼 데가 없다. 저번에 보니까 영역을 여러개로 나눠서 각 영역 내에 있는 것들끼리만 연산한다던데, 그러면 경계면에 있는

두 객체는 연산이 안되거나 하는 문제가 발생할 수 있지 않나? 거기에 뭐 이진탐색 같은 걸 활용한다는 거 같기도 하고 여튼 모르겠다.

누구 좀 잘 가르쳐 줄 사람 없을까?

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
338703 c언어 기본만 끝내는데 대충 몇달 걸림? [3] 개발툴추천좀(121.176) 12.11.25 117 0
338702 c언어 개발툴 뭐없냐?? 비쥬얼스튜디오말고 [6] 개발툴추천좀(121.176) 12.11.25 173 0
338701 matlab 허세용 언어아님? [1] ㅁㄴㅇㄴ(59.11) 12.11.25 77 0
338700 자꾸 책추천 책추천 그러는데 책사는법 알려준다 ㅁㄴㅇㄴ(59.11) 12.11.25 44 0
338699 이정도면 선정리 甲아님? [3] ㅇㅇㅇ(1.209) 12.11.25 136 0
338698 vc++만 쓰다가 오랜만에 이클립스 최신판 써본 소감.txt [5] 김주갤(125.177) 12.11.25 113 0
338697 아냐 확실히 물 쓰레기된건 사실 [6] 김주갤(125.177) 12.11.25 138 0
338696 HTML5 책 추천좀 해주세요 [5] 네로시엔갤로그로 이동합니다. 12.11.25 158 0
338695 아! 내가 해냈다! [4] appllee갤로그로 이동합니다. 12.11.25 96 0
338694 확실히 프갤 많이 바꼈다 [3] 김주갤(125.177) 12.11.25 95 0
338693 매트랩은 도대체 어따 써먹나염 [2] 에루스(223.33) 12.11.25 96 0
338692 xp에 이클립스 깔았는데 괄호 찾기가 안된다;;;;;;;;;; 으아아아악(125.177) 12.11.25 97 0
338690 여자 음부에서 식초냄새날까? 이쁜 메이크업 뒤어 숨겨저있는 공포네 [1] Kyle(220.244) 12.11.25 337 0
338689 dc차단기를 만들껀데 aa2(211.244) 12.11.25 35 0
338688 프로그래밍 잘하게되고싶다 티버애니갤로그로 이동합니다. 12.11.25 57 0
338687 Kyle's Quest란 게임이 있었지 에어로홍갤로그로 이동합니다. 12.11.25 66 0
338686 왜 내 도메인은 www. 붙여야 되는거임 [4] appllee갤로그로 이동합니다. 12.11.25 105 0
338685 페이스북 사용할때 불편했던 단점같은것좀 말해주라 [3] 아이디(121.176) 12.11.25 78 0
338682 게임핵 만드려면 어느정도 실력이여야되나요? [1] Coffee갤로그로 이동합니다. 12.11.25 160 0
338681 천재 프로그래머라하면 어떤게 천재임? [7] r(175.192) 12.11.25 449 0
338672 1년차 지방 이직 할때 단가가 얼마정도인가요? 3424(121.183) 12.11.25 47 0
338669 1990년대 초부터 시작해서 작금에 이르기까지 이럴수가! [2] 때릴꺼야?(116.40) 12.11.25 107 0
338668 c언어 초보인데 이것좀 알려주세요 초보(175.206) 12.11.25 78 0
338667 리버싱 초고수가 될거다 리버싱갤로그로 이동합니다. 12.11.25 69 0
338666 지금 전문학교 다니는중인데 후회된다... [3] ㅁㄴㅇ(119.82) 12.11.25 208 0
338664 소켓+MFC로 2D 축구게임 만드려고 하는데 어떨거같냐? [5] ㅁㄴㅇ(119.82) 12.11.25 140 0
338663 니네 포탈건 있으면 뭐할거냐 [5] (59.14) 12.11.25 145 1
338662 pc용 게임 개발하면 어떻게팜? [4] 티버애니갤로그로 이동합니다. 12.11.25 130 0
338660 세그먼트 오류 어디서 발생한지 알수있는법 있나여? [1] (220.94) 12.11.25 72 0
338657 소켓통신에서 멀티플렉싱이랑 멀티스레드중 속도 어느게 빠르나요 [1] c(121.145) 12.11.25 115 0
338656 2차원배열에 쓰기좋은 반복문 없음? appllee갤로그로 이동합니다. 12.11.25 65 0
338654 2D 개발엔진 찾아보니 [14] 뉴비(223.33) 12.11.24 227 0
338653 에휴..... ㅇ.갤로그로 이동합니다. 12.11.24 29 0
338651 내 고추를 스스로빨면 그게 근친상간임 아님 게이임? [5] sxbxb(220.244) 12.11.24 498 0
338650 레노미냐야, 내가 언제 너를 무시했냐? [2] Kyle(220.244) 12.11.24 58 0
338649 근데 드립 아니고 실제로 RPG만들기로 만든 게임으로 돈 번 놈 있는데 [4] 영꼰이갤로그로 이동합니다. 12.11.24 246 0
338647 getAverage()함수 템플릿 작성 문제입니다. 도와줘요. 뽀로뤼갤로그로 이동합니다. 12.11.24 52 0
338646 웹에서 간단한 C 코드 컴파일하고 빌드된거 다운 받을 수 있는 곳 없음? [3] 수노구(175.112) 12.11.24 79 0
338645 근데 게임회사 프로그래머로 들어가는 놈들은 포트폴리오 낼 때 [2] 영꼰이갤로그로 이동합니다. 12.11.24 205 0
338644 형들 과제좀 제발 ㅠㅠ [4] 난바빠(121.148) 12.11.24 214 0
338643 RPG 메이커 진지하게 작업하면 블리저드 가능함? [10] Kyle(220.244) 12.11.24 220 0
338642 형님들 진지하게 해킹이랑 리버싱에 관해서 물어보는건데 [6] 프갤(180.66) 12.11.24 180 0
338638 int 변환형 cool 내가붙인이름 (int a) 매개변수 << 이게 먼 [12] 상상(175.123) 12.11.24 62 0
338637 어셈블리어 간단한거 하나만 질문 [2] 해킨(175.112) 12.11.24 77 0
338636 앙망글 2탄 간다. rlatifkenqkq(119.198) 12.11.24 42 0
338634 printf 질문좀 ㅇㅇ [2] rlatifkenqkq(119.198) 12.11.24 59 0
338633 프로그래밍에 대한 흥미가 떨어졌다 [3] ㅁㄴㅇ(119.82) 12.11.24 90 0
338632 프갤러들아 게임 질문좀 [25] 뉴비(223.33) 12.11.24 187 1
338631 c 레포트 만들려면 얼마줘야대나여? [8] (211.234) 12.11.24 93 0
338630 횽들 JSP는 편집기 뭐써? [24] aaa(118.36) 12.11.24 240 0
뉴스 신지 예비신랑 문원, 과거 논란 해명하며 진실 밝혀 디시트렌드 07.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2