게임 개발은 어디서부터 시작해야합니까? [닫은]


65

나는 이 스레드 에서 stackoverflow.com의 초기에 이것을 물었다 . 초기 의견 중 하나가 나를 gamedev.stackexchange.com으로 리디렉션했기 때문에 여기에 다시 게시하고 있습니다.

관련 질문을 검색하면서 매우 구체적인 질문을 많이 찾았지만 세부 사항이 나에게 도움이되지 않는 것이 두렵습니다. Google에서 4 시간 후에 시작한 것보다 가까이에 있지 않아서 커뮤니티에 문의하는 것이 순서대로.

첫째, 내 목표 : 나는 여러 번 가능성에 대해 혼란을 겪었지만 전에는 게임을 한 적이 없다. 나는 마침내 게임을 코딩하고, 게임 엔진을 사용하는 방법 등을 배우기 시작했습니다. 언젠가는 (간단히) 기능적인 (간단하지만) 게임을 만들 수있게되었습니다. 나중에 복잡성을 추가 할 수 있습니다. 지금은 3D 세계에서 키보드 제어 카메라를 넘어서게 상호 작용하지 않는 것이 기쁩니다.

내 배경 : PHP에서 C ++, Java에서 ASM에 이르는 여러 프로그래밍 언어에서 일했습니다. 나는 새로운 언어에 내재 된 새로운 구문이나 한계를 배우는 데 따르는 어려움을 두려워하지 않습니다. 그러나 과거의 모든 프로그래밍 경험은 엄격하게 그래픽이 아니며 일반적으로 실행 중에 거의 또는 매우 간단한 상호 작용을했습니다. 나는 논리 및 수학 문제를 해결하고 그래프 문제를 해결하기 위해 광범위하고 화려한 알고리즘을 만들었습니다. 그러나 모든 경우에 입력은 파일에 정의되거나 HTML 형식으로 전달되거나 콘솔에 입력되었습니다. 사용자와의 실시간 상호 작용은 경험이없는 것입니다.

내 질문 : 게임을 만들기 위해 어디에서 시작해야합니까? 더 나은 아직 키보드 탐색 가능한 3D 환경을 만들려면 어디에서 시작해야합니까? 온라인 검색에서 게임 엔진, 그래픽 엔진 및 물리 엔진에 연결되는 여러 리소스를 발견했습니다. 다음은 몇 가지 엔진을 사용한 경험에 대한 간략한 요약입니다.

언리얼 SDK : 튜토리얼 비디오는 이미 3D 모델링, 그래픽 엔진, 애니메이션 등에 대한 깊이있는 지식이 있다고 가정합니다. "시작하기"페이지는 게임 개발에 대한 공식적인 설명을 제공하지 않지만 언리얼이 사용자를 가정하는 프로세스를 간소화 할 수있는 방법으로 이동합니다 이미 익숙하다. SDK를 다운로드하여 시작한 후 도구가 직관적인지 확인한 후 약 60 개의 버튼과 3D 모델링을위한 공백이 표시되었습니다. "볼륨 추가"(기본 큐브 추가 시도)를 클릭하면 30 가지 옵션 메뉴가 나타납니다. 당황하면서, 나는 편집자를 닫았다.

Crystal Space : 웹 사이트는 정보를 제공하는 것처럼 보였으며 Crystal Space는 그래픽만을위한 것이며 동반 소프트웨어 인 CEL은 게임 제작을위한 엔터티 논리를 제공했습니다. 게임 프로그래밍에 대한 지식이없는 사람들을위한 간단한 도구 인 "CELStart"를 사용하여 제작 된 데모 게임이 제공되었습니다. 나는 무엇을 만들어 내기를 기대하는지 게임을 시작했다. 여러 번 멈 췄고 메뉴가 버그가 있었고 수천 개의 그래픽 결함이 있었고 적들이 피해에 반응하지 않았으며 게임을 닫을 때 잠겼습니다. 그 엔진을 포기했습니다.

IrrLicht :이 자습서에서는 Visual Studio 6.0 (Visual Studio 2010이 있음)이 있다고 가정합니다. 그들의 지시에 따라 라이브러리를 Visual Studio로 올바르게 가져올 수 없었고 계속 사용하는 함수를 호출 할 수 없었습니다. 헤더 파일, 클래스 파일 및 DLL을 프로젝트 폴더로 수동 복사-프로젝트가 제대로 컴파일되지 않았습니다.

분명히 나는 ​​좋은 출발을하지 않고 서클에 간다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까? Blender와 같은 프로그램을 다운로드하고 3D 모델링을 배우는 것으로 시작해야합니까, 아니면 그래픽 엔진 사용법을 배우고 있어야합니까? 포괄적 인 게임 엔진을 찾아야합니까, 아니면 내 게임 로직을 코딩하고 코딩하는 것이 더 낫습니까? 누군가가 실제로 자신의 게임을 만들었다면 나는 그들이 어떻게 시작했는지 듣고 싶습니다.

또한 학교에서 수업을 듣는 것은 선택 사항이 아닙니다. 아무것도 제공되지 않습니다.


3
+1 특정 요구 사항을 찾는 우수한 프로그래밍 배경.
Will Marcouiller

6
+1, 이것은 게임 개발을 시작하는 방법에 대한 잘 생각되고 연구 된 질문입니다. 또한 Unreal SDK에 대한 귀하의 고통을 느낍니다.
James

UDK에 대한 Raven67854의 튜토리얼 을 확인하는 것이 좋습니다 . 그들은 비디오 아래에 나열되어 있으며 사람들은 좋아하는 것 같습니다.
Jesse Dorsey

내 충고는 무언가를 만들기 시작하는 것입니다. 일반적으로 이런 종류의 질문을 한 사람들은 한 번에 같은 종류의 질문을하기 때문에 선형으로 길을 가고 싶어합니다. 그러나 과거의 경험에서 게임 개발 학습 곡선은 비선형 곡선입니다. 나는 보통 문제에서 문제로 옮깁니다. --- 막히면 대답을 요청 / 검색합니다. 따라서 시도해보고 시행 착오를 통해 배우십시오. 일반적으로 튜토리얼부터 시작합니다. 그러나이 자습서는 충분한 세부 정보를 제공하지 않으므로 답변을 요청 / 검색 / 실험해야합니다.
user1542

답변:


38

GD에 가입했을 때 그런 질문을했습니다. 다음은 귀하에게 관심을 가질만한 몇 가지 링크입니다.

요컨대, XNA Game Studio게임 개발에 관심을 갖기 위해 갈 것입니다 . 그런 다음 지식 / 기술로 달성하고자하는 목표로 넘어갑니다. XNA스프라이트 작업에 대해 가르쳐 주었고, 학습 곡선의 시작 부분부터 지식의 일부를 적용 할 수 있었으므로 의존성 주입 등. 그래서 더 이상 기다리지 않겠습니다.

  1. 게임, 튜토리얼 등을 어디서 시작할 수 있습니까?
  2. 게임 개발의 기본은 무엇입니까? (재미있는 질문, IMHO)
  3. UI 코드에서 물리와 게임 로직 분리
  4. 클래스를 사용하여 XNA에서 스프라이트 이동

왜 XNA가 물어 볼까요? 단순히 Java 배경 때문입니다. XNA는 여러 가지 방법으로 Java와 유사한 C #을 사용하며, 중요한 것에 집중할 수 있도록 Game Loop 및 항목을 추상화하는 간단한 프레임 워크이기도합니다.

나는 이것이 당신을 시작할 수 있기를 정말로 바랍니다. =)


1
지연 된 답변에 대해 죄송합니다 =) 나는 당신이 나를 리디렉션 한 각 게시물을 읽었습니다. (또한 XNA로 3D 게임을 만드는 데 관한 MSDN 페이지에 링크 된 게시물 중 하나입니다. 엄격하게 2D 게임이었습니다. 나는 이것이 좋은 출발점이라고 생각한다. 감사합니다. 오늘 밤에 XNA를 다운로드하여 잠자리에 들게된다면 내일 나는 탁구 등을 만들려고 노력할 것입니다.
stevendesu

@Steven : 문제 없습니다! 나는 안내를 요청한 저처럼 애호가 개발자를 돕기 위해이 답변을 게시했습니다! 나는 당신이 그것을 즐기시기 바랍니다! 저의 첫 번째 도전은 우주 공예, 에너지 공 및 벽돌마다 수업을 하나씩 작성하면서 충돌 감지를 위해 노력해야하는 간단한 Arkanoid와 유사한 게임을 개발하는 것입니다. 그런 다음 내 Game1수업은 게임 컨트롤러로 사용됩니다. 내 의견으로는 다른 수업에 무엇을해야 할지를 제어하고 알려주는 수업 등이 있습니다. 나는이 측면을 링크 # 4와 # 5에 대해 조금 설명합니다.
Will Marcouiller

나는 곧 또 다른 질문을 할지도 모른다. (내일) xx XNA Game Studio 4.0을 다운로드하여 설치했다 .... 그리고 다음에 무엇을해야할지에 대한 명확한 지시는 없었다. 공식 XNA 웹 사이트 전체에 "Windows Phone 7 용 게임 만들기"라고 적혀 있습니다. Windows 용 게임 제작에 대해서는 아무 것도 없습니다. 나는 아침에 그것을 알아낼 수 없거나 내가 할 수 없는지 여기에서 물을 것이다.
취침

1
Visual Studio를 사용하여 새 프로젝트를 만든 다음 프로젝트 유형을 선택할 수있는 XNA를 선택하십시오. 그런 다음 Windows 용 게임을 시작하십시오! XNA 게임 프로젝트 템플릿 (새 프로젝트)은 기본적으로 Windows에서 컴파일되고 실행됩니다. XNA는 게임 개발을위한 Microsoft 라이브러리이므로 Windows 및 XBox 용 게임을 개발할 수 있습니다.
Will Marcouiller

1
미래를 위해 XNA는 본질적으로 더 이상 사용되지 않지만 Monogame은 계속 사용한다는 것을 지적 할 가치가 있습니다. 대부분 동일한 코드가 작동합니다.
Magus

8

당신은 시도 할 수 있습니다 유니티 3D를 하기 때문에,

  • JavaScript, C # 또는 Boo로 프로그래밍 가능
  • 여기에 좋은 튜토리얼이 있습니다.
  • 학습 곡선이 가파르 지 않습니다
  • 더 많은 리소스를 찾을 수있는 Unity Answers 가 있습니다.

(면책 조항 : 나는 Unity 제작자와 관련이 없으며, 직접 사용하고 기본을 배우는 훌륭한 도구라는 것을 알았습니다).

그러나 그렇습니다 – 당신은 꽤 많은 일에 착수했습니다. 저는 지금 6 학기 게임 디자인을 공부하고 있는데 여전히 표면보다 더 긁힌 것 같은 느낌이 들지 않습니다. 업계가 게임을 만드는 과정의 거의 모든 측면에 대한 전문가를 보유하고 있다는 것은 놀라운 일이 아닙니다.

편집 : Unity가 "적절한"게임 엔진으로 보이지 않는 것에 대한 의견이있었습니다.이 말은 제가 말한대로 오해 될 수 있습니다. Unity가 적절한 게임 디자인을하는 데 사용될 수는 없다고 제안하는 것이 아닙니다. 나는 그것을 직접 사용하고 그것을 좋아한다. ;)


3
무엇이 부적절합니까?
lathomas64

나도 궁금하다.
Jesse Dorsey

어쩌면 (플래시 나 자바와 같이) 컨테이너 프로그램을 실행해야한다는 사실 때문에 그는 번거롭지 않고 방대한 청중에게 컴파일 및 배포 할 수 없다는 점에서 "부적절하다"고 생각합니까? 어느 쪽이든, 나는 지금 XNA를 조사하고 있습니다. XNA가 너무 어렵다면 Unity3D를 확인하십시오.
stevendesu

글쎄, 사람들이 "적절한"게임 디자인을 위해 Unity를 진지하게 받아들이지 말아야한다는 말을 들었습니다. 전에 말했듯이 – 나는 그것을 직접 사용하고 있으며, 나는 그것에 매우 만족합니다. 어떤 경우에는 유니티가 의심 할 여지없이 쉬운 일을한다고 생각합니다.… 그로 인해 다운 보트가 발생했을까요?
xeophin

@steven_desu : 사실, 당신은 웹 플레이어를위한 컨테이너 프로그램 만 필요합니다. Windows 또는 Mac에서 실행되도록 컴파일 된 게임은 완전히 독립적입니다.
xeophin

2

irrlicht에 문제가 있다면 Ogre3D도 시도해야합니다. 쉽지는 않지만 시간을 투자하면 더 잘 작동 할 수 있습니다. 당신이 이해해야 할 중요한 것은 프레임 리스너 (framelistener), 마지막 프레임이 표시된 후 시간을 얻는 방법, 그리고 당신이 이야기하고있는이 응용 프로그램을 만들고 싶다면 이해해야 할 유일한 것입니다.

나는 또한 irrlicht에 어려움을 겪었고, 튜토리얼은 최신이 아니지만 샘플을 사용해보아야합니다!

또한 처음에는 panda3d 및 pygame 등과 같은 다른 것들과 함께 놀면서 서클에서 많이 달렸습니다. 게임 아이디어에 집중하고 한 번에 한 가지를 구현하십시오.

그리고 수학 수학을 기억하려고 노력하면 3D로 사용할 수 있습니다!


2

나는 최근에 당신과 같은 추구를 시작했습니다. jMonkeyEngine 이라는 순수한 자바 엔진 을 사용하여 환상적인 튜토리얼을 제공했습니다. 게임 디자인을 설명 할 수 있을지 모르겠지만 그래픽으로 시작 해보자.

모델링에 사용할 수있는 도구를 제안 / 링크하고 복사 및 붙여 넣기 가능한 잘 설명 된 예제를 통해 화면에 상자를 배치하여 물리 엔진을 설정하는 단계를 안내합니다.

확실히 읽을 가치가 있습니다-몇 시간 만에 내가하고있는 일에 대한 좋은 생각이있었습니다.


엔진을 사용하지 않더라도 자습서를 읽어 볼 가치가 있습니다. 일부 3D 수학에 대한 유용한 자습서도 있습니다.
DMan

2

Flixel http://flixel.org/를 사용해보십시오 . flixel을 사용하여 첫 "데모"게임을 만들었습니다. 좋은 커뮤니티, 좋은 튜토리얼.

3D는 아니지만 게임 프로그래밍 환경의 첫 단계를 쉽게 만드는 멋진 기능이 많이 있습니다.

수천 개의 움직이는 개체 표시 개체
간 기본 충돌
단순성을 위해 그룹 개체 그룹화
쉽게 입자 생성 및 방출
타일 ​​맵을 사용하여 게임 수준 만들기
텍스트 표시, 게임 저장, 스크롤
마우스 및 키보드 입력
수학 및 색상 유틸리티

그리고 상업적으로 무료로 사용할 수 있습니다.


1

그래픽으로 전혀 작업하지 않았다면 open gl 또는 direct x를 배우기 전에 시작하십시오. 첫 게임을 그런 식으로 프로그래밍했습니다. 우리 회사 엔진은 사내에 있으며 대부분의 시스템은 어떤 형태로든 Open GL을 지원합니다. 나는 일을 시작하기 전에 작성된 코드를 살펴보면서 일을 배웠습니다. 일부 오픈 소스 프로젝트를 살펴보고 게임 구조가 어떻게 설정되어 있는지 확인하고 자신의 일을 시작하기가 편할 때까지 수정하는 것이 좋습니다. 또한 "게임 코딩 완료"는 적절한 파일 구조 및 리소스 관리와 같이 사용자가 모르는 모든 게임 프로그래밍에 대한 훌륭한 참고 자료로 추천합니다.


1

소스 엔진을 사용해보십시오 . Valve Corportaion과 계약을 체결하면 게임을 쉽게 개발할 수 있으며 배포 플랫폼 (Steam)을 받고 게임을 무료로 판매 할 수 있습니다.


1

간단한 게임을 만들기 위해 하나의 패키지에 필요한 모든 것이 있으므로 플래시 게임부터 시작하는 것이 좋습니다. 예를 들어 , 에마누엘레 페로 나토 (Emanuele Feronato) 와 같은 수많은 블로그가 있습니다. 그는 심지어 10 개의 완전한 게임 이있는 을 가지고 있습니다.

개발에 충분한 FlashDevelop를 사용하고 있습니다.

Chris Moeller의 "Asteroids Flash Game 제작" 은 플래시 개발을 사용한 단계별 접근 방식을 갖춘 훌륭한 사례입니다.

타일 ​​기반 게임의 경우 Ironcoding에 대한 훌륭한 자습서가 있습니다 .

이 모든 것을 갖추면 비디오 게임에 어려움을 겪고 게임을 만드는 사람들이있는 곳을 찾는 것이 좋습니다. 한 달에 하나의 비디오 게임을 제작하여 다음 프로젝트를 진행하기 전에 마무리하고 다듬고 발표 할 수있는 작은 것에 집중하십시오. 월간 비디오 게임 챌린지에 참여하고 있습니다 .

작게 유지하고 완료 할 수 있도록하십시오.

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