C ++ 2d 게임을 작성하려면 어디에서 시작합니까? [닫은]


17

저는 C # 웹 개발자이며 스킬 셋을 확장하고 재미있게 즐기고 싶습니다. C ++의 기본 사항을 알고 있으며 C ++을 사용하여 간단한 2D 게임 / 게임 엔진을 작성하고 싶습니다. 다른 라이브러리 나 SDK가 필요하며 앞으로 나아갈 튜토리얼과 정보 자료는 어디에서 찾을 수 있습니까?

이미 C #으로 XNA를 살펴 보았습니다. 이에 대한 많은 리소스가 있지만 비 Microsoft 제품을 사용하고 싶습니다. 이것의 요점은 더 나은 둥근 프로그래머가되는 동안 약간의 재미를 얻는 것입니다.

시작 하기 가장 좋은 장소를 요구하지는 않습니다 . 나는 단지 시작할 곳을 요구하고 있다 .

도움을 주셔서 감사합니다!

답변:


27

C ++ 게임 개발자의 표준 시작 장소는 SDL 입니다. XNA보다 손이 약간 더럽습니다.

조금 더 높은 수준의 것을 시도하고 싶다면 SFML 을 제안 합니다 . 그것은 당신을 위해 더 정신적 인 작업 중 일부를 처리하지만 여전히 메모리 사용 등에 주목해야합니다.


1
나는 이것들을 살펴볼 것이다. XNA의 가장 큰 문제는 너무 간단해서 제가 관심이있는 저수준의 것들을 배우는 것 같지 않다는 것입니다.
quakkels

6
SFML은 훌륭한 디자인을 가지고 있지만 여전히 버그가 많으며 주요 API를 다시 디자인하는 중입니다. 다음 릴리스가 잘 연마 될 때까지 더 복잡한 게임에는 사용하지 않을 것입니다.
Bitgarden

SDL보다 조금 더 어려운 것을 원한다면 ClanLib을 사용해보십시오 . XNA와 마찬가지로 하드웨어 가속을 지원하지만 Linux 및 2D 독점에서도 작동합니다.
ChrisC

2
당신은 또한 목을 똑바로 갈 수 있습니다-OpenGL은 제가 개인적으로 좋아하는 것입니다 (SDL 또는 SFML로 감쌀 수 있습니다)
ultifinitus

9

SDL 사용을 제안 합니다. 오랜 시간이 지났기 때문에 문서와 지원이 꽤 좋으며 화면에 그림 표면을 얻는 가장 쉬운 방법 중 하나입니다. C ++로 클래스를 작성하는 연습을 제공합니다 (SDL C 함수 호출을 많이 감싸고 싶을 것이므로). 포인터와 참조를 사용하고 기본적인 메모리 관리를 수행하는 경험을 제공합니다. 자신의 메모리 관리는 C ++와 C #의 주요 차이점 중 하나입니다.


9

개인적으로 다음과 같은 이유로 Allegro 5를 선택합니다 .

  1. CMake 기반 빌드 시스템이 있습니다. 따라서 여러 플랫폼에서 작업하기위한 대부분의 빌드 시스템보다 훨씬 쉽습니다. 이것은 사소한 것 같지만 전반적으로 매우 중요합니다. 라이브러리 작성이 훨씬 간단 해집니다.

  2. SFML은 여전히 ​​상당한 흐름에 있습니다. 2.0은 상당히 큰 변화입니다. Allegro는 이미 버전 5에서 중요한 변화를 겪어 왔으며 이제는 안정성에 관한 모든 것입니다.

  3. SFML과 다른 방식으로 모듈성을 다룹니다. SFML을 사용하면 특정 구성 요소를 요구하지만 모든 구성 요소를 얻습니다. 그래픽 구성 요소를 요청하면 모든 그래픽 구성 요소가 제공됩니다. Allegro 5를 사용하면 항상 그래픽 구성 요소를 얻을 수 있습니다. 그러나 Allegro의 비트 맵 로더를 사용하지 않으려면 필요하지 않습니다. 당신은 당신의 자신을 사용할 수 있습니다.

  4. 매우 좋은 문서가 있습니다. SFML은 Doxygen 스타일의 문서를 사용하지만 심지어 스파르탄도 마찬가지입니다. Allegro 5는보다 포괄적 인 반면 기능이 포함 된 특정 시스템을 기반으로 기능이 그룹화되어 있습니다. 완벽하지는 않지만 전반적으로 더 좋습니다.

  5. 스레딩을 시도하지 않을 정도로 똑똑 합니다. C ++ 11 / Boost. 다른 스레드 래퍼를 사용하는 것은 널리 이용 가능하거나 모퉁이를 돌면 문제가 될 수 있습니다. 코드가 올바르게 작동하는 것은 위험 할 수 있습니다.


SDL 또는 SFML보다 Allegro를 선호하거나 제안하는 이유는 무엇입니까?
Quazi Irfan

@iamcreasy : 고집한다면.
Nicol Bolas

당신은 여전히 ​​SDL을 언급하지 않습니다 ...
엔지니어

@NickWiggill : SDL에는 스레드 및 플랫폼 별 빌드 시스템이 있습니다. 나는 그것을 구체적으로 불러 낼 필요가 없다고 생각했다.
Nicol Bolas

@ nicol-bolas 당신은 Allegro의 단점을 언급하지 않았습니다. 매우 적은 양의 튜토리얼 비교와 같습니다.
Quazi Irfan

4

시작 하기에 환상적인 곳은 LazyFoo 입니다. 이렇게하면 내가 본 다른 장소보다 SDL을 더 빨리 실행하고 실행할 수 있습니다. 하드웨어 가속을 사용하면 프로그래밍 비용이 훨씬 많이 들기 때문에 OpenGL에 빨리 들어가는 것이 좋습니다. 해당 경로로 이동하면 이 안내서를 권장합니다 .


2

c ++을 사용하는 경우 SFML 을 권장 합니다. 화면에 빠르게 무언가를 얻을 수 있으며 C ++ 게임 코드와 함께 사용하는 것은 간단합니다.


2
  • SFML-그룹의 아기이지만 내가 읽은 것 중에서 가장 사용하기 쉽습니다.
  • SDL-중간 도로. 매우 성숙한 도서관은 현명하며 때때로 약간의 비전이 있으면 간결하고 일반적으로 선택됩니다. 디스플레이 형식을 설정하는 것은 약간 나쁜 일이 될 수 있습니다. 저는 lazyfoo의 튜토리얼을 사용하여 그 앞면을 도왔습니다.
  • Allegro-노인병, 그것은 Atari ST 시절부터있었습니다. 이러한 이유로, 로직이 훨씬 낮은 사양 시스템 용으로 구축 되었기 때문에 많은 2D 렌더링 코드 (Allegro 4에만 있다고 생각됨)가 매우 빠릅니다. 나는 개인적으로 문서를 고려하더라도 직관적이지 않습니다.

OpenGL이 요즘 2D 측면을 가속화한다는 점을 고려할 때 Allegro 및 SDL이 가지고 있거나 빠른 버전의 빠른 소프트웨어 렌더러에 액세스하는 것이 중요하지 않습니다. 그러나 라이브러리를 선택할 때 프로젝트 성숙도, 사용자 기반 및 문서에 속도 이상의 속도에 중점을두고 (속도가 합리적이라면) SDL과 Allegro가 이러한 측면에서 승리한다고 말하고 싶습니다. SDL은 Civ : Call to Power와 같은 트리플 AAA 타이틀도 출시했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.