기본 콘텐츠로 건너뛰기

Super Mario Bros. 1-1스테이지 레벨 디자인 (2)

    목차



저번 글에 이어서, 이 네개의 파이프를 보면, 네번째 파이프에 비밀 통로가 있습니다.
이 비밀 통로는 이 게임에 익숙한 플레이어들에게 제공되는것입니다.
이 게임을 처음 플레이하는 사람들은 알 수 없습니다.

닌텐도는 이런 식으로 숙련된 플레이어에게 숏컷같은 길을 만들어 두었습니다.
Super Mario Bros. 1-2스테이지나 4-2스테이지의 워프 존 등이 그렇죠.


그리고 플레이어들은 첫번째 난관에 도달합니다.
끝이 없는 절벽입니다. 숙련되지 못한 플레이어들을 위해 보이지 않는 벽돌을 설치했습니다.
절벽에 떨어지게 점프한 플레이어들은 그 벽돌에 부딫혀 살 수 있게 되죠.



그리고 그 벽돌에선 마리오의 생명을 한 개 늘려주는 버섯을 발견하게 됩니다.

하지만 이 버섯이 좋은 버섯인지, 나쁜 버섯인지 플레이어들은 어떻게 알 수 있을까요?


처음 굼바와 버섯이 나왔을 때 이 오브젝트들이 움직이는 방향에 대해 이야기 했었습니다.

독버섯처럼 보이는 이 버섯은 엄청 빠르지만 마리오의 진행 방향과 같습니다.
이것은 플레이어들에게 매우 좋은 보상을 준다는 의미라고 할 수 있습니다.


또한, 이 버섯은 숙련된 플레이어에 대한 보상이기도 합니다.





또한, 이 장소에 보이는 버섯은 슈퍼 마리오 상태일때 꽃이 나오는데, 이것은 파이어 마리오로 변할 수 있습니다.


그리고 여기선 처음으로 굼바가 위에서 아래로 떨어집니다.
이것으로 플레이어들은 굼바에게 어떤 중력 법칙이 적용되는 지 알 수 있습니다.
그리고 플레이어들은 굼바가 떨어지는 곳에 아마 점프를 할 것입니다.
어떤 일이 벌어질까 호기심이 생기기 때문이죠.
그리고 플레이어들은 굼바를 처치하는 새로운 방법을 배우게 됩니다.


그리고 아마 (파이어)마리오는 불을 던지는 능력을 터득했을겁니다.
변한 마리오의 모습에 아무 버튼이나 눌러봤기 때문이죠.
그리고 마리오는 굼바 두마리와 엉금엉금이 등장합니다. 이곳에서 플레이어는 파이어 마리오의 능력을 터득하게 됩니다.


그리고 플레이어는 처음 하나만 떨어져있는 벽돌을 보게 됩니다.
이 벽돌에 점프를 하면 동전이 계속 나오죠.
이것으로 플레이어들은 벽돌이 그저 파괴만 되는 오브젝트가 아니라는 것을 알게 됩니다.

그리고 옆에 있는 벽돌에도 호기심에 점프를 할 것입니다. 그럼 닌텐도의 플레이어에 대해 보상이 나옵니다. 슈퍼 스타라는 좋은 아이템이죠.
슈퍼 스타 또한 마리오와 같은 방향으로 움직입니다.

그리고 플레이어는 이 능력이 어떤것인지 튜토리얼을 받게 됩니다.
그리고 등장한 엉금엉금은 굼바 2마리와 조금 떨어져 있습니다. 슈퍼 스타의 등장 위치보다 뒤에 있죠.


그리고 닌텐도는 한번 더 플레이어에게 슈퍼 스타가 어떤 것인지 알게 해줍니다. 굼바를 많이 배치해서 말이죠.





이 피라미드는 비슷한 형태가 2개 있습니다. 두개의 차이는 바닥이 있냐, 없냐죠.
여기서 닌텐도는 플레이어들을 시험합니다. 마리오의 점프가 잘 숙련되었냐를 확인합니다.

첫번째 피라미드는 윗넓이가 좁은 대신 바닥이 있습니다. 혹시 떨어져도 안전하게 나올 수 있죠. 대신 두번째 피라미드는 다시 돌아올 수 없는 절벽이 있습니다. 대신, 이 스테이지는 튜토리얼이고, 미숙한 플레이어들이 많기 때문에 한 칸이 더 넓게 만들어져 있습니다.
또한 이 피라미드는 1-1스테이지의 마지막 깃발을 잡기 전 피라미드의 모습과 비슷합니다. 역시 연습을 위한 것이죠.

이 두 개의 피라미드는 닌텐도 게임의 특징을 잘 표현했습니다. 먼저 연습하고, 숙련되게 만들어 준 다음, 성취감을 얻게 하는 것이죠.


그리고 Super Mario Bros.의 첫 번째 스테이지가 끝이 나게 됩니다.
그리고 Super Mario Bros.의 모든 깃대는 한 블록 위에 설치되어 있습니다.

이것은 닌텐도가 이 게임의 점프 액션을 잘 활용하고, 재미있고, 중요하게 생각한다는 의미이기도 합니다.





이렇게 Super Mario Bros.의 1-1스테이지를 분석 해보았습니다.
이 스테이지는 '자연스러운 튜토리얼'에 대한 효시가 되고있고, 매우 훌륭한 레벨 디자인 중 하나라고 생각합니다.

이 스테이지는
현재 닌텐도의 훌륭한 게임들 '젤다의 전설 : 브레스 오브 더 와일드', '슈퍼 마리오 오디세이'등이 어떻게 만들어지고 있고, 닌텐도의 개성, 지향점이 무엇인지 관통하고 있는 예시입니다.



댓글

이 글도 관심 있으실 것 같아요!

놀이의 4대 요소 (Agon(아곤), Mimicry(미미크리), Ilinx(일링크스), Alea(알레아))

네덜란드의 고전 학자인 '요한 하위징아'의 저서인 「호모 루덴스 」에서 인간을 '유희의 인간'이라고 칭했습니다. 프랑스의 '로제 카유아'라는 학자는 「호모 루덴스 」의 이론을 발전시켜 그의 저서인 「놀이와 인간」 (원제 「 Man, plays and games 」) 에서 ‘놀이의 4대 요소’를 말했습니다. 저자는 그것을 아곤, 미미크리, 알레아, 일링크스로 소개했습니다. 이 네 가지 놀이의 요소는 인간의 모든 유희, 놀이에서 발전되어 현대의 비디오 게임에서도 매우 중요한 이론으로 알려져있습니다. 먼저, 아곤(Agon), 경쟁 아곤은 놀이의 주체와 객체간의 경쟁을 의미합니다. 사람들은 경쟁에서 승리함으로써 성취감을 얻고, 우월감을 느끼게 합니다. 이 아곤을 현대의 게임에 대입 시켜보면 경쟁은 최근 가장 많이 플레이 하는 게임 중 하나인 ‘배틀 그라운드’나 ‘리그 오브 레전드’같은 게임들도 경쟁에 기반이 되어있고, 혼자 플레이 하는 게임에서도 자기 자신과의 경쟁, AI와의 경쟁 등이 포함되어있습니다. 예를 들어, 슈퍼 마리오 같은 게임에서도 플레이어들은 어떻게 이 게임을 더 빨리 클리어하기 위해 경쟁하고, 더 많은 점수를 받기 위해 노력합니다. 또한 비교적 MMR시스템이 잘 짜여져있는 '리그 오브 레전드'같은 AOS게임에서도 플레이어의 등급을 결정하는 랭크 게임 시스템이 중점적으로 돌아가고 있고, '오버워치'의 경쟁전 등 많은 게임에서 이런 경쟁을 유도하는 시스템을 만들어 놓았습니다. 게임을 계속 플레이하게 만드는 가장 큰 요소가 아곤입니다. 많은 게임에서 플레이어의 경쟁을 어떻게 잘 이끌어 나갔느냐에 따라서 그 게임의 성공이 나뉠 수도 있습니다. 미미크리(Mimicry), 역할 미미크리는 역할을 의미합니다. 사람들은 실제 세계에서 하지 못하는 일들을 놀이에서 느끼면서 큰 기쁨을 느낄 수 있습니다. 이 역할은 롤플레...

Python FastAPI 알아보고 설치하고 초기 설정 해보기

  Python FastAPI, 설치하고 초기 설정 해보기 Permalink 파이썬 웹 서버를 만들어야 하는 일이 생겼늗데, 최대한 빠르고 안정적인 서버를 선택 해야했다. 그래서 기존에 사용하던 Flask보다 훨씬 빠르다고 하는 FastAP를 사용해보기로 했다. ❓ FastAPI란? Permalink 👉 FastAPI 공식 한국어 페이지  https://fastapi.tiangolo.com/ko/ FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크입니다. FastAPI는 파이썬에서 사용 가능한 웹 프레임워크 중 하나인데, Flask나 Django보가 훨씬 빠른 속도를 보여준다고 하고, 확인 해봐야 하겠지만 Go언어와도 비슷한 속도를 보여준다고 한다. 또, 쉽고 간결한 코드, 200% ~ 300% 까지 증가하는 개발 속도를 기대할 수 있다고 하는데, 시작 해보자! 👏 Permalink FastAPI 설치 Permalink 먼저 공식 사이트에선 pip를 이용해 설치 하라고 나와있는데, 나는 anaconda를 이용해서 설치를 했다. bash $ pip install fastapi anaconda 사용 시 $ conda install fastapi 그리고 ASGI서버도 필요해서 같이 설치하라고 하는데, Univorn을 설치 해보자. bash $ pip install uvicorn[standard] anaconda 사용 시 $ conda install uvicorn FastAPI 예제 Permalink 설치가 완료되면 이렇게 vscode에서 FastAPI() 클래스가 자동 완성 되는걸 확인할 수 있다. 그리고 정말 간단히 API를 만들 수 있는데, main.py 파일을 만든 후에 from typing import Optional from fastapi import FastAPI app = FastAPI () @ app . get ( "/"...

게임의 수학, 스탯과 대미지 계산 시스템을 효과적으로 재미있게 만드는 방법

대부분의 게임들은 스탯이라는 시스템을 가지고 있습니다. 이 스탯이라는 시스템은 대부분의 게임에서 캐릭터가 레벨업을 하거나, 스탯을 추가 시켜주는 아이템을 장착하거나, 스킬을 사용해서 올릴 수 있게 되어 있습니다. 하지만 많은 플레이어들은 이런 스탯을 그저 숫자 쪼가리 이상에 의미를 두려고 하지 않습니다. 그저 자신의 직업에 필요한 스탯의 숫자가 크면 좋다고 느끼는 것입니다. 예를 들어, 메이플 스토리의 스탯은 아예 자동 배분이라는 시스템을 도입하여, 대부분의 플레이어들이 같은 스탯으로 배분되게 되어, 스탯을 찍는다는 행위 자체가 없어졌습니다. 또한, 코어 플레이어가 아닌 일반적인 유저들은 자신의 스탯이 얼마인지, 어떤 방식으로 대미지 계산이 들어가는 지 모르고, 알려고 하지도 않습니다. 이는 메이플 스토리의 스탯과 대미지 계산 시스템이 지나치게 복잡해졌기 때문입니다. 이것은 메이플 스토리의 스트라이커라는 직업이 레벨 10에 배울 수 있는 매우 초반에 활용되는 스킬입니다. 하지만 그럼에도 '90초 동안', '1%확률', '30초 동안', '방어력을 1% 무시', '뇌전 버프', '최대 1회 누적 가능' 이라는 많은 효과와 조건들이 붙어 있습니다. 메이플 스토리의 대미지 계산식을 분석한 한 유저가 적은 대미지 계산식은 아래와 같습니다. 대 미지 = [ (주스탯 * 4 + 부스탯) * 총 공격력 * 무기상수 * 직업보정상수 / 100 ] * (스킬 퍼뎀 / 100) * (크리티컬 발동시) 크리티컬  대 미지 보정 * [ (100 + 공격력%) / 100 ] * [ (100 +  대 미지% + 보공%) / 100 ] * 방어율 무시 보정 * 렙차 보정 * 속성 보정 * (아케인포스 필요 적의 경우) 아케인포스 보정 * 숙련도 보정 * [ (모든 최종 대 미지 계산값% + 100) / 100 ]      (1.1) ...