Roblox Studio

 


1. 개요
2. 템플릿
2.1. Baseplate
2.2. Flat Terrain
2.3. City
2.4. Suburban
2.5. Racing
2.6. Obby
2.7. Western
2.8. Village
2.9. Pirate Island
2.10. Castle
2.11. Line Runner
2.12. Infinite Runner
2.13. Starting Place
2.14. Capture The Flag
2.15. Team/FFA Arena
2.16. Combat
2.17. Create And Destroy
2.18. Galatic Speedway
3. Tool Box
3.1. Model
3.2. Image
3.3. Video
3.4. Mesh
3.5. Audio
4. 문제점
4.1. 버그
4.2. Lua 바이러스
5. 스크립팅
5.1. 기본적인 명령
5.2. 기본적인 상수
5.3. 기본적인 모듈
6. 플러그인
7. 개발 팁


1. 개요


로블록스 개발자 허브(영문)
로블록스 교육 허브(일부 한글화)
로블록스 개발자 포럼(영문)
Roblox 플랫폼의 게임 개발 도구. 여기에서 다운로드받아 설치할 수 있다.
개발 도구 내에서 게임을 개발하며 테스트해 볼 수 있으며, 게임을 발행(Publish)하면 개발한 게임을 다른 친구들과 함께 플레이할 수 있다.
로블록스 교육 허브 사이트에서 개발 관련 자료를 찾아볼 수 있으며, 일부 자료는 한글화되어 있는 걸을 볼 수 있다. 유튜브에서도 "로블록스 스튜디오"로 검색하면 로블록스 개발 관련 영상을 찾아볼 수 있다. 하지만 현재 구할 수 있는 대부분의 개발 자료가 영어로 되어 있으므로 진입장벽은 감안해야 한다.
2021년 1월 패치로, 스튜디오 자체 툴 메뉴 대부분이 한글화되었다. 번역 수준은 매우 깔끔한 편이다.
2021년 2월에 로고가 바뀌었다.


2. 템플릿


스튜디오를 처음 실행하면 가장 먼저 보일 기본적으로 제공되는 맵 템플릿들이다.
Baseplate를 제외한 나머지 맵들은 초보자들을 위한 기초 요소가 들어간 것으로, 사실상 대다수의 Roblox 게임 제작자들은 Baseplate만을 이용한다.

2.1. Baseplate


넓은 회색 블럭 바닥 빼고 아무것도 없는 플레이스다.
초보부터 고수까지 각종 테스트에 이 플레이스를 많이 쓴다.
또한 바닥 블럭을 제외하면 아무것도 없어서 게임 개발에 주로 사용한다.

2.2. Flat Terrain


땅이 Terrain의 잔디 블럭으로 덮여있는, Baseplate의 다른 버전이다. 이 땅은 Terrain 전용 도구로만 편집할 수 있다. 주로 지형을 만들 때 사용한다.

2.3. City


Baseplate에 높은 빌딩 2채와 낮은 빌딩 1채, 도로와 차 한대가 추가된 맵이다.

2.4. Suburban


간단한 마을인데, 플레이 해보면 문여는게 디테일해지거나, 각종 행동이 추가되었다.

2.5. Racing


화산, 사막 지대를 거치는 레이스 길과, 출발/도착지, 체크포인트, 지프 4대가 있는 플레이스. 간단한 레이스가 가능하다.

2.6. Obby


기본적인 점프맵이 만들어져 있고 추가적으로 점프맵을 확장할 수 있다.

2.7. Western


서부시대 테마의 플레이스다. 경찰서, 은행, 기차, 마차 등이 있다.

2.8. Village


작은 집이 몇 채 있는 간단한 마을이다.

2.9. Pirate Island


해적 섬. 해적선과 화산, 작은 집들이 있다.

2.10. Castle


성과 강이 있는 플레이스. 성문 위에 올라가서 성문을 끌어 올릴수도 있다.

2.11. Line Runner


횡스크롤 형식으로 장애물을 피하며 달리는것. 중간중간 코인, 점프대가 있으며 부숴지는 나무판도 있다.

2.12. Infinite Runner


3인칭으로 장애물을 피하며 달리는 게임. 템플런과 상당히 유사하게 만들어져 있다. 조작감이 정말 불완전하니 비추

2.13. Starting Place


집 몇채와 아이템이 들어있는 상자[1], 산이 있는 플레이스. 유저가 새로 가입하면 자동으로 만들어지는 맵이며, 장소가 검열되어 바뀌는 맵이기도 하다. 스튜디오를 처음 하는 사람들을 위한 각종 기초적인 설명이 있다.

2.14. Capture The Flag


간단한 깃발 탈취 게임을 할 수 있다. 깃발을 뺏어 자신의 팀에 갖다놓으면 된다.

2.15. Team/FFA Arena


팀을 나눠 싸우거나 개인전을 즐길수 있도록 스크립팅이 되어있는 플레이스다.

2.16. Combat


맵 중앙에 검, 권총 등이 있다.

2.17. Create And Destroy


Godzilla 이벤트로 인해 생긴 맵이다. 미니게임 종류인데 건물을 많이 부수면 이긴다. 마우스 왼쪽 클릭으로 부수기 가능하다.

2.18. Galatic Speedway


Roblox Creator Challenge 이벤트 때 생긴 맵이다. 맵에는 각종 우주선이 배치되어 있으며 레이스를 할 수 있다. 우주선을 조종할 때 다른 물체에 닿으면 우주선이 터진다.

3. Tool Box


건축에 필요하거나 활동에 필요한 것을 얻을 수 있는 곳.
검색을 하여 필요한 것을 꺼내다 쓸 수 있는데, 다른 유저가 만든거나, ROBLOX가 만든[2] 것도 있다. 그리고 인증된 툴들은 인증 뱃지 표시가 있다. 툴박스에서 사용 가능한 툴은 Models, Images, Meshes, Audio로 분류되어 있다.
인증되지 않은 남이 만든 모델과 저작권에 걸리는 모델[3]은 웬만하면 쓰지말자. 바이러스 위험도 있고 저작권 위반이다.

3.1. Model


여러 오브젝트를 묶어 한 곳에 모은 일종의 폴더이다.
종류 상관없이 작품을 만들 때 사용된 여러 부품을 하나의 Model로 정리할 수 있다. Roblox Studio에서 가장 큰 비중을 차지한다고 볼 수 있으며 이게 없었다면 제작 난이도가 엄청나게 올라갔을 것이다.

3.2. Image


Image는 모델에 씌울 수 있는 사진이나 그림이다. 이미지는 자신이 직접 업로드할 수 있다.
글씨가 작게 적힌 파일을 업로드하면 검열에 걸릴 가능성이 높으니 주의.(크게 적혀있으면 잘 통과한다) 이 외에도 다른사람의 얼굴이 나온 사진, 혐오스러운 사진, 피가 나오거나 잔인한 사진을 올리면 수 분 이내에 경고를 먹게 된다. 이러한 경고를 여러 차례 먹게 될 경우 계정 제재의 원인이 되므로 주의하자.
기존엔 Decals라는 분류였다가 Images로 바뀌었다.

3.3. Video


'''게임 안에서 영상을 볼 수 있게 해주지만''' 사운드는 출력이 안되기에 음악은 별도로 추출해야 하며, 영상의 질이 떨어지고 무엇보다 최적화가 덜 된 상태라서 여러개의 영상을 게임에 넣으면 프레임이 떨어진다.

3.4. Mesh


Mesh는 Blender 등의 3D모델링 프로그램으로 만들어진 파일의 정보를 담은 것으로, 만든 3D 파일을 Mesh를 이용해 Roblox에 불러올 수 있다. MeshPart를 이용해 불러온다. 당연히 단독으로는 작동하지 않는다.
좀 복잡하다 싶은 구조물(주로 총. 특히 현실의 것을 모티브로 한 경우)은 십중팔구 Mesh를 이용한 것이라고 보면 된다.

3.5. Audio


Audio는 적용 가능한 소리 파일이다.
본인이 업로드를 하려면 파일의 길이에 따라 아래에 해당하는 만큼 로벅스를 지불해야 하고, MP3,ogg 의 파일만 가능하다.
0 ~ 10초 : 20 로벅스
10초 ~ 1분 30초 : 35 로벅스
1분 30초 ~ 2분 : 75 로벅스
2분 ~ 7분 : 350 로벅스

4. 문제점



4.1. 버그


자체 엔진을 사용하는 만큼 버그도 많다.
  • 유니온이 안보이거나 유니온 해제가 안될때가 있다. 스튜디오를 재시작하면 다시 보이기도 하는데 재시작 후에도 안보이고 유니온 관련 시스템이 안먹힐 경우에는 복구가 불가능하다. 복구 할 수 있는방법은 참조바람.[4] 복구 원리는 간단하다. 로블록스 스튜디오에서 유니온으로 바꿀 때 유니온 데이터가 자산id로 이동하여 그 데이터가 문서에 그대로 남겨있어서 복구를 할 수 있다.

4.2. Lua 바이러스


일부 유저는 스튜디오로 악성 스크립트를 개발[5]해서 그 스크립트(이하 바이러스)가 심어진 모델을 배포한다.
일반적으로 바이러스는 다음과 같은 경로로 감염된다.
  • 툴박스에서 바이러스가 심어진 악성 모델을 불러온다.
  • 정상 플러그인을 사칭한 악성 플러그인을 설치한다.
  • 팀 크리에이트나 다른 개발자가 있는 그룹 게임에서 다른 사람이 이를 감염시킬 수 있다.
바이러스는 다음과 같은 모델에 자주 들어가있다.
  • 툴박스에서 노란색 인증 뱃지가 달리지 않은 상단의 모델.
    • 예전에는 없었는데 갑자기 툴박스 상단으로 나온 모델들. 봇을 이용한 조작으로 순식간에 인기모델로 상단에 노출되게 한다.
  • 이름이 한 단어 도배로(예시: GIFT GIFT GIFT GIFT GIFT) 이루어진 대부분의 모델.
  • 검색 키워드랑 전혀 관련 없어보이는 뜬금없는 모델. 자전거를 검색했더니 대관람차가 나온다거나.
  • Anti-Exploit, Anty Lag Script 등 핵 방지나 최적화를 해준다는 스크립트라 주장하는 모든 모델. 애초에 그런건 모델로 구현이 불가능하고 플러그인으로 구현해야 한다.
  • 툴박스에서 같은 이름을 가진 동일 모델이 여러개 있는 모델들.
  • 모자 없애는 발판이나 속도 발판, 자판기, 총 지급 장치, 아이템 지급기[6] 등 많은 사람이 사용하는 모델의 복제품들. 비슷한게 널려서 구별도 쉽지 않다.
  • 표지판이나 의자같은 단순한 물건에 스크립트가 덕지덕지 붙어있는 경우.
다음과 같이 행동하면 게임에 바이러스가 창궐하는 걸 예방할수 있다.
  • 툴박스에서 노란색 인증 뱃지가 붙은 모델만을 불러온다.
  • 툴박스를 건드리지 않고 혼자서 모델과 스크립트를 전부 직접 만든다.
    • 툴박스에선 이미지나 오디오, 메쉬만을 불러와 사용한다.
  • 툴박스에서 불러온 모델에 수상한 스크립트 파일은 없는지 꼼꼼히 검사 후 게임에 넣는다.
이 바이러스는 컴퓨터 자체에는 영향을 끼치지 않는, 보통 '''Lua 바이러스'''라고 불리는 바이러스다.
백도어의 경우에도 컴퓨터 자체에는 영향을 끼치지 않지만, 게임을 발행하고 사람이 좀 많아지면 백도어를 유포한 사람한테 기록이 가고[7] 그 사람이 특정 조건을 만족한 (부)계정[8]으로 게임에 접속하면 게임안에 특정 GUI가 나오고 그 사람은 그걸로 각종 나쁜 짓을 할수 있게 된다.
'바이러스' 종류에서 주로 발생하는 일은
  • 게임이 시작하자마자 FREE ROBUX같은 다른 게임으로 옮겨버린다.
  • 화면이나 GUI를 계속 깜빡거리게 하여 눈을 아프게 만든다.
  • 의미 없는 모델[9]을 구매하라고 계속 구매창이 나와 게임을 불편하게 한다.
  • 무한 루프를 이용한 서버/클라이언트의 엄청난 렉을 유발한다.
  • 더 나아가, 로블록스가 게임을 잘못 판단하면 게임 또는 계정이 제재를 당할 수 있다.
'백도어' 종류에서 주로 발생하는 일은
  • 루아 바이러스나 백도어를 만든 사람에게 각종 도구와 기능, 좋은 예시로 어드민을 제공한다.
  • GUI를 이용한 각종 팝업 메세지를 띄운다.
  • 불이나 파트등 물체를 소환한다.
  • 데이터스토어[10]를 변형한다.
  • 스크립트나 물체의 이름을 바꾸거나 지워 게임을 망가뜨린다.
  • 게임내에서 일반적으로 불가능한 Star glitcher같은 스크립트를 사용한다.
바이러스를 찾는 방법은 대표적으로 다음과 같다.
  • 파트 내부를 작은 블럭 하나하나까지 뒤져보거나 "RotateP","RotateV","Fire","Weld"로 익스플로러에 검색한다. 그리고 그 안에 괴상한 이름을 가진 스크립트가 있다면, 절대다수가 바이러스다. Fire의 경우에는 횃불같은 의도한 불이면 바이러스가 아니지만, 전혀 불이 안들어갈만한 장소에 전혀 드러나지 않는 불이 있다면 무조건 바이러스성 불이니 바로 지우자.
  • Ctrl+Shift+F로 전체 스크립트를 검색해 getfenv, require, loadsting를 검색하자. require의 경우에는 A-chassis tune이나 Kohl's Admin 같은 많은 정상 스크립트가 이용해서 무턱대고 지우지 말고 좀 이상한 것을 찾자. 만약 의도하지 않은 스크립트라면 대부분이 백도어다. getfenv나 loadsting은 대다수가 백도어다. 과감히 지우자.
  • 너무 많거나 귀찮다면 플러그인에 Ro-Defender를 설치하여 렉 유발 바이러스를 없애주면 된다. 스크립트 내용이나 방식, 이름[주의]같은걸 찾아서 대부분은 확실하게 없애주지만 간혹 놓치는것도 있으니 꼼꼼히 찾자.
  • 구매 유도 바이러스의 경우에는 PromptPurchase , Marketplaceservice 를 전체검색으로 찾아보자. 첫 줄에 local wat=이 있으면 이게 구매 유도 바이러스다!

5. 스크립팅


로블록스 Scripting 페이지(영문) 스크립트를 이용하여 각종 시스템이나 효과를 만들수 있다
Roblox Studio의 스크립트 기능은 Lua 5.1을 사용하고 있다. '프로그래밍 루아'라는 이름의 서적이 한국어로 번역되어 있으니 Lua 스크립팅에 공부하고 싶다면 관련 서적을 읽어보는것도 좋다.

5.1. 기본적인 명령


많이 쓰이는 명령 목록은 이렇다.
  • wait(숫자) = (숫자)초만큼 기다린다.
  • print(문자열) = 문자열을 Console에 출력한다[11]
  • end = 조건문이나 반복문, 함수를 끝낸다.
  • while 조건 do = 조건이 계속 충족되는 한 계속 실행한다. [12]
- 이때 while true do를 하면 게임이 시작되는 순간부터 끝날 때까지 계속 실행한다.
- while 조건 do를 치고 엔터를 누르면 아래에 Tab키를 눌렀을 때만큼의 띄어쓰기가 되어 있고 끝에 End가 자동으로 붙는다.
  • for i = val1, val2, val3 do = 조금 복잡하다. 간단히 요약하면, i가 처음 시작하는 수가 val1이고, 한번 반복하면 i가 val3씩 늘어난다. for 반복문은 i가 val2보다 큰지 계속 검사하여, 만약 i가 val2보다 크면 반복문을 빠져나간다. [13]
  • if 조건 then = 만약 조건이 충족되면 안에 있는걸 실행한다.
- (숫자) = (숫자) 로 조건을 쓰면 오류 난다.[14] 같은지 비교할 땐 (숫자) == (숫자) 를 쓰도록 하자.
  • repeat wait(숫자) until 조건 = 조건일 때 까지 계속 반복한다.
- 이것도 조건에서 (숫자) == (숫자)와 같이 써야된다.

5.2. 기본적인 상수


많이 쓰이는 상수 목록은 이렇다.
  • true = 참
  • false = 거짓
  • nil = 아무것도 없는 값 [15]


5.3. 기본적인 모듈


이것은 함수를 담고있는 기본적인 모듈들이다.
  • Vector3 = 좌표에 대한 모듈이다.
  • Color3 = 색에 대한 모듈이다.
  • BrickColor = 이것 역시 색에 대한 모듈이지만 로블록스에서 기본적으로 지원하는 색만 쓸수 있다.
  • Enum = 거의 대부분의 상수를 저장한 모듈이다.[16]
  • CFrame = 이것 역시도 Vector3처럼 좌표에 대한 모듈이지만, 이건 돌아간 정도도 포함한다. Vector3는 블럭이 겹쳐지면 위로 올라가지만, CFrame은 겹쳐진다.
  • IntValue = 정수에 대한 모듈이다.
  • BoolValue = 참 혹은 거짓의 값이 있는 모듈이다.
  • NumberValue = 수 전체에 대한 모듈이다.
  • UDim2 = 좌표에 대한 모듈인데 이건 라벨과 비슷한 것에 쓰인다.

6. 플러그인


로블록스 스튜디오를 개발해주는 데 도움을 주는 각종 플러그인이 있다.
Brick Cutter나 Animation Editor Classic등 편리한 제작 도구부터 바이러스를 막는데 특화된 Ro-Defender 등 각종 도구가 있다.
이 역시 악성 유저들이 각종 '''Lua 백도어'''를 설치하는 악성 플러그인을 봇팅을 통해 상단으로 올려놓고 설치를 유도하는 경우가 있다! 플러그인을 설치할 때도 조심해야 한다.

7. 개발 팁


이하는 로블록스 스튜디오로 게임을 개발할 때 도움이 되는 정보들이다.
  • 여러 파트를 하나의 오브젝트로 합치거나 Negate 파트와 Union 하여 블렌더와 같은 어려운 모델링 프로그램을 쓰지 않고 간단하게 블록을 자르거나 붙여서 모양을 낼수가 있다.
  • 블렌더와 같은 3D 모델링 프로그램을 사용해 CSG로 구현이 어려운 모델을 만들수 있다. [17]
  • 총을 사용하고 싶다면 서버 단위로 작동하는, 즉 타 플레이어의 시점에서 자신이 쓰는 여러 기능이 반영되는 총 킷을 쓰자. 대표적으로 FE gun kit, Warbound[18], ACS[19], Murnau, VE[20], BCWS[21], VIETHIN[22] 등이 있다. 정 맘에 안들거나 불안하면 직접 키트를 만드는 것도 좋다. 대부분의 메이저 FPS 게임들은 직접 제작한 키트를 사용한다.
  • Loadlibrary 스크립트는 더 이상 사용되지 않으며 삭제되었다. 이를 쓰는 개발자는 Loadlibrary 대체방법(영문)을 참고해서 대체하면 된다.

[1] 총 7개. 맵 곳곳에 숨겨져있다.[2] 주로 기초적인 물건이다.[3] 보통 다른 게임의 오브젝트를 복제해 올린다.[4] #[5] 개발이라 하기도 뭐하고, 구글에 검색하면 그런 코드는 널린데다 아예 다른 악성 모델에서 스크립트 자체를 뜯어오든 하는게 극히 대부분.[6] Item Giver라고 흔히 알려져있다.[7] 디스코드 등[8] 누구랑 친구를 추가했거나, 일정 명령어를 입력했거나, 그룹에 가입했거나 등[9] 주로 의자, 나무 등 의미 없는게 많다.[10] 게임 내의 플레이어 정보를 저장하는 곳. 인게임 돈이 대표적이다. 단 대부분의 게임이 서버에 정보를 저장하기 때문에 눈에 보이는 값만 바꾸는 것은 나갔다만 와도 소용이 없어진다.[주의] virus같은 이름이 붙어있으면 지워버리기 때문에, 멀쩡한 모델같은것에 그런 이름을 붙여두면 같이 날아가버리는 참사가 발생한다.[11] 사실 디버깅할때 말고는 별로 쓸모가 없다.[12] 하지만 이것만 사용하면 대부분 과부하가 되니 제일 끝에 wait(0)을 넣어주자.[13] 이것 역시도 제일 끝에 wait()를 넣어주자. 아니면 과부하가 걸린다.[14] 등호 하나는 앞의 값에 뒤의 값을 덮어쓰겠다는 뜻이다.[15] 이걸 이용해 if Part ~= nil then 같이 예외처리를 할수 있다.[16] true, false, nil 제외[17] 단, 메쉬의 트라이가 5,000 트라이 미만이여야 로블록스로 불러올 수 있다. 또한, 계정에 등록된 생년월일 기준으로 13세 미만일 시, 메쉬가 정상적으로 불러와지지 않을 수 있다.[18] 약칭 WB, 아르마 시리즈를 참고해 만들어진 시스템이며 R6 캐릭터를 사용할 때에만 작동한다. 대다수의 모델은 스크립트의 노후화로 각종 버그(예를 들어서 마우스 포인터가 없어진다거나)가 있으며 후술할 여러 모델들의 모태가 되었다.[19] Advanced Combat System 의 약자, 아르마 시리즈와 이스케이프 프롬 타르코브를 참고해 만들어진 시스템이다. 최신형인 1.8을 제외하면 R6 형태의 캐릭터를 사용할 때에만 작동한다.[20] Vanguard Engine의 약자, Warbound의 공식 후계이다. 사실상 ACS의 하위호환이라 볼 수 있다.[21] ACS를 참고해 모 유저가 직접 R15 캐릭터가 호환되도록 만든 시스템. 오리지널 ACS에는 없는 여러 기능이 있다.[22] 현대전 총들도 있지만 많은 총들이 머스킷 등 옛날 총들이 있으며 주로 중세 시대 전쟁이나 조선시대 같은 전쟁 게임을 만들때 많이 사용된다.