디시인사이드 갤러리

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

갤러리 본문 영역

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

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


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

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

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

---

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

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

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

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

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

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

---

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

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

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

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

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

---

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

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

---

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

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

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

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

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 반응이 재밌어서 자꾸만 놀리고 싶은 리액션 좋은 스타는? 운영자 25/07/28 - -
AD 휴대폰 액세서리 세일 중임! 운영자 25/07/28 - -
341108 내 아는사람이 이렇게 조언을 해줬는데... 복잡하다 ㅠㅠ [4] 나의 아는사(222.96) 12.12.18 150 0
341107 mac용 이클립스 질문좀횽들 [10] Ping_2_U갤로그로 이동합니다. 12.12.18 114 0
341106 삼성 소프트웨어 멤버십 [2] a(175.192) 12.12.18 367 0
341105 ㅇㅇ sexer1갤로그로 이동합니다. 12.12.18 34 0
341104 삼성 소프트웨어 멤버쉽 하지마라 [4] sexer1갤로그로 이동합니다. 12.12.18 554 0
341102 솔직히 컴공나오면 그냥 대학교중퇴해라 [25] 소크락텍스(211.112) 12.12.18 470 0
341101 근데 대학에서 다클라우드쓰는거아니였냐? (211.234) 12.12.18 54 0
341100 개발자 형님들 좀 돠주세요 JSP 팝업존 자바스크립트(jquery)! [1] 궁금한게많으갤로그로 이동합니다. 12.12.18 161 0
341098 NIO vs IO Kyle(220.244) 12.12.18 128 0
341096 아 도배하려고 도배한게 아니라 오류나서 안올려지는줄 알고 계속했는데 다 123(116.120) 12.12.18 28 0
341095 이제 자바 배우는데 처음부터 막혔어요 HELP!!! [5] ㄹㄷ(116.120) 12.12.18 123 0
341094 이제 자바 배우는데 처음부터 막혔어요 HELP!!! fe(116.120) 12.12.18 37 0
341093 내일은 투표일입니당~ 멍청닭(182.211) 12.12.18 30 0
341092 형들 이거 무슨파일인지 좀 봐줘 ㅠㅠ 햄톨(222.96) 12.12.18 58 0
341091 이제 자바 배우는데 처음부터 막혔어요 HELP!!! ㄹㄷ(116.120) 12.12.18 47 0
341089 컴공 비전 없다고 말하는데.. 멀리보면 있다. [8] 형이다(14.45) 12.12.18 411 1
341088 진로 질문좀.. 펌웨어 vs 외국계 회사 웹, 어플 개발 [2] 잉잉잉갤로그로 이동합니다. 12.12.18 160 0
341087 기독교에서 말하는 삼위일체는 배열변수 아니냐? [4] ㅇㅇ(175.199) 12.12.18 76 0
341086 지방4년제 겜공과 다니다가 현재는 대기업 생산직.. [3] 겜프..(58.236) 12.12.18 245 0
341085 우리학교 클라우드 컴퓨터다. 본체가 없다. [6] ㅇㅇㅇ(1.209) 12.12.18 248 0
341083 헤헤 꼬꼬마가 다시한번만 질문할게여 ㅎ [7] (1.242) 12.12.18 91 0
341082 25 고졸 -> 직장&방통대 -> 대학원 가능할까요?? [2] ㅋㅋ(121.167) 12.12.18 332 0
341080 안드로이드 스레드 질문합니다. 질문(218.158) 12.12.18 54 0
341078 꼬마가 형님들에게 질문점 ㅎㅎ [2] (1.242) 12.12.18 58 0
341077 안드로이드앱개발앤 자바가 적절하나요? [4] 날개샀지예갤로그로 이동합니다. 12.12.18 169 0
341075 1학년 수업 들엇는데 후배보다 못함 질문받는다 [2] ssapo갤로그로 이동합니다. 12.12.18 89 0
341074 형들 리눅스 에서 fsck 명령을 쳤는데 [2] ddd(121.169) 12.12.18 75 0
341073 다른 SQL 질문 [2] 543543갤로그로 이동합니다. 12.12.18 69 0
341072 ㄴㅇㄹ야 과제 다했다. [9] WannaParty갤로그로 이동합니다. 12.12.18 142 0
341070 c언어 배열의 이름을 어떻게 바꾸죠? [7] urban(121.151) 12.12.18 143 0
341067 sts라고 안드로이드하는거 잇는데 그걸로 이용한 간단한 게임 및 프로젝트 [1] 자노짱갤로그로 이동합니다. 12.12.18 57 0
341066 jquery ajax json 이거 세기술을 쓰는데 [14] 천국거지갤로그로 이동합니다. 12.12.18 171 0
341065 형들 멀티프로세스좀 도와주세연.. WannaParty갤로그로 이동합니다. 12.12.18 33 0
341063 형들 내일 뽑기하러가연! WannaParty갤로그로 이동합니다. 12.12.18 53 0
341059 비전공자 진지하게 진로 고민 [7] 비전공자(1.228) 12.12.18 341 0
341058 xp는 32비트 닌깐 한번 연산할때 32비트고.. 윈7은 64비트니깐 [10] 상상(175.123) 12.12.18 161 0
341057 [조공있음 뒤조심] 형들 나 어플개발중인데.. [3] sdf(125.131) 12.12.18 250 0
341056 api사각형 그리기가 안되요..WM_CREATE에서.. [3] 이힝(1.254) 12.12.18 62 0
341055 프갤 애들이 그렇게 똑똑하다며? 조언 좀 해봐라 [6] 프갤(175.192) 12.12.18 176 0
341054 성님들 C부터 공부해야 합니까 C++ 부터 공부해도 상관없읍니까. [10] ㅇㅇ(128.134) 12.12.18 167 0
341053 윈도우즈 소켓 프로그래밍이 tcp/ip도 있는건가??? [3] ㅇㅇ(203.90) 12.12.18 134 0
341052 아놔 왜이리 쓸만한 회사가 없지??? [7] 멍청닭(182.211) 12.12.18 198 0
341050 [자바국비취업/자바내일배움카드] 자바 응용 어플리케이션 자바취업교육 안내 hanbit(115.94) 12.12.18 69 0
341049 윈도우즈 프로그래밍 하면 보통 MFC를 말하는거야??? [8] ㅇㅇ(203.90) 12.12.18 195 0
341048 형들 코드에서 하드웨어적으로 건드리는 부분있잖아 [7] 알려주세요(175.212) 12.12.18 140 0
341047 형들 배움 관련 질문좀할께 ~~~ [1] 취준생(118.130) 12.12.18 46 0
341045 소켓 프로그래밍에 대해 아는 횽 없나??? [8] ㅇㅇ(203.90) 12.12.18 186 0
341044 형들 멀티프로세스질문 [4] WannaParty갤로그로 이동합니다. 12.12.18 64 0
341043 흠 그럼 sda1을 어떻게 레이드 걸어요? [2] elwlwlwk(14.36) 12.12.18 72 0
341042 고랭형 해결됬어요 [2] 칰빠버프갤로그로 이동합니다. 12.12.18 80 0
뉴스 스테이씨, 워터파크도 서머 페스티벌로…무더위 속 힐링 아이콘 등극  디시트렌드 07.31
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2