기본 콘텐츠로 건너뛰기

닌텐도가 게임을 제작하는 특별한 방법 (1)

    목차


▲이 글의 대부분은 Game Maker's Toolkit의 Nintendo - Putting Play First 영상에서 인용하였습니다.


게임 제작에 있어서 시작을 어떻게 할 것인지는 굉장히 중요합니다.
어떤 개발사는 게임의 스토리를 먼저 제작하기도 하고, 또 어떤 곳에선 플레이어의 경험, 감정을 중심으로 시작하기도 하며, 기존의 게임에서 어떤 기능들을 추가하면서 시작하기도 합니다.


하지만, 닌텐도의 경우에는 다른 개발사들과는 크게 다른 점이 있습니다.
새로운 마리오 시리즈나 젤다의 전설 등의 게임을 제작할 때 하나의 목표가 있습니다.
바로 게임을 플레이하는 새로운 방법을 만드는 것입니다.


이런 새로운 방법이 그 게임의 사운드, 그래픽, 적과 싸우는 방법 등 모든 것을 결정하게 됩니다.

'미야모토 시게루'의 말에 따르면 "That's how we make games at Nintendo, though: we get the fundamentals solid first, then do as much with that core concept as our time and ambition will allow"
"우리는 먼저 기본적인 부분을 확실하게 만든 다음, 그 핵심 컨셉을 가지고 시간과 야망이 허락하는 최대한으로 개발합니다."
'미야모토 시게루'의 말에서 가장 중요한 것은 'core concept' 즉 핵심 컨셉을 가지고 개발한다는 것 입니다.


닌텐도의 많은 게임들은 메인 캐릭터가 또 어떤 새로운 컨셉과 액션을 어떻게 보여줄지부터 시작합니다.

닌텐도의 가장 유명한 캐릭터인 마리오는 그 예를 가장 잘 보여주고, 최신의 게임에도 많은 부분에서 닌텐도의 개발 철학을 잘 보여주는 캐릭터입니다.

마리오는 오로지 '점프'라는 컨셉을 가지고 만들어진 캐릭터입니다. 그 점프라는 중심적인 컨셉, 기믹을 가지고 다른 오브젝트과 상호작용을 하는 게임을 만드는 것입니다.

점프로 적을 처치하는 방법은 밟는 것이 가장 좋다고 생각했기에 굼바를 밟아서 죽이는 기믹을 만들었습니다. 그 외에도 점프를 해서 아이템을 먹기도 하고, 벽돌을 부수기도 하고, 새로운 길을 만들기도 합니다.

파이어 마리오의 불이 아주 애매한 각도로 발사되는 것도 그러한 이유입니다. 플레이어들이 점프를 해서 쏴 이 점프라는 메인 컨셉을 잘 활용하기를 바란다는 것이죠.


이렇게 중심 컨셉을 가지고 게임을 만들게 되면 플레이어들이 별 다른 튜토리얼 과정 없이 자연스럽고 쉽게 그 게임을 배울 수 있게 되며, 역동적이면서 능동적인 게임 플레이를 보여줄 수 있습니다.


닌텐도의 전략 게임인 피크민 역시 이러한 중심 컨셉이 그 게임을 어떻게 플레이 하는지 만듭니다.
피크민에서는 플레이어가 할 수 있는 것이 피크민들 던지고, 다시 불러들이는 것 뿐입니다. 하지만 그 피크민들의 능력과 다양한 전략으로 플레이어들에게 또 새로운 플레이를 보여줍니다.

슈팅 게임인 스플래툰 또한 플레이어들에게 기존의 TPS, FPS게임과는 달리 '잉크를 쏜다'는 중심 컨셉을 보여주었습니다.
스플래툰에서 플레이어들은 상대 팀보다 맵에 잉크를 많이 뭍히기 위해 노력하면서도 적들을 쓰러트리고 전략을 짜기도 합니다.
'잉크를 발사'한다는 중심 컨셉이 다른 슈팅게임과 어떻게 다른 게임을 만들게 되었는지 알 수 있습니다.

그 외에도 진공 청소기를 이용한다는 컨셉의 루이지 맨션, 물을 발사하는 F.L.U.D.D라는 장치를 가진 슈퍼마리오 션샤인 등 닌텐도의 게임들은 게임마다 중심 컨셉이 존재합니다.


닌텐도는 속편을 개발할 때에도 그저 그래픽과 스토리가 달라진 똑같은 게임을 만들지 않습니다.

F-ZERO의 팬들이 왜 새로운 작품을 만들지 않느냐는 질문에 '미야모토 시게루'는 F-ZERO의 새로운 어떤것을 원하냐고 반문했습니다.
닌텐도는 그저 그래픽만 좋아진 똑같은 작품을 만들지 않는다는 것 입니다.

닌텐도의 슈퍼 마리오 시리즈 중에서도 3D마리오 시리즈는 그것이 더 특별하게 나타납니다.
최초의 3D마리오인 슈퍼 마리오64부터, 앞서 말한 F.L.U.D.D가 등장하는 슈퍼 마리오 션샤인, 우주라는 컨셉을 가진 슈퍼 마리오 갤럭시, 세상을 여행하고 모자를 던진다는 컨셉의 신작인 슈퍼 마리오 오디세이까지 같은 시리즈이지만 작품 하나하나가 모두 개성있는 중심 컨셉을 가졌기 때문에 플레이어들은 항상 새로운 느낌을 가지고, 슈퍼 마리오의 신작을 기다리는 것 입니다.



댓글

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

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

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

FastAPI 실시간 영상 스트리밍 OpenCV

  FastAPI와 OpenCV를 활용한 실시간 영상 스트리밍 Permalink 실시간 영상을 스트리밍 하는 방법을 찾던 중 파이썬 FastAPI를 활용한 방법을 시도 해보았다. 필수 라이브러리 Permalink 필요한 것은 Python3.9버전 (애플 M1칩셋 맥북에어에서 3.8 버전으로 시도 해보니 OpenCV라이브러리 설치에서 문제가 발생했었다) FastAPI uvicorn OpenCV 정도면 될 것 같다. 라이브러리들은 모두 설치 되었다고 가정 하고, 예제 코드 Permalink # main.py # 라이브러리 import # StreamingResponse를 가져와야함 from fastapi import FastAPI from fastapi.responses import StreamingResponse # cv2 모듈 import from cv2 import get_stream_video # FastAPI객체 생성 app = FastAPI () # openCV에서 이미지 불러오는 함수 def video_streaming (): return get_stream_video () # 스트리밍 경로를 /video 경로로 설정. @ app . get ( "/video" ) def main (): # StringResponse함수를 return하고, # 인자로 OpenCV에서 가져온 "바이트"이미지와 type을 명시 return StreamingResponse ( video_streaming (), media_type = "multipart/x-mixed-replace; boundary=frame" ) # cv2.py import cv2 def get_stream_video (): # camera 정의 cam = cv2 . VideoCapture ( 0 ) while True : ...

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 ( "/"...