튜토리얼로 게임을 만드시겠습니까? [닫은]


19

저는 학교에서 게임 개발 클럽을 책임지고 있으며 이번 여름에 다음 학기 튜토리얼로 사용할 수있는 프로젝트를 진행하고 싶습니다. 나는 이런 식으로 아무것도하지 않았으므로 누군가 가이드 라인이나 아이디어가 있는지 궁금합니다.

내가 기본적으로하고 싶은 것은 매우 간단한 게임을 만드는 것입니다. 당신이 그들을 죽이고 전리품을 집어 들기 위해 적들이 돌진하는 하향식 사수와 같은 것. 그러나 모든 것이 매우 쉽게 수정되기를 바랍니다. 클럽의 사람들은 게임 개발 경험이 거의 없으므로 사람들이 쉽게 기능을 수정하고 추가 할 수있는 방식으로 게임을 설정할 수 있다면 그들에게 좋을 것입니다.

행동하기 쉬운 적 클래스를 보유하거나 총을 다르게 쏘거나 새 총을 추가하고 새로운 전리품을 얻는 것과 같습니다. 게임에 새로운 요소를 추가하기도합니다. 이런 종류의 가단성을 허용하는 게임을 만드는 가장 좋은 방법은 무엇입니까?


1
스택 오버플 로 에서이 답변 을 살펴보십시오 .
Andrew Russell

답변:


16

게임 개발에서이 목표를 달성하는 전통적인 방법은 게임 시스템에 데이터 중심 아키텍처를 사용하는 것입니다.

본질적으로 이것은 코드가 범위 / 손상 / 투과율에 대해 명시 적으로 정의 된 값으로 특정 유형의 무기 (총)를 구현하지 않고 원거리 무기의 일반 개념 (범위 / 손상 / 침투 ...)을 채우는 것을 의미합니다. 외부 (코드) 데이터 소스에서 이 외부 소스는 디스크에서 읽은 구문 분석 가능한 (아마 XML) 파일부터 게임 엔진 자체의 내부 또는 외부 도구를 통해 생성 된 이진 파일 또는 데이터베이스 요소에 이르기까지 다양합니다.

적과 같은 것을 정의하는 AI 시스템은 몇 가지 일반적인 행동 (공격적, 방어 적,지지, 겁쟁이)을 지원하도록 설계되어 데이터 중심 요소에 의해 조정됩니다.

My New Enemy는 다음과 같은 데이터 중심 값으로 공격적인 기본 AI 동작으로 시작합니다. (플레이어가 너무 가까이있을 때)

보다 복잡한 데이터 기반 체계를 통해 AI 상태 (유한 상태 머신)를 다른 상태 (또는 N 개의 다른 상태 중 하나로 전환 할 수있는 기회)로 전환하는 특정 데이터 포인트 (이벤트)를 정의 할 수 있습니다. 복잡한 행동 계층.

이 모든 것은 물론 행동을 명시 적으로 코딩하는 것보다 더 많은 작업이지만 사용자가 소스를 수정하지 않고 콘텐츠를 제작할 수있게하는 것은 어려운 과제입니다.

달성해야 할 보너스 포인트가 있습니다 :

  • 응용 프로그램을 다시 시작하지 않고 동적으로 데이터를 업데이트하고 변경 사항을 게임 엔진에 반영 할 수있는 경우
  • 데이터에 대해 사용자 친화적 인 UI를 만들면 사용자가 텍스트 (xml 또는 기타) 파일을 직접 편집하지 않고 인터페이스를 사용하여 데이터와 상호 작용할 수 있습니다.

보다 기술적 인 군중을 대상으로하는 튜토리얼 게임의 경우, 대부분의 작업은 사용자가 데이터 중심으로 확장 될 수 있도록 깔끔한 인터페이스를 제공하는 설계된 클래스 / 객체에 있습니다.


좋은 대답입니다! +1
AttackingHobo

입력 해 주셔서 감사합니다 :)! 이런 종류의 코드를 구현하는 방법을 보여주는 사이트를 알고 싶으십니까? 그런 외부 소스로 게임을 한 적이 없습니다. 클럽에서 XNA로 코딩하기를 원하지만 클래스와 객체 라인을 따라 더 쉽게 클래스를 상속받을 수 있습니다. 그러나 나는 이것에 대해 확실히 살펴볼 것이다.
Benixo

이를 수행하는 좋은 방법은 매우 간단한 데이터 기반 구조를로드 할 수 있도록 자체 구성 파서를 필요로합니다. 기본적으로 모든 자습서의 핵심은 청크를 가르치는 것이므로 추상화가 절대적으로 중요합니다. 그런 다음 사용자가 새로운 무기 유형을 정의하고 만들 수있는 간단한 GUI를 디자인하는 것이 좋습니다.
감속

게임에서 가장 일반적인 데이터 중심 측면은 수준입니다. 다른 모든 것이 하드 코딩되어 있어도 레벨 디자인 (예 : 풍경이 배치되는 장소, 적이 배치되는 장소 등)은 거의 항상 게임이로드하는 데이터 파일에 정의됩니다. 그의 두 번째 보너스 포인트는 레벨 편집 도구를 설명합니다.
jhocking

디스크에서 / 디스크로 객체를 쓰거나 읽는 프로세스를 "직렬화 해제 / 직렬화"라고합니다. 해당 용어 아래에서 유용한 자습서를 찾을 수 있습니다.
Exilyth

1

프로젝트를 시작하고 단계별로 빌드하는 방법에 대한 몇 가지 아이디어를 찾고 있다면 튜토리얼로 변환 할 수 있다면 XNA Game Programming Adventures를 살펴보십시오 . 저자는 단계별로 증가하는 설명과 소스 코드와 함께 여러 튜토리얼을 설정했습니다.


0

www.thenewboston.com의 Java 게임 개발 튜토리얼을 참조하십시오.

그것은 당신이 무기를 가진 친구들과 모든 재즈와 관련하여 당신이 찾고있는 것이 아닐 수도 있지만, 게임 개발의 여러 주요 요소를 단계별로 분류하는 좋은 단계를 제공합니다. 발표자 "Bucky"는 차갑고 재미 있고 재미있는 스타일의 교육을 제공합니다. 즐겨.

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