출처: 스팀

 

최근 좀보이드가 재유행하면서 지인들과 함께 간단히? 80시간정도 플레이 했던 경험을 적어볼까 한다. 일반적인 플레이에 대한 설명이나 팁은 제외하고 감상 위주의 내용으로 구성해보았다.

| 좀보이드? 10년간 얼리억세스!

프로젝트 좀보이드는 2012년도 출시하여 10년째 얼리억세스 상태로 개발을 지속하고 있다. 장기 얼리억세스 게임이 하나, 둘 늘어가고 있지만 살아있는 전설들과도 어깨를 나란히 하는 게임이다.​ (고인물 옆에, 썩은 물. 그 옆에 독극물 같은 느낌)

 

​Lo-Fi Games사가 Kenshi를 6년간 개발한 뒤 2013년 3월 얼리억세스 시작 - 2018년 12월 정식 출시
​Wube Software사가 Factorio를 2007년도부터 개발을 시작, 2016년 2월 얼리억세스 시작 - 2020년 8월 정식 출시

 

장기 개발 중인 동시에 얼리억세스 특성상 서비스 중인 게임이다보니 큰 업데이트 내용이 있거나, 스트리밍 방송 등의 이유로 화제가 될때마다 계절성 독감 유행 처럼 유행 반복되고 있다.

 
 

멀티플레이가 공식적으로 업데이트 되기 전까진 싱글 플레이 게임에 가까웠다. 멀티플레이가 비공식적으로나마 지원하긴 했었지만, 설정 과정이 너무나 복잡했고 디싱크와 각종 버그 등이 존재했고 게임을 즐기기엔 불안정한 상태였다. (후술할 빌드 41에서 해당 이슈가 해결되었다.)

 

| 강산이 변하도록 깍고 또 깍은 디테일, 62가지 TMI

사실 이 리뷰를 쓰기로 마음 먹은 것도 게임을 꽉 채운 현실적인 디테일들 하나로 봐도 무방하다. 플레이 하면서 발견하는 기믹들을 감탄의 연속이고, 어디까지 구현했는지 왜 얼리억세스를 10년째 하고 있는지 고개를 끄덕이게 된다.

 

아마 아직 좀보이드를 플레이 해보지 않았다면, 아래 내용을 읽는 것만으로 흥미가 생길거라 장담한다.

(후술할 내용은 바닐라만의 내용이 아닌, 모드의 내용이 포함되어 있습니다)

 

음식

* 오븐의 잔열로 요리 가능하다. (가열된 조리도구에서 조리가 가능하듯)

* 오븐을 오래 켜놓으면 불 붙는다.

* 금속냄비 전자레인지에 넣으면 불이 날 확률 있다.

* 모든 음식에 칼로리가 있고, 영양성분이 있다. (과체중/저체중/영양실조 등의 상태 존재)

* 낚은 물고기의 크기에 따라, 열량과 배고픔 감소 수치가 다르다.​

* 같은 음식도 전자레인지 조리시, 지루함 수치가 높아진다.

* 탄수화물 / 지방 / 단백질 영양 밸런스를 맞추지 않으면 패널티가 존재한다.​

상태

* 체온에 따라 혈관이 확장/수착하여 출혈 속도에 영향을 끼친다.

* 담배 피는 중에 외치기 불가능하다.

* 추운 날씨에 노출되면 추위를 느끼고 감기에 걸리기도 한다.

* 배고프거나 피곤한 상태일 때, 냉기저항이 크게 감소한다.

* 운동 후 근육통이 있다.

* 부상으로 인해 통증이 있는 경우 잠에 들지 못한다. (통증약을 먹은 뒤 잠에 들 수 있다.)​

* 캐릭터 생성 시에 [골초] 특성을 넣으면 일정 시간 흡연을 하지 않으면 금단증상이 있다.

* [골초] 특성을 가진채로, 담배를 오랜기간 피지 않으면 [골초] 특성이 사라짐​

* 시체가 즐비한 곳에 오래 머무르면 [메스꺼움] 디버프가 걸림 (삽으로 땅을 파서, 시체를 매장할 수 있다)

* 깨진 창문의 유리조각을 치우지 않고, 넘으면 상처가 생긴다.

* 유리창 반대편에서 좀비가 유리를 깨면, 유리 파편에 상처를 받을 수 있다.

* 상체에 붕대를 감는 중에는 이동할 수 있지만, 하체에 붕대를 감는 중엔 이동 불가능하다.

* 하체를 부상당할 경우 절뚝거리고, 상체를 부상당할 경우 무기를 휘두르는 속도와 위력이 약해진다.

코스튬

* 옷 겹에 따라 안에서부터 땀차서 축축해지고 비오면 반대로 바깥부터 축축해진다.

* 옷이 지저분한 상태에서 공격받으면 상처 감염될 확률 높다.

* 모든 옷에 [내열] / [내풍] / [방수성] 수치가 부여된다.

* 아무리 내열 수치를 올린상태에서도 하의를 다 벗는 식으로 하면 추위를 느낀다.​

* 모닥불 옆에 있으면 [젖음] 수치가 빠르게 줄어든다.

* 수건이나 행주 같은 걸로 젖은 걸 닦아낼 수 있다. (수건의 능력에 따라 가령, 작은 천은 적게 닦이는 식)​

탈것

* 자전거 충돌 시, 축이 한쪽으로 기울어질 수 있다.

* 차량 브레이크를 제거하기 위해서는 바퀴를 빼고, 서스펜션을 빼야 브레이크 제거 가능하다. (자전거 또한 조립에 순서가 있다.)

* 도로에 시체가 쌓이면 차가 덜컹거리고 심한 경우 뒤집어지기도 한다.

* [비] / [눈]이 오면 바퀴 [접지력]이 약해진다.

* 차종에 따라 접지되는 느낌이 다르다.

* 차량마다 출력이 달라서 공차중량과 총중량에 따라 실출력이 달라진다.

* 크루즈 컨트롤이 구현되어 있다.

* 머플러와 엔진 상태에 따라 차가 내는 소리가 다르다.

* 차량 유리를 깨고 잠금장치를 해제하면, 해당 잠금잠치를 제외한 나머지 문은 잠금된 상태로 유지된다.

* 안전벨트를 매지않으면, 차량 충돌 시 날아갈 수 있다.

도구

* 휴지로 입을 막아, 기침 소리를 줄일 수 있다.

* 지도에 마킹을 하려면 [펜]이 필요하고 지우려면 [지우개]가 필요하다.

* 위와 같이 용도별로 필요한 도구들이 있다. (망치, 톱, 드라이버 등등)​

 

환경

* 빗물을 받을 수 있고, 씻을 수 있다.​

* 소리가 실외와 실내가 확산하는 정도가 다르다. (예) 총소리)

* 창문 개폐 상태에 따라 차량 실내온도가 달라짐 (여름 실외에 주차 중, 겨울 운전 중 등등)

* 발전기 실내에 설치 시, 유독가스로 인해 질식사

농사

* 화분에 물을 오랜기간 주지 않으면 식물이 말라버린다.

* 농약을 뿌리는데엔 [원예용 분무기]가 필수로 필요하다.​

* 작물에 [최소] 수분량과 [최대] 수분량이 존재한다. (최대 수분량 이상 물을 줄 경우 상태가 나빠진다.)

* 작물마다 특성이 뚜렷하다. 가령 토마토는 재배기간이 길고, 섭취효과가 낮지만 보존기간이 길다.

좀비

* 감기가 걸린 경우, 캐릭터가 기침을 하게 되는데 기침 소리를 듣고 좀비가 쫓아온다. (피가 많이 묻으면 피 냄새를 맡고 쫓아오는 기능도 있는데, 버그로 동작하진 않는다.)​

* 좀비 머리 타격 시 검상이 표현됨된다.

전투

* 피격시 충격으로 착용 중인 헤드셋이나, 하이바가 떨어질 수 있다.

* 총기류나 도검류로 좀비 처치 시, 옷이 해진다. (반면 둔기류로 좀비 처치 시, 깨끗한 상태의 옷을 얻을 수 있다)​​

치료

​* 골절상에 부목을 대면, 회복속도가 빨라진다. (머리나 상체엔 불가)​

* 내장피해가 존재한다.

* [붕대]나 [천]은 재사용이 가능하지만, [반창고]는 1회용​이다.

* 대신 [붕대]는 무겁고, [반창고]는 가벼운 대신 지속시간이 짧다.

기타​

* 등 뒤, 벽 너머 등 시야가 사실적으로 표현된다.

* 인게임 비디오 중 개블린이라는 공포영화를 보면 공포심이랑 스트레스 지수 상승한다.​

* 서부극 영화 비디오 시청 시, [조준] / [재장전] 능력의 경험치를 획득 가능​하다.

* 직업 [퇴역군인]으로 캐릭터를 생성하면 평상시에는 긴장을 느끼지 않지만 자다가 [공황] 상태로 깨버리는 경우가 있다. (PTSD)

* 캐릭터가 상황에따라 숨소리를 다르게 낸다.​

* 야간에 총기격발 시, 총구에서 불빛이 번쩍거린다.

* 감염된 채로 사망하게 되는 경우, 좀비로 되살아난 캐릭터를 볼 수 있다.​

업데이트 예정

* 유전자에 따라 가축의 [외형] / [암수]가 갈린다.

* 가축을 우리에서 키우지 않으면 야생동물에게 잡아먹힐 수 있다.

* 계절에 다른 작물 수확기가 생긴다.

* 감자의 경우 씨앗 없이, 심을 수 있다.

| 모드로 완성되어 가는 게임

​사실 위에 나열된 내용 중에는 바닐라 버전의 것도 있고, 모드에서 구현된 것들도 있다. 모드 생태계가 상당히 활성화된 편인데 제작된 모드가 2만개가 넘어가고 있다. 개발자들도 모드에 매우 호의적인데 인기 있는 모드를 소개해주기도 하고, 정식 업데이트에 반영되기도 한다. 심지어 로드맵상 개발 예정이었지만 아직 미구현된 기능까지 모드로 구현되었다. (심지어 모드 제작자도 디테일 변태임에 틀림이 없는게 폭스바겐의 비틀이란 차량은 트렁크가 전방에 엔진룸은 후방에 있는데 게임내에 구현되어 있다.)

 

 

 

| 핵심 재미요소

좀보이드의 주로 언급되는 특징들로는 뛰어난 현실성, 자원의 유한성과 휘발성, 생존 특화 전략 등등이 있지만 필자가 언급하고 싶은 건 따로 있다.

 

놀이의 4요소 중에 미미크리란 요소가 있다. 간단히 설명하면 일종의 모방이다.

​엄격한 규칙 없이 역할을 부여하고 나와는 다른 인격을 부여하는 것을 말한다.​

(쉬운 예를 들자면, 소꿉놀이와 연극을 들 수 있다)

좀보이드를 한마디로 정리하자면 미미크리 그 자체다. 유투브에 좀보이드를 ​ 검색해보면 역할과 상황을 설정해놓고 거기에 몰입해 플레이한 영상들이 많다. 이는 여타 게임과는 다르게 목적성이 뚜렷하지 않고, 자유로운 플레이 스타일을 가진 좀보이드 특성때문이라고 생각한다.

이외에도 각종 이스터에그와 오마주와 패러디, 특수 인카운터 등이 재미를 더한다.

| 총평

사실 필자는 좀보이드를 여러번 플레이 한 경험이 있지만, 이번 플레이를 제외하곤 한번도 재미를 느껴본 적이 없었다. 긴 설정 과정, 모드 선택의 난해함, 어려운 난이도, 모호한 목표 등으로 재미를 느끼기 전에 몰입을 깨졌기 때문이다. 호평일색인 현실적인 디테일도 게임플레이와는 무관해 보였고, 어딘가 미구현된 상태로 보이기도 했다. 좀보이드가 왜 인기가 많은지, 게임이 완성되기는 할까 의구심조차 들기도 했다.

 

하지만 21년 12월 빌드 41 업데이트로 상황이 180도 달라졌다. 우선 멀티플레이가 정식으로 지원하게 되었고, 출시 이후 가장 방대한 양과 완성도와 몰입감 측면의 질을 높힌 업데이트라 평을 받고 있다.

 

또 대형 스트리머 사이에서 게임이 유행이 큰 역할을 했다. '대구 모드에서 한달 살기'와 같이 방송 중 미션/베팅으로 흥미를 돋구었고, 스트리머의 플레이를 비슷하게 플레이 하는 식으로 일반 게이머들도 플레이를 하게 되었다. 좀보이드는 기본적으로 '뭘 해야할지' 게임에서 제시하지 않기 때문에 스트리머들의 플레이가 어느정도 길라잡이가 되었고, 부족한 인게임 튜토리얼을 대신했다.

 

덕분에 동시접속자 6만명 가량을 갱신하며, 모드들의 업데이트도 활발해지고 추후 기대되는 로드맵 내용도 있어, 잠재력이 더 기대되는 게임이다.

 

위 내용으로 흥미가 생겼다면, 한번 플레이 해보길 추천한다.

반응형

 

| 개요

젠킨스를 사용하다 보면 원격으로 빌드를 유발이 필요한 경우가 생기는데, 다행히도 해당 기능을 제공하고 있다.

원격 빌드를 유발하는 방법에 대해 간단히 서술하고자 한다.

 

| JOB 설정

우선 원격 빌드를 유발할 잡 설정(Configure)으로 들어가서 `Build Triggers` 섹션으로 가면 `Trigger builds remotely (e.g., from scripts)` 토글을 켜면 Token을 입력할 수 있다.

 

  • JOB 설정 > 빌드 유발(Build Triggers) > 빌드 원격으로 유발 (Trigger build remotly) > Authentication Token

 

 

| 호출 URL

위에서 설정한 TOKEN은 query string형태로 함께 넘겨주면 되고, paramerter가 있을 경우에도 함께 넘겨 주면 된다. URL 아래와 같다.

// 파라미터가 없는 경우
{JENKINS_URL}/job/{JOB_NAME}/build?token={TOKEN_NAME}

// 파라미터가 있는 경우
{JENKINS_URL}/job/{JOB_NAME}/buildWithParameters?&token={TOKEN}&{KEY1}={VALUE1}&{KEY2}={VALUE2}
 

| API Token 생성 및 설정

보안 설정에 따라서 로그인 인증이 필요한 경우가 있다. 로그인 인증을 위해선 우선 API Token 발급이 필요하다.

 

※로그인 인증 과정을 생략해주는 플러그인도 있다.

 

  • People > {USER_ID} > Configure > API Token 섹션 > Add new Token

({JENKINS_URL}/user/{USER_ID}/configure)

 

이제 발급된 API Token과 함께 URL을 호출해주면 된다.

// 파라미터가 없는 경우
http://{USER_ID}:{API_TOKEN}@{JENKINS_URL}/job/{JOB_NAME}/build?token={TOKEN_NAME}

// 파라미터가 있는 경우
http://{USER_ID}:{API_TOKEN}@{JENKINS_URL}/job/{JOB_NAME}/buildWithParameters?&token={TOKEN}&{KEY1}={VALUE1}&{KEY2}={VALUE2}
 

| 참고

  • https://wiki.jenkins.io/display/JENKINS/Remote+access+API

 

 

반응형

| 개요

 

젠킨스에선 프로젝트를 주기적으로 실행할 수 있는 기능을 제공한다.
(리눅스 크론의 그것과 유사)

크론문법과 호환이 되며 간단하게 스케쥴링을 할 수 있고,
Parameterized Scheduler 플러그인을 사용하여 빌드에 인자를 주는 것 또한 가능하다.

하지만, 변경점이 없는 경우에도 지정된 스케쥴에 따라 반복 빌드 되기 때문에
‘지속적인 통합’이라는 관점에서 적합하지 않다.

(젠킨스에서도 SCM(SVN, GIT등)에서 변경점을 폴링하여 빌드가 되도록 구축할 것을 권장한다.)

그럼에도 데일리 빌드와 같은 간단한 작업을 예약하는데 유용하기 때문에
이 기능을 사용할 것이며, 이에 사용법에 대해 설명하려고 한다.

 

| 설정방법

1. 프로젝트 구성

  • 프로젝트 > 설정
  • [Build Triggers]에서 Build periodically with parameters 선택
  • Schedule란에 주기 설정

 

2. 주기 설정 방법

각각 5개(분, 시간, 일, 월, 요일)의 주기를 지정하고
사이사이 공백이나 탭을 두어 구분하여 구성하면 된다.

 

예) 45 9 * * 1-5

 

  • 분 시간 일 월 요일 순서
  • 분 (0-59), 시간 (0-23), 일 (1-31), 월 (1-12), 요일 (0-7)
  • 와일드 카드는 * 로 지정
  • N-N2: N과 N2사이의 범위를 지정
  • N-N2/X 혹은 */X: X의 간격을 지정 (X마다)
  • N,N1,N2…NM: 여러개의 값을 지정
  • 월요일: 1 ~ 토요일: 6, 0 또는 7: 일요일
주기를 설정할 경우 'H' 심볼 사용을 권장하는데, 이는 빌드가 고루 분산되어 실행되는 효과를 얻을 수 있다.
즉 젠킨스가 리소스나 부하의 정도에 따라 시간을 결정한다.

 

| 예제

1. 간격 시간 지정

# 매 30분 마다 실행
H/30 * * * *

# 매일 오전 9시, 오후 7시 실행
* 9,12 * * *

2. 특정 시간 지정

# 금요일 오후 7시 마다 실행(주중 결산)
H 19 * * 5

# 주중(월-금) 오전 8시 마다 실행
H 8 * * 1-5

3. 파라미터 지정

# 월-금, 오전 10시부터 오후 6시 중 매 2시간 마다 실행
H 10-18/2 * * 1-5 %PARAM_NAME1=PARAM1;PARAM_NAME2=PARAM2

# 예시
H 10-18/2 * * 1-5 %APP_VERSION=1.5.7;ASSET_BUNDLE_BUILD=true

4. 기타 예제

# 매 15분 마다
H/15 * * * *

# 매 시간 0 ~ 30분 사이의 10분 마다
H(0-29)/10 * * * *

# 매주 평일 오전 9시 45분 ~ 오후 3시 45분 사이의 매 2시간 마다
45 9-16/2 * * 1-5

# 매주 평일 오전 8시 ~ 오후 4시 사이 2시간 마다 1번
H H(8-15)/2 * * 1-5

# 12월을 제외한 매달 1일과 15일마다 1번
H H 1,15 1-11 *

 

반응형

 

버튼 이미지

 

으레 찾아오는 고민의 시기를 겪고 있는 요즘.

이 고민을 떨쳐낼 어떤 작은 실마리 약간의 힌트라도 얻을 까 싶어서 집어든 책

저자와 목차조차 읽어보지 않고 구매했었던 책이어서

몇장을 읽어내려간 뒤에야, 국내 1세대 개발자 6명의 저자가 동시 집필한 책인걸 알게 되었다. (그 중에선 아카데미때 교수님으로 계셨던 이른바 '해골책'의 리빙 레전드 김용준 교수님도 계셔서 반가운 마음이 들었다)

결론부터 말하자면 이 책에는 30대에 찾아 온 사춘기를 해결해줄만한 내 맘을 동하게 하는 그 무언가는 없었다. 시작하는 이에게 초점이 맞춰져 있기도 하고, 한분 한분 족적을 남긴 1세대 게임 개발자 6분의 경험과 감정들을 전해 듣기엔 300페이지 남짓한 분량은 충분하지 못했던 거 같다.

우스갯소리 반 진심으로 게임 개발자의 마지막 테크트리는 치킨집 사장님이라던 때가 있었다. 우스움 뒤에 따라오는 씁쓸함은 우리의 끝에 어떤 모습인지 알 수 없었기 때문이다. 그만큼 태동한지 짧은 업계이고, 장기간 필드에서 몸담는 사례가 적었기 때문에 저자 한명 한명의 사례는 정말 소중하지 않을 수 없다.

저자들이 겪었던 다양한 경험들과 서로 다른 길 위에서 어떻게 걸어가고 있는지를 엿볼 수 있는 그것 하나만으로 이 책은 읽을 만하다고 할 수 있겠다.

 

 

반응형

| 문제

빌드에서 아래와 같은 에러와 함께 어드레서블 어셋 로드에 실패하는 경우

 

E/Unity: System.MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.AsyncOperations.ProviderOperation`1[[UnityEngine.AddressableAssets.Initialization.ResourceManagerRuntimeData, Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]

 

| 해결방법

<linker>
    <assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
        <type fullname="UnityEngine.ResourceManagement.ResourceProviders.LegacyResourcesProvider" preserve="all" />
        <type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
        <type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
        <type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
        <type fullname="UnityEngine.ResourceManagement.AsyncOperations" preserve="all" />
    </assembly>
    <assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
        <type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
    </assembly>
	<assembly fullname="UnityEngine">
		<type fullname="UnityEngine.Rigidbody" preserve="all"/>
	</assembly>
</linker>

 

Assets폴더 하위에 link.xml 파일을 생성 위와같이, 어드레서블 내에 정의된 타입들을 정의

 

 

반응형

+ Recent posts