디시인사이드 갤러리

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

갤러리 본문 영역

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

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


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

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

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

---

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

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

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

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

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

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

---

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

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

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

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

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

---

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

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

---

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

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

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

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

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
338778 음.. 군대에서 볼만한 책좀 알려주세요 ㅠ [12] 두비두분(125.129) 12.11.26 179 0
338775 싸이 그 새끼 떄문에 산업체 자격 빡세졌지 [2] ㅁㅇㄴㅁㄴㅇ(59.11) 12.11.26 91 0
338772 html, css, js 책 사려고 하는데 형들 추천해줄거 있어? [3] (59.14) 12.11.26 158 0
338771 애플이 망하지 않는 이유 1가지 추가한다. [2] ㅇ.갤로그로 이동합니다. 12.11.26 111 0
338769 네트워크 프로그래밍에서 send에서의 문제 [5] ㅁㄴㅇ(112.170) 12.11.26 83 0
338768 형들 갑자기 else에서 오류나 ㅡㅡ [2] i5-760(220.94) 12.11.26 48 0
338767 우분투 12.04에서 루트계정으로 로그인 하는 방법... [1] 어텅엇헝(211.63) 12.11.26 140 0
338766 형들 내가 JDBC공부좀 하려는데 환경설정이 뭔가 안되는 것 같아 고자라인(175.112) 12.11.26 38 0
338765 형들 어플만들고 있는데 좀 도와줘요 [3] 당근의유혹갤로그로 이동합니다. 12.11.26 112 0
338763 외주 했는데 입금이 안됨 [1] d(175.192) 12.11.26 69 0
338762 근대 정보처리기사는 그나마양호한건다. 미용자격증은 어떤건지아냐? [2] 외국여행가자(59.26) 12.11.26 150 0
338761 Visual C++는 거대한 switch-case를 어떻게 처리하는가 r(175.192) 12.11.26 104 0
338760 정보처리기사 ..시바 한달동안공부해서 겨우딴나는뭐냐 [4] 외국여행가자(59.26) 12.11.26 255 0
338756 혹시 DB,asp 하실줄 아시는분있나요? 수고비드려요 [1] 뉴뉴(119.206) 12.11.26 53 0
338755 정보처리기사 이거 심각하네 [5] dd(182.215) 12.11.26 238 1
338752 C++ 고수를 찾습니다. [10] 고수를찾다(180.64) 12.11.25 174 0
338750 지금 다큐멘터리 3일 봐봐 다크엔젤z갤로그로 이동합니다. 12.11.25 83 0
338748 MAD LAN [1] 때릴꺼야?(116.40) 12.11.25 73 0
338745 플게이들아 이제 막 프로그래밍 공부해보려는 좆대딩 3학년인데 [4] ㅇㅇㅇ(122.34) 12.11.25 200 0
338744 안드로이드 버튼 이미지에 관해서 하나 여쭤볼게영.. [4] 프램천사(121.186) 12.11.25 59 0
338742 안드로이드 게임들 ... 결제크랙 만들줄 아시는분 연락바래요 [5] 사시미(210.123) 12.11.25 179 0
338741 jquery ajax 질문 하나만 한다 [11] 리버싱갤로그로 이동합니다. 12.11.25 137 0
338740 프갤에 개고수님들이 많다고 하여 올려봅니다. ㅎㅎㅎㅎ(119.198) 12.11.25 56 0
338739 C# 고수님들 부탁좀 드립니다.. [2] 정세희입니다.갤로그로 이동합니다. 12.11.25 133 0
338738 저내일 진짜 옆집가서 물어보고옴 새우튀김가루갤로그로 이동합니다. 12.11.25 56 0
338737 하앍 트위터 플텍계정 뚫고싶다 ㄹㅇㄴㅁ(115.20) 12.11.25 6003 0
338735 리눅스에서 윈도우의 BitLocker 드라이브 암호화 같은거 없나요? [3] 학생(195.60) 12.11.25 189 0
338734 db 테이블 한글 여백에 대해 질문점여 [4] db질문점(211.234) 12.11.25 66 0
338733 directx써서 작업표시줄 3d로 바꾸면 재밋을듯 [4] 티버애니갤로그로 이동합니다. 12.11.25 82 0
338731 펌웨어 프로그래밍 어려움?? 조낸 노가다임?? 노인(182.211) 12.11.25 55 0
338730 후........ 나이가 많아서 취업이 안되는 듯 하다. [2] 노인(182.211) 12.11.25 156 0
338728 아오 게임 프레임이 왜이러냐 [6] 설리(119.199) 12.11.25 113 0
338726 동물 키우고싶다 [2] 정수정•‿•갤로그로 이동합니다. 12.11.25 84 0
338725 자바고수님들.. . . . . Null 값도 값인가요? [3] ff(116.44) 12.11.25 100 0
338721 RPG만들기2000 마스터 하고 싶다. [3] 영꼰이갤로그로 이동합니다. 12.11.25 123 0
338720 프로그래머는 천재 없지않냐 [1] 뉴비(1.210) 12.11.25 139 0
338719 사과란 단어가 빨간색을 어떻게 나타내는지 알게뭐냐 뉴비(1.210) 12.11.25 46 0
338718 알파벳도 모르는 놈이 추상적인 단어에 대해 묻는격 뉴비(1.210) 12.11.25 56 0
338717 directX 해볼까? [3] 티버애니갤로그로 이동합니다. 12.11.25 80 0
338716 API 이용해서 피아노 만들고 있는데 7225(219.252) 12.11.25 63 0
338715 오늘첨님 님이 원하는 게임은 C언어 같은 쓰레기로 만든 게 아니예요 ㅋ [3] 영꼰이갤로그로 이동합니다. 12.11.25 160 0
338714 c언어배우면 이런게임밖에 못만드나요??? [66] 오늘첨(121.176) 12.11.25 530 1
338712 이거 왜 중간에 코드 건너 뛰지요(코드 짧음) [1] ㅇㅇ(203.90) 12.11.25 41 0
338711 c언어 배워서 어디다가쓰나여? [2] 오늘첨(121.176) 12.11.25 87 0
338709 c언어 개발하는거보면 전부다 콘솔창 가지고 지랄하던데 그걸로 뭐 어디에써 [3] 오늘첨(121.176) 12.11.25 107 0
338708 형들 노트북 추천좀 [4] WannaParty갤로그로 이동합니다. 12.11.25 137 0
338707 우분투에서 코딩하니까 은근 좋다 [1] ㄹㅇㄴㅁ(115.20) 12.11.25 117 0
338706 cmd파일 편집 질문 병신(125.208) 12.11.25 74 0
338705 근데 꼭 천재와 바보의 차이가 아니더라도 머리 차이는 있지않냐??? [4] ㅇㅇ(203.90) 12.11.25 113 0
338703 c언어 기본만 끝내는데 대충 몇달 걸림? [3] 개발툴추천좀(121.176) 12.11.25 115 0
뉴스 '남주의 첫날밤을 가져버렸다' 서현×옥택연의 달달함 속, 성현군 이태선 등장!  디시트렌드 07.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2