2D Game Dev (C ++) 시작하기 : DirectX 또는 OpenGL? [닫은]


12

그래서 저는 게임 개발의 문에 발을 들여 놓고 2D, 테트리스 / 우주 침략자 / 작은 마우스 상호 작용 복제본을 사용하려고하는 학생입니다.

검색을 C ++ 및 2d 방향으로 가리키고 결국 DirectX / OpenGL로 연결되었습니다.

이제 내가 이해할 때,이 모든 패키지가 나를 위해 할 일은 화면에 물건을 그리는 것입니다. 그리고 이것이 내가 정말로 염두에 두는 전부입니다. 소리가 필요하지 않습니다. 아마도 stdlib로 입력을 처리 할 수 ​​있습니다.

따라서 C ++로 기본 게임을 만들려는 초보자에게는 DirectX 또는 OpenGL을 추천 하시겠습니까? 왜? 둘 사이의 주요 특징 차이점은 무엇입니까? 어느 것이 더 유용합니까?

답변:


16

나는 2D를 위해 SDL ( http://www.libsdl.org/ )을 추천 할 것인데 , 그것은 처음에 그래픽 작업을 시작한 곳이었고 당시 C ++을 거의 알지 못했지만 사용하기가 매우 쉬웠습니다.

이거 (거울) 는 내가 시작하고 매우 유용한 튜토리얼 세트입니다. (4 년 전 일을했을 때 약간 날짜가 있었지만 SDL이 많이 바뀌지 않았다고 생각하며 여전히 관련성이 있어야합니다. ).

SDL은 또한 입력 처리를 수행하며 SDL_Mixer는 기본 오디오를 수행 할 수 있습니다.

DirectDraw 또는 OpenGL을 사용하여 2D 작업을 한 적이 없으므로 의견을 말할 수는 없지만 SDL을 추천 할 수는 있습니다.


1
SDL이 좋았지 만 경로를 얻는 것이 매우 어려웠으며 설정이 올바르게 포함되어 있습니다.
Skeith

1
괜찮은 튜토리얼에 대해서는 lazyfoo.net/SDL_tutorials 도 확인하십시오 (다양한 IDE에 대한 설정 튜토리얼 포함).
BeanBag

@Skeith과 동의했습니다. 초보자가 처음으로 SDL을 설정하는 데 어려움이 있다고 생각하지 않습니다. 아마추어 또는 전문가의 일반적인 설치 문제를 다루는 것은 충분히 어렵습니다. 처음으로 SDL 설정을 한 후에는 평생 동안 쉽게 모든 설정을 할 수있었습니다. 그것이 나에게 얼마나 많은 두통을 주 었는가. 도서관을 설립 할 때보 다 많은 경험을 쌓았습니다. 가장 큰 문제를 일으킨 것이 무엇인지, 또는 어떤 문제가 있었는지 기억하는 것은 너무 오래 전 일이지만 다른 모든 라이브러리는 설정하기가 쉬웠습니다.
Carter81

7

게임 프로젝트에 SDL과 SFML을 모두 사용했습니다. 나는 완성 된 게임, 테트리스 게임에 SDL을 사용했고, 셰이더 실험을위한 윈도우 레이어로 SFML을 주로 사용했습니다. 내 경험상 SDL이 말하는 것이라고 말해야합니다. 미디어 (사운드 및 비디오)와 함께 작동하는 데이터를 서로 다른 플랫폼과 상호 작용할 수있는 수준으로 추상화하는 단순한 직접 미디어 계층입니다. 그것이 "모두"입니다.

따라서 일반적으로 게임을 만드는 데 필요한 기능을 제공하는 SDL_mixer, SDL_gfx 및 SDL_image와 같은 다른 라이브러리와 혼합해야합니다.

이러한 라이브러리는 모두 C 프로그래밍 언어를위한 것이며 해당 규칙을 따릅니다. 그것에 문제가있는 것은 아니지만 io와 상호 작용하는 방법에 대한 객체 지향 접근 방식을 원한다면 기본적으로 해당 레이어를 직접 만들어야합니다.

SFML은 모든 것을 즉시 제공합니다. 소리, 비디오, 믹싱, 프레임 캡핑, 객체 지향입니다. 그것이 당신이 원하는 것이라면, 나는 당신이 그 일을하는 것이 좋습니다. SFML에는 opengl의 일부 기본 기능 (특히 beginShape / EndShape 및 픽셀 셰이더)에 대한 추상화 계층도 있습니다. SDL에는 이와 같은 것이 없다고 생각합니다.

추신 : C / C ++에서 대화를 멀리하지는 않지만 특정 이유로 해당 언어를 사용하지 않고 더 쉬운 언어를 원한다면 항상 파이 게임이 있습니다. 기본적으로 Python의 SDL +입니다.


2
SFML은 C ++이지만 SDL은 C입니다. 실제로 C ++을 배우고 싶다면 차이가 있습니다.
jsimmons

5

http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=263140&reply_id=3598844

이 의견에 동의하며 DirectX가 OpenGL보다 나은 이유에 대한 훌륭한 토론이라고 생각합니다.

이 저널은 Wolfire의 David에 대한 답변입니다.

나는 그것이 약간 균형을 잡을 수 있기를 바랍니다. ;)

그러나 일반적으로 크로스 플랫폼, 크로스 API 프레임 워크를 사용하는 경우 :

Windows에서는 DirectX를 사용하고 * nix에서는 OpenGL을 사용하십시오.


대단한 독서 =)이 주제는 무엇입니까?
Nailer

6
404, 페이지를 찾을 수 없음
axel22


archive.gamedev.net / ... 링크에서 404를 얻습니다.
Exilyth

4

http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX

이 의견에 동의하며 OpenGL이 DirectX보다 나은 이유에 대한 훌륭한 토론이라고 생각합니다.

그러나이 질문은 절대적으로 의견의 문제이며 DirectX는 OpenGL, 특히 10 및 11, 특히 게임 개발과 관련하여 이점을 제공합니다.

또한 OpenGL을 사용하기로 선택하면 SDL 은 훌륭하고 매우 인기있는 라이브러리이며 OpenGL (NeHe 등)을 배우기위한 많은 리소스가 있지만 다른 질문이있을 수 있습니다.


1
OGL 대 DX 토론에 대한 대응책으로서, Unity 사람들은 대부분의 비디오 카드에 대한 기본 OpenGL 드라이버가 너무 나쁘기 때문에 Windows에서 DirectX로 전환하기로 결정했습니다. 나는 내 앞에서 참고 자료를 가지고 있지 않지만, 회의 중 한 번에 OGL 드라이버 라인을 따라 Windows에서 # 1 충돌 문제가 있다고 말했습니다. 다행히도 추상화 계층은 사용자 관점에서 실제로 신경 쓰지 않는다는 것을 의미합니다.
Tetrad

우리는 유닉스와 윈도우 모두를위한 비즈니스 지향 시각화 소프트웨어를 만들고 Windows에서 볼 수있는 대부분의 문제가 OpenGL 드라이버와 관련이 있음을 확인할 수 있습니다.
drxzcl

1

방금 시작하는 경우 SFML 과 같은 기존 2D 엔진 또는 프레임 워크를 사용하는 것이 좋습니다 .


1

나는 Direct X를 좋아하고 많은 프로젝트에서 몇 년 동안 사용해 왔지만 학습이 버전 문제를 조심한다면.

직접 x 코드의 대부분은 다른 버전에서 컴파일되지 않으며 튜토리얼을 따르려고하면 지옥이 될 수 있습니다.

Direct X는 처음 시작할 때 더 쉽게 사용할 수있는 모든 기능이 있으며 고급으로 작업을 조작하는 고급 방법이 있으므로 Direct X를 권장합니다.


1

하프의 게임 엔진

나는 그것이 최신 상태인지 모르겠다 (그렇지 않다는 것을 의미하지만 사용할 수 없어야 할 이유가 있다고 생각하지는 않는다). 그러나 나는 그것을 오래 전에 사용했다. (C ++) 즐 겼어. HGE는 05.08 이후로 업데이트되지 않았지만 다시 배우기 쉽고 빠르다는 것을 기억합니다. 또한 파티클 시스템과 같은 모든 종류의 도구와 도우미가 함께 제공됩니다.

어쨌든, 원하는 것은 실제로 게임을 만드는 것입니다. 그리기 등의 과정에서 "후드"에서 일어나는 일을 배우는 것이 아니라 openGL 또는 DirectX보다 높은 수준의 것을 사용하는 것이 좋습니다. 실제 게임을 만드는 대신 화면에 물건을 그리는 데 시간을 할애해야합니다. 그리고 HGE는 확실히 체크 아웃 할 가치가 있습니다.

http://hge.relishgames.com/


0

몇 달 전 (아이폰 플랫폼에서) 게임 개발에 착수했다. C 배경에서 나온 프레임 워크 (특히 Cocos2d)를 사용하는 것이 좋습니다.

이 포스트에서 프레임 워크의 장점에 대해 더 많이 논의 할 수 있지만 OpenGL을 사용하여 대부분의 저수준 프로세싱을 처리하고 게임 개발에 가장 필요한 것을 처리 할 수있는 방법을 제공합니다. 그들은 훌륭한 커뮤니티를 가지고 있으며 오픈 소스이므로 프레임 워크의 핵심 코드에 액세스하거나 필요에 맞게 비트를 수정하거나 필요한 경우 낮은 수준의 OpenGL로 이동하십시오-여전히 선택이 가능합니다.

직접 OpenGL의 길을 갈 수는 있지만 너무 과장된 것 같습니다.

자세한 정보는 Google Chipmunk 및 Box2D에 존재하는 다양한 물리 라이브러리를 살펴 보는 것이 좋습니다.

건배!


1
-2 일 필요가없는 경우 +1 이 웹 사이트에 너무 많은 트롤이 아무 이유없이 부정적인 영향을줍니다. 솔직히, 나는 왜 그들이 0보다 작은 것을 보이게하는지 이해조차하지 못합니다. 다운 보팅을 허용하는 YouTube만큼 바보입니다.
Carter81
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.