기본 콘텐츠로 건너뛰기

플레이어가 움직일때만 시간이 흐르는 액션 FPS 'SUPERHOT'

    목차
SUPERHOT

2016. 2. 25
PC, mac OS, XBOX ONE, PS4

SUPERHOT team제작
Unity Engine



'SUPERHOT'은 겉으로 보면 특이한 그래픽을 가진 평범한 FPS게임처럼 보입니다.
하지만 'SUPERHOT'의 가장 큰 특징이자 이 게임의 중심 기믹은 '플레이어가 움직일 때만 시간이 흐른다'는 것입니다.

이런 특이한 점을 이용해 적의 총알을 피하고 자르면서 적을 무찌르고 스테이지를 클리어해 나가는것이 이 게임의 목적입니다.
앞서 말한듯이 이 게임의 외형은 평범한 FPS게임이지만 하나의 특이한 기믹을 이용해 정말 특이하고 독창적인 게임이 만들어졌습니다.

정말 간단한 조작으로 마치 '마블 시네마틱 유니버스'의 '퀵실버'가 된듯한 움직임을 느낄 수가 있습니다.


이 게임도 이런 특이한 액션과 타격감, 그에 따른 성취감을 잘 활용하여 각 스테이지 끝날때 리플레이를 보여준다던가, BGM을 잘 어울리고 절제해 그 액션의 묘미를 잘 살렸습니다.
또한 주먹, 권총, 산탄총, 일본도 등 개성있고 적지않은 종류의 무기를 상황에 따라 잘 활용하고 멋있는 연출이 생겼을 때 느껴지는 느낌은 다른 게임에서는 찾아볼 수 없습니다.

'SUPERHOT'의 레벨 디자인 또한 잘 만들어져있습니다. 처음엔 쉽고 튜토리얼이라는 느낌을 받을 수 있게 만들어졌고, 뒤로 갈수록 나타나는 스토리 떡밥과 올라가는 난이도는 정말 자연스러웠습니다.
특이한 흰색의 배경과 빨간 적들 또한 이 게임에 잘 어우러졌기도 했습니다.
'SUPERHOT'게임 플레이 장면


'SUPERHOT'은 알파때부터 기대해왔던 평론가들에게 실망을 주지 않고 좋은 평가를 받았고, 'STEAM'에서도 매우 긍정적이라는 평가를 받고 있습니다.

'SUPERHOT'의 단점은 가격대비 적은 볼륨으로, 약 2시간 내외로 스토리는 끝낼 수 있습니다.
하지만 엔딩을 본 후에도 던지기나 주먹만 사용 가능한 THROWING 챌린지나 일본도만 사용 가능한 KATANAONLY챌린지 등 다양한 챌린지 모드가 존재하니 엔딩을 본 후에도 많은 플레이를 즐길 수 있습니다.

또한 2017년 말에는 스탠드 얼론인 Mind Control Delete가 DLC로 출시되기도 했으니, 적은 볼륨은 어느정도 줄어들었습니다.


'SUPERHOT'은 정말 독창적이고 완성도 높은 퍼즐 액션 FPS게임입니다. 인디 게임 치고는 비싼 가격이지만, 게임을 플레이 할 때의 기분은 어떤 게임보다 새로운 느낌을 줄 것입니다.


댓글

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

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

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

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

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

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 : ...