목차
2001/02/23/19:37 작성자:김지훈
짧은 생각이지만 말해보자면, 프로그래밍을 공부하려면 이론과 실습의 적절한 조화라고 할까요? 대부분 직접 몸으로 부딪히고 버그와 싸워가며 해야한다고 하더군요.
이 사실은 99년도에 한국의 현직 게임프로그래머들에게서 조사된 결과만 봐도 알 수 있습니다.
직접 짜보면서 공부했다(48%),선배나 동료의 도움(24%) 통신 제작동호회에서 정보습득(25%),무응답(3%) 그리고 실제 교재만을 가지고 공부할 경우 게임을 짤 수 있을만한 능력이 되기까지 2년(32%) 1년(17%) 3년(38%) 6개월(5%)로 집계되었답니다.
결과적으로 말하자면 교재나 정보수집에 의한 이론적 이해 -> 실습을 통한 습득 -> 반복에 의한 축적 으로 생각합니다.
2001/02/26 21:31 붉은미르
네. 알아야합니다.
2D에서는 중학교 이하의 수학을 요구했습니다. 하지만 3D로 넣어가면 고등학교이상의 수학을 요구합니다.
3D Engine을 직접 만들지 않고 3D Engine은 사서 3D 프로그래밍을 하기 위해서는 수학을 알아야 합니다. 또는 아는 만큼 편합니다.
수학 공식만을 외우면 절대절대로 안됩니다. 이해하세요. 왜 그런지, 생각해보세요.
2001/02/20/화
www.naver.com의 백과사전에서 검사한 것으로 대신하겠습니다. http://100.naver.com/search.naver?query=%B4%EB%BC%F6%C7%D0&srchmode=0&command=search&where=100
2001/03/12 19:48 (틀린 부분은 욕?해주세용)
수학과 출신 허접초보 겜프로그래머임다.: mailto:mist003@naver.com
대수학에 대해 감히(^^;) 한 말씀 올립니당(사실 학점은 별루이죠 ㅡ,.ㅡ).
수학과에서 배우는 대수학은 정말 고난위도죠(학점이 바닥이었죠ㅜㅜ).
겜 프로그램 만들때 필요한 수학은 선형대수학이나 대수학의 ring이나 Group 등이 필요하다고 생각되는군요. (아는척해서 죄송하군여, 아직 허접인데...쩝).
아고,힘들다. 모르는게 넘 많아 제대로 전달이 되었는지 참.
2001/02/18/일
할 수 있어야한다.
단, 자신이 초보자라고 생각한다면 어셈블러는 나중에 공부할 것을 권합니다.
2001/02/23/19:37 작성자:김지훈
음.. 책을 약간 인용하자면 c란건 c++의 부분집합정도라고 이야기할 수 있군요. c++에서 모든 문법이 c에서도 똑같이 적용되기 때문에 이 두 언어는 같다고 봅니다 --; 하지만 유사한점이 있지만 상당히 진화한 형태가 c++입니다. c에 대하여 좀더 설명하자면
--; 제대로 설명한건지 의심이..
2001/02/23/19:37 작성자:김지훈 *틀린 부분이 있으면 수정해주세요*
위에서 설명한듯이 C와 C++은 같지만 다른점이 있다고 설명드렸는데 C++에 대해서 설명해 보자면. C에 비해서 문법이 보강되었고 가장 큰 변화로는 "클래스" 계념을 도입했다는 것입니다.
2001/02/14/수
MS에서 만들든 C++용 컴파일러입니다.
구입은 소프트웨어 전문 매장을 이용하시면 됩니다.
언어와컴파일러를 참고하세요.
2001/02/14/수
한글판은 없습니다.
VB(비쥬얼 베이직)은 한글판이 있습니다. 그리고, 순수 한글 컴파일러도 있습니다. 기억이 ^^;
2001/04/04 19:07, 파연
'씨앗'이라는 이름의 순수 한글 컴파일러가 있습니다.
C언어의 구문들을 한글화하고 한글 변수를 허용하는 등
C언어에서 확장/발전된 형태인데요, 안타깝게도 그냥 사라지고 말았습니다. - -;
2001/08/14 22:22 붉은미르
최근에 파이썬<http://www.python.or.kr>에서 한글 파이썬을 만들고 있습니다. 한글로된 언어가 필요하신 분이라면 "한글 파이썬"에 관심을 가져보는 것도 괜찮을 듯 합니다.
2001/02/14/수
아닙니다.
패키지나 온라인 게임 중에서 Delphi나 C++Builder를 이용해서 만들어진 것도 있습니다.
델파이로 만들어진 것 중에서 "그녀의 기사단"이 있습니다. "그녀의 기사단"의 프로그래머이신 안영기님의 홈페이지는 http://smgal.com/ 입니다.
2001/08/14 22:22 붉은미르
"미르의 전설<http://www.mirmir.com>"라는 온라인 게임이 Server와 Client의 양쪽 전부다 델파이(Delphi)를 사용하는 것으로 확인되었습니다. 그리고, "펌프"로 익숙한 안다미로<http://www.andamiro.com/> 또한 Dephi를 툴쪽에 사용하고 있습니다.
2001/04/04 19:07, 파연
자바로 된 게임도 다수 있고, 심지어 포트란으로 프로그래밍된 게임도 있습니다. 또한 같은 C++ 중에서도 GNU C++ (도스/윈도우즈 용은 djgpp) 라는게 있습니다.하지만 주류는 아무래도 VC++입니다.
만약 회사에 취직을 희망한다면, VC++를 사용할 줄 알아야합니다. 다들 VC++를 쓰기 때문이죠.
2001/02/14/수
사용합니다.
http://www.delphi.com/DelphiDirectx/
2001/02/14/수
예. 해야합니다.
MFC를 현재로써는 직접 "?GameEngine"에 적용하는 경우가 없다고 판단되어집니다.
MFC가 "?GameEngine"에 사용되지 않는 이유 중에 하나가 너무 많은 기능이 있다는 점입니다. 즉, Windows API만으로 짜면 작고 가벼우면서 빠른 프로그램이 가능한데, MFC는 이점을 충족시켜주지 못합니다. MFC가 주로 사용되는 곳은 게임에서 게임도구을 만들때에 주로 사용됩니다. 물론, API만으로 도구를 만들어도 됩니다.
2001/02/18/일
예.
PC상에서, 그것도 OS가 Windows라면 필수적으로 공부해야 합니다. 일반 응용프로그램을 만드는 사람들에게는 API를 공부해야할 의무가 게임에 비해가 떨어집니다.
2001/04/04 19:07, 파연
Charles Petzold의 Programming Windows (현재 5판까지 나왔습니다.) 가 이 분야에서는 최고의 서적입니다.
번역판은 번역이 상당히 엉터리라고 하니 원서로 보시기 바랍니다.
현재 API를 공부하고 있는 왕초보입니다.Petzold 씨의 Programming Windows 번역본으로 공부하고 있는데 분량이 만만치 않더군요..(약 1600페이지 분량 ^^;; 이책을 가장 추천하더군여) 공부하다가 느낀건데 그림그리기, 사운드 출력, 네트워크 등등 다이렉트X와 겹치는 부분들이 있는데요. 실제로 게임제작에서는 이러한 부분은 API보다도 다이렉트X를 쓰는것으로 알고있는데요. 그렇다면 꼭 모든 API에 대해서 익힐 필요가 있는지요? 만약 꼭 익힐필요가 없다면 게임에 필요한 API는 무엇이 있는지 아시는 분은 답변 부탁드립니다. - 2001-11-24 15:58, 몽생이
먼저 겹치는 부분들에 대해서 잠깐 이야기한다면요. 그래픽의 경우 GDI에서는 비트맵 다루는 법이라던가 텍스트 출력 등은 알아두면 편할 것이구요(그러자면 글꼴, 펜, 브러시 같은 기본 개념들은 알아야 하겠죠). 비트맵 DC에 대해 선그리기, 도형그리기 같은 것들은 거의 필요가 없을 듯... 사운드의 경우 Win32 API가 제공하는 함수들은 뭐 거의 쓸모가 없지 않을까 합니다. 단 Win32 미디어 API 중 오디오 CD 제어 부분은 알아두면 편할 수도 있을 것 같긴 하네요. 음 좀 더 자세한 답변이 필요할 것 같습니다만..
그리고 좀 더 일반적인 이야기로는...
Win32 API는 윈도우즈라는 운영 체제가 가진 다양한 기능들을 사용할 수 있게 해주는 인터페이스이므로, 본질적인 대답은 응용 프로그램이 운영 체제의 '어떤 기능'을 사용하고자 하는가에 따르다 입니다. 뭐 간단하게 말한다면... 게임의 경우 그래픽, 사운드, 입력 장치 이외의 모든 것은 Win32 API 또는 C/C++ 표준 라이브러리를 사용해야 한다고 할 수 있겠죠.(네트웍은 소켓일 수도 있고 DPlay일 수도 있구요..)
그래픽, 사운드, 입력 장치 이외에 게임에 필요한 것들이라고 한다면:
이런 부분들부터 봐두면 될 것입니다.. 뭐 프린터 다루기 같은 것들은 알 필요가 없겠죠:) 도구의 경우라면 다양한 공용 컨트롤들, 사용자 인터페이스 요소들에 관련된 것들도 알아야 하겠죠...
2001/02/21 02:29
당연히! 정당한 가격을 지불하고 구입해야 합니다.
단, 몇몇 제품들은 싼 가격의 에디션(아카데믹 버전 등)을 제공하기도 하고, 또 일부 기능이 제한된 에디션을 무료로 제공하기도 합니다(VC++의 Introductory Edition 등). 또한 완전히 무료인 컴파일러/개발도구들도 존재합니다(주로 GNU 쪽).
무료 컴파일러들
2001/02/23/19:37 작성자:김지훈
게임도구는 게임을 만들때 부수적으로 사용되는 일종의 툴을 말하는 것 같은데 맵 에디터,스크립트 에디터,스프라이트 에디터 등의 게임에서 사용 할 데이터를 편집하는 프로그램을 말합니다(..맞게 말하는건가?)
이런 게임에 사용되는 도구들은 게임 제작시 만들게 되는데 프로그래머나 그래픽디자이너들의 수고를 상당히 덜어주는 고마운 존재(?)라고 생각합니다. (스타에 맵 에디터가 없었다면 그야말로 얼마나 노가다를 해야하는가!!)
2001/04/04 19:07, 파연
보통의 경우 게임 도구들은 게임개발의 일부로 봅니다.
즉 상용 게임 도구가 따로 있는 것이 아니고 게임을 개발할 때마다 그에 맞는 게임 도구를 만들어야하는 것입니다. 잘 만든 게임 도구는 작업능률을 상당히 향상시키고, 작업기간을 아주 단축시킵니다. 못 만든 게임 도구는 작업능률을 저하시키고, 귀찮아지게 만들기 때문에 결국 최종 게임의 퀄러티를 저하시킵니다. -_-;
따라서 게임 도구가 게임개발에 차지하는 비중은 게임 엔진 만큼이나 무겁습니다. 물론, 잘 만들어진 게임 도구가 있다면 동일한 게임 엔진에 유사한 게임을 만들 때 재사용할 수도 있습니다.
2001/02/19/월
특별히 게임 프로그래밍이라는 것은 없습니다.
다만, 일반적인 응용 프로그램과는 프로그램을 짜는 촛점이 다르기 때문에 붙여진 것 입니다. 게임 프로그래밍은 속도 즉, 수행능력을 최우선으로 합니다. 이것보다 더 중요한 것이 Project를 수행하는 팀원들에 대한 이해입니다. 그리고, 상대방에 대한 존중과 진지함 그리고 무한한 체력이 필요합니다.
2001/02/23/19:37 작성자:김지훈
게임 프로그래밍에서 Engine 이란것은 게임을 만들때마다 소스 파일에 자주 들어가는 그런 함수 같은 것들을 모아 놓은 라이브러리(집합체 라고 할수있을까요..)라고 볼 수 있습니다.
예를 들면, 키보드,마우스 입출력 같은 부분은 게임을 만들때마다 항상 포함되겠져? 하지만 이 부분도 게임을 만들때마다 프로그램을 새로 코딩할려면 꽤 시간이 걸릴거란 말입니다. 버그 문제가 날 수도 있고요.
그래서 기존에 썼던 키보드,마우스 입출력 부분만을 입출력엔진으로 만들어 놔서 게임 프로그래밍을 할때마다 새로 짜지 않고 한번 만든것을 계속 편하게 사용할 수 있는 것입니다.
2001/02/24 천영호
요새의 엔진이란 전의 라이브러리보다는 조금 광범위하게 사용되고 있는 듯합니다. 실제 엔진을 라이센스해보시면 알겠지만, 엔진에는 그런 각종 라이브러리(키보드 입출력, 사운드, 3D엔진)외에 툴까지도 포함하는 경우가 많더군요.
여기에 중간점에 그림이 하나 있습니다.
gpgstudy의 자료실에도 있습니다.
http://www.gamedev.net/reference/articles/article1294.asp
2001/02/23/19:37 작성자:김지훈
엔진에는 여러가지가 있습니다. 3D 작업만을 처리하기 위한 3D 엔진이 있을 수 있고 게임에서 network 부분을 담당하는 네트웍 엔진이 있을 수도 있고 아예 시뮬레이션 게임을 쉽게 만들 수 있는 시뮬레이션 게임 엔진.. 이런 엔진이 있을 수도 있죠. (물론 그 엔진으로 만든 시뮬레이션 게임들은 인터페이스라던가 그런 것들이 꽤 비슷하겠죠.) 하여튼 매우 여러가지가 있습니다.
2001/02/19/월
90년대 초반 이전에는 주로 어셈블러를 사용합니다.
제가 개인적으로 좋아하는 ultima1경우는 처음에는 베이직으로 만들어졌습니다. 아주 오래전인데도 불구하고 말입니다.
90년대 초반 이후에서 Windows이전까지의 DOS시절에는 C + inline Asem을 주로 사용하였습니다.
현재에는 C, C++를 주로 사용합니다. 물론 Pascal, VB 등으로도 만듭니다.
2001/02/24 천영호
대략 3년의 기간이 걸려 그당시 최고인 퀘이크 2엔진을 능가하는 언리얼엔진이 완성되었다고 합니다. 그 뛰어난 기능에 놀라움을 금치 못하면서도 id의 존 칼막은 '그정도의 시간이 걸리는 엔진이라면 나라면 만들지 않겠다'라고 말했습니다. 즉 너무 긴시간은 그만큼 경쟁력이 없다는 것이겠죠.. 하지만,, 지금은 언리얼이 성공한듯,,
엔진은 보통 단기간에 만들 수 없습니다. 지금의 최고 엔진인 퀘이크3도 결국 1993년도부터 이어오던 둠, 퀘이크엔진이 버전업 한것이니까요.
현재 단순히 게임용으로만 쓰이는게 아니라 조금은 상용을 예상하고 엔진을 제작할 경우 못해도 2년정도는 걸릴거 같습니다.
-이는 제 의견입니다. 실제로 제가 제작하는 엔진은 1년이 조금넘었지만 게임만들기도 벅차군요.-
2001/05/12 03:35, [파연|Pion]
컴퓨터가 "생각하는 것처럼 보이게 만드는" 프로그래밍 방법론적인 문제입니다.
2001/05/10 23:30 [붉은미르|dragoon]
과거에는 간단한 문제였습니다. 현재와 미래에는 아주 어려운 문제가 될것입니다. 과거에는 간단한 조건문에서 행동하면서 겉보기에는 그럴싸하면 되었습니다. AI가 눈에 보이는 패턴을 가져도 별 문제가 되지 않습니다. CPU 점유율이 거의 없었습니다.
현재는 학문적으로 연구되던 것들이 게임에서 슬슬 적용되기 시작하고 있습니다. 신경망회로, 학습이론 등...여러가지들이 적용되기 시작하는 단계입니다. 향후에는 CPU 점유율이 25%까지 점유하지 않을까 생각되어집니다.
과거에는 메인프로그래머가 인공지능(NPC)까지 다 처리하는 경향이었는데, 현재에는 따로 프로그래머가 코딩을 합니다.
2001/05/12 03:35, [파연|Pion]
Age of Empire 의 경우 AI가 CPU 점유율의 30%정도를 가진다고 합니다.^^;
2001/05/10 23:30 [붉은미르|dragoon]
주로 무엇을 사용하는지만 밝히겠습니다. A*를 사용합니다. 헉^^; (무성의한 대답이다.)
2001/10/12 11:50 [권신]
굉장히 많은 유닛이 게임에 등장한다면 실시간으로 A* 를 쓰긴 조금 무리라고 생각합니다. 하지만 A* 알고리즘을 익혀 두면 여러가지 방법을 생각해 볼 수 있으니 반드시 공부해야 한다고 봅니다.
A* 알고리즘은 http://aiwiz.2ing.net/wiki/탐색의기초에서 파연이 강의를 하고 있습니다.
| 제일 위로 |
| 최종 수정 일시: 09월 12일(2006년) 09:30 PM 편집 | 정보 | 차이 | 비슷한 페이지 DebugInfo |
| 유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular |