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

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

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

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

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



답변

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

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

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

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


답변

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

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

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

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

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


답변

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

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

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

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

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

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


답변

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

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

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

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


답변

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


답변

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

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

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


답변

하프의 게임 엔진

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

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

http://hge.relishgames.com/