[기획] 로블록스로 게임 만들기(2) 도구는 빌리고 출시는 직접 Go

기획기사 | 윤서호 기자 | 댓글: 2개 |



프로그래밍을 모르는 사람들이 게임을 만들 때 겪는 난관을 크게 꼽자면, 1) 애셋을 만들었는데 어떻게 움직이게 만들지 2) 게임 내 데이터를 어떻게 UI와 연결할지 3) 게임 승리 조건 및 패배 조건 이후 다시 게임을 구동하거나 끄는 일련의 로직을 어떻게 설계할지 등이 있을 겁니다. 그 외에도 여러 로직 관련해서 "어떤 식으로" 말해줘야 기계들이 알아먹는지 곤란한 경우가 너무도 많죠.

일단은 아무 것도 모르는 상태라면 1번 문항부터 애로사항이 꽃핍니다. 엔진으로 게임을 만들 수 있다고 해서 다운로드 받고 이것저것 만들었는데, 그걸 어떻게 움직이게 하려면 일일이 그 조건을 자기가 입력해줘야 하기 때문이죠. "내가 공 하나 움직이는 것도 못할 줄이야"라는 자괴감이 슬슬 꽃피기 시작합니다.



▲ 이걸 아예 맨땅에서 처음부터 만들 생각을 하면 사실 골때리지만, 로블록스에선 식은 죽 먹기입니다

이미 전편에서 말씀드렸습니다만, 로블록스는 그나마 플레이어 캐릭터에 대한 설정은 디폴트로 다 갖춰져 있습니다. 더군다나 다른 개체들도 도구 상자만 훑어봐도 다른 유저들이 이것저것 미리 만들어둔 것이 있으니, 마치 블록놀이처럼 그걸 갖고 와서 조립하면 첫 난관은 어느 정도 해결이 되죠.

그렇기 때문에 처음엔 단순히 런 게임, 장애물 피하기로 끝내려다가 욕심이 스멀스멀 생겨나기 시작했습니다. 지형지물 만드는 것도 생각보다 간단한 데다가 어지간한 오브젝트는 도구 상자에서 바로 구해올 수 있으니, 잘만 활용하면 슈터를 곁들인 스피드런 게임식으로 바꿀 수 있지 않을까 싶었던 거죠. 아직 난관이 다 해결된 것도 아니지만, 나머지 문제는 결국 프로그래밍이나 엔진 구조를 어느 정도는 알아야 하는 문제다보니 일단은 모양새부터 갖추는 것에 집중해봤습니다.

■ 로블록스 게임개발 관련 기사
[기획] 로블록스로 게임 만들기(1) 천 리 길도 점프 게임부터



■ 지형과 플레이어 세팅만으로도 느낌이 바뀐다




소싯적에 스타크래프트나 워크래프트 유즈맵을 만져봤다면 팔레트로 지형을 이리저리 만드는 작업을 해봤을 겁니다. 기본 상용 엔진에서는 툴이나 패키지를 별도로 다운받아야 지원하는 기능이지만, 로블록스에선 이를 지형 편집기로 기본 제공하고 있죠.

처음 템플릿을 자신이 원하는 테마에 맞춰서 골랐다면 지형을 추가 생성할 필요가 딱히 없겠지만, 만일 베이스플레이트가 없다고 해서 지형을 못 만드는 건 아닙니다. 지형편집기의 만들기-생성창에서 지형을 만들 위치와 크기, 테마에 맞는 재질을 설정할 수 있으니까요. 그렇게 해서 자동으로 만들어지는 지형이 마음에 들지 않는다면 편집-추가로 블록 단위로 지형을 만들어서 하나하나 다듬어가는 것도 방법입니다. 개체 관련 메뉴는 아직 일부 한국어가 지원이 안 되고 있지만, 지형 관련 메뉴는 한국어를 지원하기 때문에 알아보기도 편하죠.



▲ 히힛 화산 만들기 쉽구만



▲ ??? 왜 안 죽음???



▲ 이럴 땐 도라에몽...이 아니라 도구 상자를 보죠



▲ 모델을 갖고 와서 적용하면 즉효, 지형지물 편집보다 훨씬 쉽습니다. 모양새 만들기만 귀찮을 뿐

지형을 만들다보면 테마에 맞춰서 꾸미고 싶어지는데, 그럴 때는 칠하기를 보면 여러 테마에 맞는 기초 지형을 확인할 수 있습니다. 뿐만 아니라 물, 얼음, 용암까지도 갖춰져있죠. 특히 물은 별도 스크립트 없이 유닛들이 들어가면 바로 수영을 하는 상호작용이나 물결이 치는 움직임까지 이미 구현이 된 상태입니다. 얼음과 용암은 지형으로 만들면 일반적으로 기대하는 효과는 볼 수 없죠. 워크스페이스상에 지형은 그냥 하나로 묶여있는 걸 볼 때, 원래 주어진 지형 특성을 편집하는 건 상당히 어렵습니다. 그보단 얼음을 밟으면 미끄러진다거나 용암을 밟으면 죽는다는 효과는 모델을 따로 받아서 그걸 지형과 잘 섞어서 배치하는 게 나아보였죠.

지형을 높이거나 낮추거나, 다듬고 평탄화한 뒤에 컨셉에 맞는 지형으로 칠하고 중간중간 물을 섞는 등 재량대로 작업을 마치면 대강 그럴듯한 필드가 완성이 됩니다. 그렇지만 테스트를 하면 여전히 마음에 안 드는 것 투성이죠. 특히 플레이어 캐릭터가 특정 지형에 못 올라가게 하고 싶은데, 생각보다 이 캐릭터가 여기저기 잘 올라다닙니다. "이 경사면 못 올라가겠지?" 싶은 깎아지른 절벽도 점프만 계속 누르다보면 잘도 폴짝폴짝 올라가니까요.



▲ 아니 이 가파른 각도를 이렇게 잘 올라온다고?

지형지물로 바꾸는 건 아무래도 한계가 있으니, 플레이어도 좀 손을 건드려봐야 합니다. 그런데 처음에 살펴보면, 플레이어에 관련된 설정은 보이지 않습니다. 게임 내 일반적인 정보는 보통 워크스페이스에 다 저장되어있을 텐데, 플레이어는 플레이 테스트할 때만 워크스페이스에 등장하죠.

로블록스에서 플레이어 데이터는 워크스페이스가 아닌 'StarterPlayer' 폴더에서 읽어오는 방식입니다. 열어보면 아무 것도 없긴 한데, 거기에 스크립트를 추가해서 플레이어의 세팅을 일괄적으로 바꿔줄 수 있죠. 스크립트 말고 테스트 중에 플레이어 캐릭터를 골라서 데이터를 바꿔주는 방법도 있지만, 그건 그 캐릭터의 설정만 바꿀 수 있고 나머지 다른 플레이어 캐릭터의 설정은 못 바꿉니다. 처음 시작부터 동등하게 하고 싶다면, 스크립트를 넣어줘야 하죠.

local humanoid = script.Parent.Humanoid
humanoid.WalkSpeed = 32 -- 이동 속도
humanoid.JumpPower = 50 -- 점프력
humanoid.MaxHealth = 100 -- 최대 체력
humanoid.Health = 100 -- 현재 체력
humanoid.MaxSlopeAngle = 40 -- 이동 가능한 경사각

애니메이션을 넣거나 그런 디테일한 작업 없이, 그냥 캐릭터의 이동속도나 체력, 점프력, 그리고 올라갈 수 있는 경사를 손보려면 이 정도 스크립트만 따로 작성해서 StarterPlayer-StarterCharacterScripts에 넣어으면 됩니다.

저기 대입한 수치는 제 게임을 위해서 임시로 설정한 수치로, 기본 설정보다 이동속도만 두 배로 높이고 경사각은 절반 정도로 낮췄습니다. 기본 설정이 너무 느려서 답답한 데다가, 지형을 어떻게 편집하다보니 너무 방대해져서 그걸 돌아다니려면 좀 빨라질 필요가 있었죠. 일부 지형지물은 못 건너게 하고 싶은데 기본 설정으론 이곳저곳 잘 올라타서 벽과 절벽을 깎아지르게 만드는 것만으론 한계가 있었고요.

좀 더 파고들면 스크립트에 함수를 더 넣고 애니메이터를 거기에 맞춰서 넣어서 기본적으로 지원하지 않는 동작까지 새로 만들 수 있긴 합니다. 기본으로 점프 및 달리기, 감정 표현, 총을 들고 쏘는 그런 액션까지 구현되어있지만 그것만으로 불충분하다면 이를 시도해볼 수 있겠죠. 하지만 그 이후부터는 스크립트의 함수 구조와 애니메이터, 조건문 같은 걸 기반으로 깔고 가야 하기 때문에 골치가 아파지죠. 더 정교하게 하고 싶다면 래그돌 애니메이션에 대한 지식도 필요할 테고요.

▲ 위 스크립트를 StarterPlayer-StarterCharacterScripts에 넣은 결과.gfycat



■ 어려울 땐 도구 상자에서 꺼내 뜯어보자




무엇이든 그렇게 각잡고 만들어야만 했다면 로블록스가 이렇게까지 쭉 폭발적인 반응을 얻지 못했을 겁니다. 진구가 어려울 때 도라에몽이 4차원 주머니에서 무언가 꺼내주듯이, 로블록스에서는 도구 상자에서 해결책이 종종 튀어나오건 하니까요.

벽이나 집, 송전탑 이런 것도 일일이 파츠를 만들지 도구 상자에서 검색하면 어지간한 건 다 구할 수 있습니다. 다만 검색 기능은 아직 한국어를 완벽히 지원하지 않고 한국어명으로 기록된 모델 수도 적다보니, 검색은 영어로 하길 권장합니다. 그리고 도구에 마우스를 갖다대면 하단에 평가가 바 형태로 나와있는데, 빨간색 비중이 높은 건 아무래도 불안하니 지양하는 편이 좋습니다. 퀄리티가 떨어진다거나, 심한 경우에는 악성 플러그인과 스크립트가 들어있는 경우도 있기 때문이죠.

아무리 그렇다고 해도 근접 액션을 그럴듯하게 만들려면 좀 시행착오가 필요합니다. 그래서 그쪽은 내버려두고 흔하게 있는 좀비와 총, 트랩, 그리고 텔레포트와 밟으면 죽는 용암 등을 가져왔습니다. 점프 게임에 이어서 좀 흔한 장르이긴 하지만, 좀비 서바이벌 레일 슈터를 만들어 볼 생각이었으니까요.

그 다음 과정은 간단합니다. 도구 상자에서 이것저것 검색해서 갖고 오고, 플레이 테스트를 거치면서 조율해나가는 거죠. 크기 조절이나 이런 단순한 건 모델창에서도 바로 적용할 수 있고, 몇몇 스탯은 게임 데이터를 일부 훑어보고서 조절할 수 있기도 합니다. 그게 안 된다면 스크립트를 열어서 확인해봐야겠죠. 정 어렵다면 도구 상자에서 다른 걸 찾아서 이것저것 배치해서 다시 테스트를 하는, 그 과정이 쭉 이어지게 될 겁니다. 마치 맞는 블록을 찾아서 상자를 뒤지듯이 말이죠.



▲ 이런 걸 다 일일이 만들지 않았습니다. 도구 상자에서 가져왔죠



▲ 물론 정상 작동하나 테스트는 해봐야 합니다



■ 미완성이어도 같이 즐겨보세, 공개 게임 만들기



▲ 아직 개발 중이지만 로블록스에서 플레이해볼 수 있습니다

그렇게 뭔가를 쭉 만들어가는 과정은 사실 일일이 설명하기 지루합니다. 복사 붙여넣기 혹은 브러시질, 스크립트 만들기 혹은 가져오기 이런 반복 노동이 주가 되거든요. 그러다 가끔씩 생각한 것과 달라지면 스크립트 다시 파고들거나 오브젝트를 다른 걸로 갖고 와서 대입해보고 정 안 되면 롤백까지 하는, 말하다보면 좀 트라우마까지 걸릴 법한 그런 과정들도 있습니다.

길게 설명했지만, 요는 만들기를 아무리 좋아하는 애들이라고 해도 중간에 어려워서 나 안 해! 라고 던져버릴 위험이 높다는 거죠. 그래서 로블록스가 인기를 끌었다는 말에 개인적으로 의문이 들기도 했고요. 답은 이미 아시다시피, 로블록스는 엔진이면서 게임 플랫폼이기 때문에 그 안에서 게임을 출시할 수 있습니다. 그것뿐만 아니라 서버도 지원하고, 관련 기술도 이미 엔진 내에서 적용이 된 터라 네트워크 관련 지식이 없어도 기본적인 건 구축이 된 상태죠.

홈 메뉴에 들어가 로블록스에 클라우드 세이브를 하고 게재를 하는 것까지는 쉽지만, 자신이 만들어서 올린 게임을 남들에게도 보여주는 작업은 또 다릅니다. 로블록스 스튜디오가 아니라 로블록스 홈페이지에 들어가서, 자신의 계정에 올라온 게임 설정을 바꿔줘야 하기 때문이죠. 이때 편집 메뉴를 누르면 게임 스튜디오에 들어가서 게임을 편집한다는 뜻으로 알아들으니, 이번에는 '이 플레이스를 구성'이나 '본 게임을 구성'에 들어가서 편집을 해야 합니다.

남들에게 공개해서 같이 즐기고 싶다면 '본 게임을 구성'에 들어가서 베이직 세팅창의 프라이버시를 퍼블릭으로 바꿔주시면 됩니다. 게임에 들어올 수 있는 인원 수를 정하고 싶다면 '이 플레이스를 구성'에 들어가서 '액세스'의 최대 플레이어 수를 조정해주면 되죠. 그 외에 게임을 검색할 때 노출되는 썸네일이나 아이콘은 해당 메뉴에 들어가서 바꿔주면 됩니다.



▲ '본 게임을 구성'에 들어가서 퍼블릭으로 바꿔주면 공개 게임으로 전환됩니다



▲ '이 플레이스를 구성'에서는 최대 접속 가능 인원 외에도



▲ 썸네일, 아이콘 교체 등이 가능하죠

이 정도만 해줘도 친구들과 같이 놀 수 있는 놀이터는 완성이 됩니다. 물론 그게 '게임'으로서 가치가 있냐 없냐는 별개의 문제지만, 오히려 이렇게 미완성 상태일 때 한 번쯤 아는 사람 불러서 테스트를 진행해보는 게 더 낫습니다. 기믹을 자기가 설계해서 모든 걸 아는 상태에서 테스트해보면 못 찾는 문제들을, 아무 것도 모르는 사람이 테스트했을 때 발견하고는 하니까요.

아울러 자신이 이것저것 도구 상자에서 따오고, 혹은 다른 사람이 유튜브에서 강의한 걸 참고해서 만든 것들이 서로 충돌하지 않나도 확인해볼 수 있습니다. 싱글플레이 상황에선 멀쩡하게 의도대로 잘 작동하던 것이 멀티플레이에서는 의도대로 안 될 때도 있으니까요. 저 같은 경우에는 도구 상자에서 따온 좀비가 플레이어를 잘 따라다녀서 문제가 없다고 생각했는데, 따라다니는 우선 순위가 거리개념이 아니라 접속한 순서대로였다는 걸 멀티플레이 테스트에서 알았습니다. 팀 구분을 따로 지었던 것 같은 느낌이 없었는데, 팀이 구분되어있는 걸 보고 그제서야 유튜브대로 따라하다가 팀 구분을 넣었다는 걸 다시 깨달았고요.




▲ 플레이어 간 전투는 의도하지 않았는데...되네요?



▲ 어 왜 피해를 안 받지? 했는데 팀 구분이 되어있는 걸 뒤늦게 알아챈 1인...이래서 QA가 필요합니다



▲ 혼자 테스트하는 게 불가능한 건 아닙니다만 PC가 과로사할 수 있으니 지인에게 부탁합시다

게임 개발 엔진에다가, 플랫폼 그리고 멀티플레이까지 무료로 지원해주는데 그럼 돈은 어디서 벌까? 그리고 그 많은 도구들은 그냥 무료로 풀면 수익은 어떻게 낼까? 또 수익도 안 나는 것에 그렇게 열과 성의를 다해서 만들어서 올리는 사람들이 왜 그렇게 많을까? 이런 의문이 들긴 합니다. 여기에 한 가지 더, 로블록스로 게임을 만들어서 돈을 벌었다는 사람도 있기도 하고요.

물론 그 단계까지 가려면, 로블록스를 좀 여러 가지로 많이 써봐야 할 겁니다. 원체 게임이 많아서 검색이 종종 안 될 정도고, 그래서 개발진이 데브포럼에 검색 엔진 알고리즘 업데이트로 수정하겠다 이런 글이 종종 올라오기도 하니까요. 그런 곳에 게임을 덩그러니 미완성으로 내고 수익을 올려보는 건 어불성설이겠죠. 그런 수준으로 완성해나가는 단계를 일일이 설명하는 건 정말 지리멸렬한 작업이라, 거의 다 완성이 되고 마무리하는 그때에 이야기를 다시 시작해나갈 것 같습니다.

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5