기본 콘텐츠로 건너뛰기

실패의 위험에서 비롯되는 성취감

    목차
지난 '게임 조작에서의 즐거움'이라는 글을 쓸 때 '툼 레이더'에 대한 이야기를 했었습니다.현대의 툼
레이더와는 달리 과거의 툼 레이더는 조작을 할 때 비교적 어렵고 실패할 가능성이 있었습니다.

저는 툼레이더의 변화가 꼭 필요했다고 생각하지만, 그래도 조작의 변화에 따른 플레이어의 생각과
경험이 달라졌다는 것에 아쉬움이 있습니다.
이 글에는 그 '아쉬움'에 대해 다뤄보려고 합니다.


먼저, 제가 전에 적었던 적이 있는 (Super Mario Bros. 1-1스테이지 레벨 디자인 (1)) 슈퍼 마리오 브라
더스1의 예시입니다.


위의 예시에서도 볼 수 있듯이 첫 번째 계단은 바닥이 있어서 플레이어가 별 생각 없이 넘어가는 경향
이 있습니다.
하지만 두 번째 계단은 바닥이 없기 때문에 실패할 가능성이 있습니다. 하지만 두 번째 계단은 약간 넓
은 발판이 있기 때문에 쉽게 넘을 수 있고, 그에 따른 성취감도 받을 수 있습니다.

닌텐도는 플레이어에게 안전하게 연습을 시킨 후 실패할 가능성이 있는 문제를 만들어서 플레이어에
게 성취감을 주는 시도를 잘 합니다.
이런 닌텐도의 디자인은 플레이어에게 먼저 연습할 기회를 주기 때문에 실패할 가능성이 적어지고 성
취감을 주기에 쉽습니다.

좋은 게임 디자인을 만들기 위해서는 이렇게 플레이어가 알지 못하게 튜토리얼을 주고, 비교적 어렵
고 실패할 가능성이 있는 문제를 배치시켜 성취감을 주는 요소가 필요합니다.


또한 많은 게임에서 차용하고 있는 난이도 시스템이 있습니다. 이 난이도 시스템은 더 어려운 플레이
경험을 만들고, 비교적 좋은 보상을 주는 경우도 있습니다.
하지만 많은 플레이어들은 그 보상보다는 성취감을 찾기 위해 어려운 난이도를 선택하는 경향이 있습
니다.

최근에 나온 레지던트 이블 RE:2같은 어드벤처 게임들에서 특히 드러나는데, 이런 게임들에서 높은
난이도는 장르 특성상 플레이어에게 아무런 보상을 주지 못하지만 플레이어들은 ‘이왕 할거면 어려운
모드로 해야지’라는 마음을 가지면서 높은 난이도를 택합니다.

이런 것이 높은 난이도가 주는 성취감으로, 낮은 난이도 보다는 높은 난이도가 실패할 가능성이 있는,
그 게임의 끝을 보았다고 생각하기 때문입니다.


위의 난이도와 비슷한 예시지만 실패의 위험과 성취감이 가장 잘 드러나는 게임이 '다크 소울'시리즈
입니다.
다크 소울은 매우 어려운 난이도로 사람들에게 알려져 있습니다. 다크 소울을 플레이 한 사람들이 대
부분 말하는 것이 '성취감'입니다.
다크 소울은 보스전을 중심으로 진행해 나가는데, 많은 사람들이 어려운 보스전에 가로막힙니다.
하지만 플레이어들은 곧 그 보스의 패턴과 약점을 알아가고 얼마 지나지 않아 보스를 격파할 수 있습
니다.

다크 소울의 보스전은 플레이어가 실패한 경험이 있고 실패할 가능성이 매우 많습니다. 그렇기 때문
에 플레이어들은 그만큼 큰 재미와 성취감을 느낄 수 있습니다.



플레이어가 성취감을 느끼기 위해서는 이런 실패의 위험이 있는 기믹을 잘 사용해야 합니다.
캐릭터가 특정 행동을 할 때 소모되는 스태미너 시스템같은 한정된 자원을 잘 이용해야 하는 시스템
도 좋습니다.
'젤다의 전설'이나 '다크 소울'에서도 이런 스태미너 시스템을 적극 활용해서 게임을 플레이 할때 더 긴
장감이 생깁니다.

하지만 스태미너 시스템을 잘못 활용한다면 비 전투시에 불필요하게 캐릭터를 조작하는데 불편함이
생길 수 있습니다.
그래서 '몬스터 헌터 : 월드'에서는 비 전투시에는 달리기 등을 할 때 스태미너가 소모되지 않는 등 합
리적인 시스템을 탑재하기도 했습니다.

'I AM ALIVE' 또한 스태미너 시스템을 잘 활용했다.
하지만 플레이어에게 성취감을 주기 위해 어렵고 불편한 조작을 내세우는 것은 플레이어에게 불편함
만 줄 수 있습니다.
'아이 엠 브레드'나 '핸드 시뮬레이터'처럼 그런 불편한 조작을 컨셉으로 잡은 게임들도 있지만  보통의
게임에서 불편한 조작은 '실패의 위험'은 줄 수 있을지도 모르지만 플레이 하는 내내 짜증과 불합리합
만을 느낄 가능성이 있습니다.


이 외에도 AOS게임에서 타겟팅 공격보다 논 타겟팅 공격을 맞출때 성취감이 더 많고, FPS게임에서
저격을 할 때 등 많은 게임에서 이런 성취감을 느낄 수 있습니다.

이런 실패의 가능성들은 게임을 플레이 할 때 더 몰입을 시킬 수 있고, 비교적 재밌다는 느낌을 받을
수 있습니다.
훌륭한 게임들은 실패의 가능성을 많이 열어두고 있고, 플레이어들에게 게임의 성취감을 느끼게 해
줍니다.

댓글

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

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