2D 게임을 프로그래밍하는 가장 쉽고 재미있는 방법? 플래시? XNA? 다른 엔진? [닫은]


20

이 글은 취미 게임 프로그래머가 게임을하면서 자유 시간을 달래주는 가장 즐거운 방법에 대한 나의 검색을 자세하게 설명한 글입니다.

내 요구 사항 : 플래시를 먼저 보았고 몇 가지 작은 게임을 만들었지 만 성능이 의심됩니다. 수백 대가 동시에 싸우고 폭발과 애니메이션이 포함 된 상당히 큰 전략 게임을 만들고 싶습니다. 확대 / 축소 가능한지도. Adobe에 새로운 Flash 용 3D API가있는 것을 보았지만 2D 성능이 향상되는지 모르겠지만 MAX10 세션에서 해당 질문과 관련된 것을 찾을 수 없었습니다. Flash가 대형 2D 게임을 쉽게 만들 수있는 좋은 기술이라고 생각하십니까? 저는 Actionscript를 정말 좋아하며 Flash의 모든 것이 얼마나 쉬운 지 좋아합니다. 더욱 쉽게 사용할 수있는 몇 가지 엔진이 있습니다.

나는 단지 재미를 위해 이것을하고, 사용 가능한 적절한 애니메이션 / 파티클 에디터가 있고 사용하는 엔진이 여러 플랫폼에서 사용 가능하다면 더 좋을 것입니다. (더 많은 사람들이 완료되면 내 게임을 할 수 있습니다). 많은 모바일 플랫폼에서도 사용할 수 있기를 바랍니다. (어떤 이유로 터치 입력을 좋아하기 때문에)

나는 XNA 프레임 워크를 꽤 잘 알고 있지만, 사용할 수있는 좋은 엔진이 없으며, Windows에서만 실행될 것입니다. 더 큰 것은 게임을 누군가에게 줄 때마다 XNA 재배포 가능 패키지를 설치해야한다는 것입니다. XNA를 사용한다면 모든 도구를 직접 만들어야하고 WPF로 도구를 만들어야 할 것입니다. (Adobe AIR로 도구를 만들고 싶지만 불행히도 이미지 조작 등을위한 API는 XNA / WPF보다 플래시에서 훨씬 더 나쁩니다.) 이제 내 엔진을 만들 수 있다는 것을 알고 있습니다. 각 플랫폼을 지원하지만 솔직히 말하면 API를 통해 너무 많은 작업이 필요합니다. 결국, 나는 엔진이 아니라 게임을 만들고 싶다.

따라서 문제는 다음과 같습니다. 2D 개발에 사용할 수있는 크로스 플랫폼 (무료 또는 무료) 엔진이 있습니까? C #, Actionscript를 선호합니다. 툴셋이 평균보다 높으면 c ++을 사용하지 않아도되지만 그와 같은 것이 있는지 의심 스럽습니다. 나에게 잘못을 증명하십시오 :) 요약 : 플래시를 사용하고 싶지만 확장이 잘되는지 모르겠습니다. 나는 스크립터가 아니며 적절한 IDE 내에서 작업 할 수있는 실제 API를 원합니다.

정보를 얻기 위해 몇 가지 대안을 살펴 보았습니다. 실제로 오랫동안 찾고 있습니다. 마침내 결정을 내리는 데 많은 도움이 될 것입니다.

  • 기능적으로는 Flatredball 엔진이 이상적입니다. 그러나 나는 그들의 도구를 시험해 보았고 솔직히 말해서 끔찍합니다. 절대적으로 사용할 수 없으므로 확실히 내 자신을 만들어야합니다. 나는 그들의 API를 보지 않았지만 도구가 너무 나쁘면 더 이상 보지 않을 것입니다.

  • Unity3D. 이것은 꽤 좋지만 실제로 3D가 필요하지 않으며 배우는 데 많은 노력이 필요합니다. 또한 다른 플랫폼에서 사용하는 것이 너무 비싸고 스크립팅을 통해서만 코드를 작성할 수 있다는 점이 마음에 들지 않습니다. 각 플랫폼을 별도로 구매해야합니다. 편집자의 유용성은 평균적이며 제품 전체는 대부분의 목적에 충분하지만 직접 배우는 것은 지나치지 않습니다.

  • 시바 3D. 충분히 좋아 보이지만 다시 3D가 필요하지 않습니다. 편집자의 유용성은 Unity3D보다 약간 나쁘며 프로그래밍을 시작하는 방법이 명확하지 않았습니다. 코딩에는 C ++이 필요하다고 생각하므로 부정적인 것입니다. 나는 재미를 원하고 c #은 재미있다;)

  • SDL. 솔직히, 나는 여전히 모든 다른 SDL 구현으로 이식해야합니다. 저는 OpenGL 스타일 프로그래밍을 좋아하지 않습니다. 그리고 그것은 C ++이 필요합니다. 사용 가능한 래퍼가있을 수 있다는 것을 알고 있지만 래퍼를 사용하고 싶지 않습니다.

  • 일리치. 많은 기능이 있지만 지원은 낮은 것으로 보이며 열광자를 목표로합니다. C # 바인딩이 반복적으로 삭제됩니다. 나는 엔진 애호가가 아닙니다. 단지 게임을 만들고 싶습니다. Irrlicht에서는 이런 일이 일어나지 않습니다.

  • 오우거 3D. 너무 많은 작업은 그래픽 엔진 일뿐입니다. 또한 여러 플랫폼 지원 및 C ++이 없습니다.

  • 토크 2D. 사용 비용이 많이 들며 지원 및 설명서에 대한 많은 좋은 소식을 듣지 못했습니다. 또한 각 플랫폼마다 추가 비용이 발생합니다.


FRB SDK 도구는 나쁘지만 (특히 접착제를 사용하지 않습니다) 도구를 작성하는 데 시간을 절약 할 수 있으며 자신의 도구를 작성해야하는 경우 파일 형식이 간단합니다. API는 그다지 나쁘지 않으며이 범위에 적합 해 보입니다. 지금 가장 큰 문제는 PC 및 Xbox 용 XNA 4.0 포트가 없다는 것입니다. 또한 XNA redist 및 기타 사전 요구 사항이 설치의 일부가 될 수 있으며 clickonce를 사용하면 자동 업데이트 및 배포를 즉시 수행 할 수 있습니다.
Oskar Duveborn

글쎄, 내 요점은 내가 그것을 사용하지 않을 것이기 때문에 도구는 쓸모가 없다는 것입니다. 그들은 나쁜 UI / 일반적인 느낌 외에도 나에게 계속 충돌합니다. 특정 기능이 누락 된 경우 어떻게됩니까? 그들이 오픈 소스 였어도 그 코드베이스 근처에 가고 싶지 않습니다. 가혹한 것처럼 보이지만 실제로는 편안한 프로그래밍을 원하며 FRB는 좌절의 결실처럼 보입니다. 상상해보십시오 : 입자 편집기를 사용해 보았는데 이미지 파일을 여는 버튼조차 찾을 수 없었습니다. 다른 모든 것 위에 구축 된 가장 중요한 단일 기능 일 것입니다.
Maxi

정답은 아니지만 Flash는 생각보다 더 잘 확장됩니다. 디스플레이 스택을 사용하는 대신 비트 맵 데이터 캔버스를 블리 팅하고 다른 간단한 최적화를 수행하면보다 순진한 솔루션보다 훨씬 더 많이 짜낼 수 있습니다.
Gregory Avery-Weir

파티클 에디터의리스트 아이템은 단순히 이미 터 속성 패널에서 "텍스처"라고 불립니다. ^^ 모든 툴에 대한 튜토리얼이 있습니다. 그러나 그렇습니다. UI는 인터랙션 디자인 관점에서 정말 끔찍합니다.
Oskar Duveborn

1
XNA는 Windows 전용이지만 모든 종류의 Windows 이외의 플랫폼에서 실행되는 MonoGame이라는 XNA API의 오픈 소스 구현이 있습니다. cocoa-mono.org/archives/400/… 직접 사용하지는 않았지만 존재합니다.
chaosTechnician

답변:


10

파이 게임은 내가 가장 좋아하는 것입니다. 파이썬으로 프로그래밍하면 프로그래밍 속도가 빠르고 2D 작업이 빠르므로 파이 게임은 재미있을 것입니다 ...


당신이 3D 세계로 이사하기로 결정했다면 보너스로 GL을 뱀 가죽으로 감싸는 피그가 있습니다.)
Wayne Werner

9

나는 지금 얼마 동안 LÖVE 를 사용해 왔으며 많이 좋아합니다. 루아를 배워야하지만 어쨌든 배우는 것은 재미있는 작은 언어입니다. 포럼의 사람들은 매우 도움이됩니다.


성능은 무엇입니까? 어떤 IDE를 사용할 수 있습니까?
Maxi

1
나는 이것을 두 번째로한다. 우리는 Global Game Jam 게임에 Lua와 LOVE를 사용했으며 환상적으로 해결되었습니다. 그들은 하나의 공통 API 하에서 정말 훌륭한 오픈 소스 라이브러리를 많이 모았으며 모든 릴리스는 계속 나아지고 있습니다. 성능이 뛰어나고 (루아가 빠르게 타 오르고 있습니다!) FBO와 같은 고급 OpenGL 기능이 많이 노출되어있어 2D 엔진이 많지 않습니다. 이 모든 장점 외에도 크로스 플랫폼 (Win / Mac / Linux)입니다. 나는 확실히 좋은 모습을 줄 것입니다.
밥 소머

1
@ 맥시 : 사랑으로 당신은 편집기와 당신이 쓸 수있는 콘솔이 필요합니다love .
egarcia

2
러시아 사람들이 그걸로 게임을 했습니까? 그것은 사랑으로 러시아에서 온 : P
Bart van Heukelom

5

나는 플래시와 함께 가기로 결정했다. 새로운 Molehill 3D API를 사용하여 3D 공간에서 2D 스프라이트를 훨씬 빠르게 그릴 수 있습니다. 앞서 설명한 게임에 비해 Flash가 충분히 빠르지 않은 이유는 없습니다. 도구를 직접 만들어야하지만 어쨌든 그렇게해야했을 것입니다. AIR을 사용하여 도구를 만드는 것도 제 생각에는 깔끔합니다. 플래시는 또한 플랫폼이 가장 넓기 때문에 시원합니다.


Cocos2d-x 사용해보십시오 . 내가가 사용하고 무엇을 내 인디 게임 개발.
Stephen Furlani

1
플래시는 플래시를위한 아주 좋은 도구와 라이브러리가 있기 때문에 아마도 좋은 선택 일 것입니다. Molehill API는 CPU에서 많은 부하를받습니다 (이전에는 모든 것이 CPU에 의해 처리되었습니다). 그래도 게임 배포에 대해 생각해야합니다. 플래시는 보통 브라우저 기반 게임을 의미합니다.
bummzack

그리고 모바일 게임에주의를 기울이고 플래시와 모바일은 그다지 좋지 않은 조합입니다.
구스타보 메이 엘

" 그리고 모바일 게임에주의를 기울이고 플래시와 모바일은 그다지 좋지 않은 조합입니다. " @Gtoknu, 왜 그런가?
NemoStein

@NemoStein 모바일에서 실행중인 일부 플래시를 YouTube에서 검색해보십시오. 또한 어도비는 플래시를 안드로이드로 개발하는 것을 중단했으며 iOS 용 플래시는 없습니다.
구스타보 메이 엘

4

SFML 사용해 보기


SFML은 유용하지만 그래픽 / 네트워크 / 사운드 API 일 뿐이며 완전한 기능을 갖춘 게임 엔진은 아닙니다 (비슷하지만).
a_m0d

2

Cocos2d-x 사용해보십시오 . 내가가 사용하고 무엇을 내 인디 게임 개발.

그것은 소리, 물리학, 심지어 얼마 동안 iPhone을 위해 나왔던 작은 3D를 가지고 있으며 다른 플랫폼으로오고있는 시도 된 진정한 OpenGL (ES) 플랫폼입니다.


2

Actionscript는 좋아하지만 크로스 플랫폼을 찾고 있으므로 HaXe + NME를 살펴보십시오 . HaXe 는 Actionscript와 유사한 언어이지만 Flash, Javascript, PHP 또는 C ++로 컴파일 할 수 있습니다. NME는 Flash의 그래픽 라이브러리와 유사한 라이브러리이지만 다른 플랫폼에서도 실행됩니다. 이 조합을 사용하면 다양한 플랫폼으로 컴파일 할 수 있습니다.

아직 NME를 사용하지는 않았지만 Haxe + Molehill (몇 일 전)을 사용한 첫 테스트에서 노트북에 10,000 개의 16x16 회전 스프라이트를 렌더링 할 때 60fps가 생성되었습니다. 나는 단지 며칠 동안 HaXe를 사용하고 있었고 그것이 당신에게 옳은 일인지 확신하기에 충분한 경험이 없습니다.하지만 볼만한 가치가 있습니다.


1

나는 개인적으로 Allegro 5 의 열렬한 팬 이지만 C API입니다. 그럼에도 불구하고, 그것은 당신의 길을 벗어나 다음에 대한 액세스를 제공하는 간단한 API입니다.

  • 2D 그래픽 (플랫폼에 따라 OpenGL 또는 D3D 지원)
  • 소리
  • 글꼴 (비트 맵 및 TTF 모두 포함)
  • 입력 (마우스 및 키보드)
  • PhysicsFS (파일 시스템 가상화)
  • 이미지 로딩

5.1은 셰이더 지원도 추가 할 예정입니다.

SDL 1.3도 상당히 잘 형성되고 있습니다. Sam은 주요 API 변경을 수행 한 것으로 보이며 이미 존재하는 것은 이미 매우 안정적입니다. 여전히 ... 아직 베타 버전이 아니며 Allegro 5.0이 출시되었습니다.

더 복잡한 고급 게임의 ​​경우 Allegro 5를 일종의 물리 라이브러리 ( 예 : Box2D) 와 페어링하고 싶을 것입니다 . 그럼에도 불구하고 Allegro 5, C 또는 C ++ 표준 라이브러리 및 사용자 고유의 코드 외에는 먼 길을 가고 재미가 있습니다.

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