2D 레벨 디자인 / 편집 / 저장 질문 [닫기]


12

SuperMario와 같은 간단한 2D Sidescroller 게임을 만드는 것에 대해 생각했습니다. 그런 다음 게임 레벨을 저장,로드 또는 생성하는 방법에 대해 궁금했습니다. 내가 생각한 첫 번째 단계는 레벨을 나타내는 간단한 블록 모양의 png를 그리는 것입니다. 플레이어가 특별한 색 (아마 라일락)을 걸을 수있는 모든 부분을 만듭니다. 충돌을 확인할 수 있도록 레벨을 블록이나 타일로 가져옵니다.

그래서 내 질문은 :
더 좋은 방법이 있습니까?
이에 대한 전문적인 방법은 무엇입니까?
타일 ​​및 타일 기반 맵 편집기로이 작업을 수행해야합니까? (어떤 이유로 나는 이것을 좋아하지 않지만
타일 ​​기반 레벨로, 슬로프를 실현하는 방법과 충돌을 어떻게 확인합니까?)

답변:


10

2D MMO의 경우 http://www.mapeditor.org/ 를 사용 합니다. 배경, 배경 장식, 플레이어와 같은 수준의 개체 및 플레이어 앞의 개체에 여러 레이어를 사용합니다. 충돌을 표시하기 위해 단 하나의 빨간색 사각형이있는 추가 레이어.

이 접근 방식이나 소프트웨어가 2D 사이드 스크롤러에서 작동하는지 확실하지 않지만 살펴볼 가치가 있습니다.


+1. 훌륭한 도구입니다. 또한 오픈 소스이므로 필요할 경우 확장 할 수 있습니다.
Janis Kirsteins

그게 정말 좋은 도구입니다, 나는 그것을 테스트하고 내 게임으로 가져 오는 데 아무런 문제가 없었습니다.
Simiil

1
이제 웜의 세계와 같이 타일 기반이 아닌 레벨을 만드는 방법을 알고 싶지만 언젠가는 새로운 질문으로 질문 할 것입니다.
Simiil

6

일반적인 방법은 예를 들어 문자열 일 수 있습니다.

0,0,0,0,0,0,1,1,1,0,0,0,2

여기서 0은 걸을 수있는 블록이되고 1은 스파이크가되고 2는 결승선이됩니다.

텍스트 파일을 통해 이것을 읽거나 게임에 하드 코드화하여 숫자와 관련된 상대 블록을 그리고 콜리 전 논리가 처리되도록 설정하십시오.

분명히 원하는 형식을 선택할 수 있으며 0은 도보 가능한 블록 5 개를 의미합니다.

이것은 달성 할 수있는 한 가지 방법 일뿐입니다.

http://www.smudgedcat.com/tut_tiledlevel.html 이 링크는 XNA 프레임 워크를 사용하는 c # 내의 예입니다. 그것은 당신에게 대략적인 아이디어를 줄 것입니다 (경사를 포함하지는 않지만 비슷한 유형을 사용 하여이 유형의 사례를 정의 할 수 있습니다)

안부 마크


이것은 "Excite Bike"가 닌텐도에서 커스텀 맵을 수행 한 방식과 거의 같습니다. vc.nintendolife.com/games/nes/excitebike
Stephen Furlani

5

대체 텍스트

많은 게임에서 Mappy 라는 오픈 소스 응용 프로그램을 사용합니다 . 여러 레이어 및 기타 기능을 지원하는 자체 형식이 있습니다. 여러 유형의 데이터를 주어진 타일과 연관 시키려고 할 수 있습니다.


게임 내 에디터 방식이 매우 일반적이라고 생각합니다. 개발자 모드 는 매우 인기있는 게임 인 Braid의 레벨이 어떻게 설계되었는지에 대한 설명입니다. 이 게임에는 레벨을 구성 / 수정할 수있는 개발 모드가 있습니다. 레벨 자체에는 그래픽 타일로 덮인 충돌 레이어가 있습니다.

대체 텍스트


개인적으로 권장하지는 않지만 Allegro의 2D 데모 프로그램은 일부 유형의 3D 모델링 형식을 사용하여 사용자 지정 게임 내 형식으로 변환했습니다. 장점은 매우 부드럽고 연속적인 표면을 모델링 할 수 있다는 것입니다. (2D 물리 기반 스케이트 보드 게임이었습니다.)

Allegro 데모 게임의 레벨 데이터를 편집하기 위해 무료 및 오픈 소스 도구 인 Blender를 사용합니다. 여기에서 얻을 수 있습니다 :

http://blender.org

작동 방법에 대한 단계별 지침은 다음과 같습니다.

1) ademo_export.py 파일을 Blender scripts 폴더에 넣습니다. .blend 형식을 데모 게임에서 사용하는 .txt 형식으로 변환하는 내보내기 스크립트입니다. 유닉스에서 경로는 다음과 같습니다.

~ / .blender / scripts / ademo_export.py

2) .blend 파일 블렌더를로드하십시오. 유닉스에서, level.blend 파일을 가진 디렉토리에서 이것을 입력하십시오 :

믹서기 -w level.blend

(-w는 선호하는 윈도우 모드를 사용하는 것입니다.)

3) 레벨을 편집하십시오. 메뉴에서

도움말-> 스크립트 도움말 브라우저-> 내보내기-> Allegro 데모 게임 레벨

유용한 팁을 찾을 수 있습니다.

4) 파일을 저장하십시오 (커밋하기 전에 압축 사용). 내보내기 메뉴에서 Allegro Demo Game Level을 선택하여 .txt로 내 보냅니다.

5) level.txt를 사용하여 level.dat를 업데이트하면 새로운 레벨이 게임에 나타납니다.


2

'전문적인'방법에는 아마도 C #에서 매우 상세한지도 편집기가 포함되어 모든 것을 완전히 제어 할 수 있습니다.

두 가지 주요 접근 방식이 있습니다. 하나는하기는 쉽지만 효과적이지 않습니다.

  • 맵 편집기를 사용할 수 있습니다. 직접 작성하거나 nhnb가 언급 한 mapeditor와 같은 기존 항목을 찾으십시오. 직접 작성하는 것은 학습 경험에는 좋지만 완제품에는 그리 좋지 않습니다.
  • 텍스트 파일에 데이터를 입력하면됩니다. 이것은 더 간단하지만 다시 읽기 쉽지 않습니다. 지도 편집기에서 동일하게 얻을 수 있지만 자동화됩니다. 이것의 단점은 특정 타일 (예 : 타일 유형 이 아니라 타일 (13,45)) 과 같은 특수 효과를 추가하여 특별한 작업을 수행 할 수 없다는 것입니다.

2

나는 비슷한 생각을했습니다 (즉, 취미로 게임을 다시 작성하십시오-직업 및 기타 약속 ...)

게임 / 응용 프로그램의 일부로 'Map Editor'를 개발하는 경로를 진지하게 고려하고 있습니다.

게임이 자신의 PC를 넘어 서면 커뮤니티 콘텐츠가 큰 도움이 될 것입니다.

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