이 문서는 로블록스의 게임을 제작할 수 있는 로블록스 스튜디오를 설치하고 간단한 스크립트를 테스트해보겠습니다.
프로그래밍의 지식이 없어도 스크립트를 쓸 수 있습니다만,
객체지향 프로그래밍에 대한 약간의 이해가 있으면 로블록스 스튜디오를 더 빨리 배울 수 있습니다.
로블록스는 단순하면서도 자신만의 게임을 제작할 수 있다는 샌드박스 게임으로 전 세계적인 인기를 끌고 있습니다. 한국에서도 최근 로블록스를 하는 사람들이 늘어나고 있습니다.
로블록스 스튜디오는 아래 웹사이트에서 무료로 다운로드 받을 수 있습니다.
용량이 그렇게 크지 않아서 설치에 오래 걸리지는 않습니다.
Roblox Studio - 무료 - 최신 버전 다운로드 (softonic.kr)
당연하지만 로블록스 계정이 없다면 생성해야 합니다.
로블록스 계정이 없으면 게임도 할 수 없으니까
일단 로블록스 홈페이지에 가서 회원가입을 합니다.
가입이 완료되면 로블록스 스튜디오와 게임 론처를 실행합니다.
바탕화면에 깔려있는 로블록스 스튜디오가 게임을 만들 때 사용하는 프로그램이고,
로블록스 플레이어는 게임에 참여할 때 사용하는 프로그램입니다.
상단의 메뉴에서 게임탭은 게임을 플레이 하는 곳이고 만들기는 게임을 만드는 로블록스 스튜디오입니다.
create new game (새로운 게임만들기)나
기존에 저장되어 있는 게임의 edit 를 클릭하여 로블록스 스튜디오를 실행합니다.
실행하면 기본 템플릿들이 보입니다. 아무것도 없고 바닥만 있는 첫번째 Baseplate 템플릿을 클릭해봅니다.
새로운 창이 열리고 여러가지 컨트롤들이 보입니다.
복잡하지만 하나씩 알아가면 됩니다.
로블록스의 스크립트는 루아(Lua) 스크립트를 사용합니다. 스크립트는 한줄씩 실행시킬 수 있는 프로그래밍 언어인데 게임상에서 발생하는 이벤트, 물리엔진, 텍스트출력 등을 작성할 수 있는 도구입니다.
쉽게 말해 게임제작에 사용되는 프로그래밍 언어의 일부라고 생각하면 됩니다.
오른쪽 패널에서 Workspace -> Script 를 클릭하면 Workspace 아래에 스크립트 파일이 생성됩니다.
로블록스 스튜디오를 사용하다보면 알게되지만 Workspace란 지금 화면에 나타난 가상의 세계 (레벨)를 의미합니다. 이 안에 있는 모든 것들은 하나의 객체로 다뤄집니다.
print ("Hello World!") 가 기본으로 작성되있습니다. 스크립트가 잘 실행되나 테스트를 해보라는 제작사의 배려입니다.
위쪽의 Play 버튼을 눌러 보면 3D 화면 아래 Output 창에 스크립트가 실행됩니다. 플레이 버튼을 클릭할 때 마다 게임을 실행해 볼 수 있습니다. 스크립트를 테스트하려면 플레이 버튼을 클릭합니다. 스크립트의 내용은 플레이버튼을 누르면 실행됩니다.
스크립트에는 루아 (Lua) 의 문법을 사용한 코딩이 가능합니다.
루아의 기본 문법이 궁굼하면 아래 링크에서 배울 수 있습니다. 스크립트 언어의 문법은 배우기 쉽습니다.
루아(Lua) 튜토리얼 1 | 루아 시작하기 | 키워드, 주석, type 함수, nil 등 | (tistory.com)
* 여기까지만 하면 좀 심심하니까 게임의 Object 들을 변경하는 스크립트를 실행해 보겠습니다.
오른쪽 패널에 Worksapce가 있고 그 안에 또 리스트가 있습니다. 이들은 객체 단위로 있는데 스크립트에서 접근하는 방법은 다음과 같습니다.
예를들어 Baseplate (바닥 객체)에 접근하고 싶으면 다음과 같이 작성합니다. 이렇게 작성하면 바닥의 속성에 접근할 수 있습니다. 객체, 속성 이런 단어가 생소하더라도 걱정할 필요는 없어요. 예제를 진행하다 보면 코딩을 몰라도 의미를 알게 됩니다.
game.Workspace.Baseplate
스크립트 편집기에서 자동완성 기능도 지원하기 때문에 코드 작성이 어렵지 않습니다.
Properties 라는 것은 game.Workspace.Baseplate 객체의 속성(attribute) 를 말하는데 예를 들어 바닥의 투명도가 하나의 속성이다.
바닥의 투명도를 조절하는 예제를 실행해보겠습니다. 투명도는 0부터 1까지 조절할 수 있습니다. 완전히 투명한 것은 1이죠.
game 을 실행한 후에 하단의 run a command 를 사용하면 실시간으로 효과가 적용되는 것을 볼 수 있습니다.
이와 같이 화면의 효과를 스크립트를 통해 제어할 수 있습니다. properties에 있는 [속성 : 숫자] 는 모두 변경할 수 있습니다. 로블록스 스튜디오에 친숙해지려면 테스트 게임을 만들어 놓고 이것 저것 해보는게 좋습니다.
객체지향언어를 사용하니까 좀 더 직관적이고 이해하기 쉬운데 시간이 그다지 오래안걸리니까 루아 스크립트를 배우는게 좋습니다. (미국에는 초등학생이나 청소년 개발자들이 루아 스크립트를 사용합니다;;; 게임 스크립트를 염두하여 개발한 언어인만큼 루아는 쉽습니다.)
Properties를 조작하는 것은 패널에서도 가능하고 스크립트로도 가능합니다.
게임의 초기화는 패널에서 해주고 게임 플레이 도중에 바뀌는 부분은 스크립트로 작성하는게 아무래도 스크립트의 코드수를 줄일 수 있습니다.
스크립트를 사용하면 게임을 다양하게 만들 수 있는데 게임의 스크립트 구현은 별도로 배워야 합니다.
조금만 손을 보면 바닥의 화려한 광원같은 것도 쉽게 구현할 수 있습니다. 저정도 표현이면 상당히 좋은 그래픽이네요.
game.Workspace ... 객체로 접근하는 것은 좋은데 이름이 너무 길죠? 이름이 길면 코드의 가독성이 떨어지기 때문에 아래와 같이 local 키워드를 사용하여 이름을 짧게 줄일 수 있습니다.
그리고 Lua 는 대소문자를 구분하는 것에 주의합니다.
루아스크립트는 (case sensitive) Baseplate 와 baseplate 는 다른 식별자(이름)로 구분합니다.
* 여기까지 테스트를 마쳤다면 이제 로블록스 스튜디오로 게임을 만들 준비가 되었습니다!!!
스크립트를 다루는게 서툴어도 자기의 게임을 만들 수 있습니다. 하지만 더 재미있는 게임을 만들기 위해서는 루아 코딩과 게임 스크립트는 별도로 배우는게 좋겠죠.
* 루아를 배우려 가려면 아래 링크를 클릭합니다!
루아(Lua) 튜토리얼 1 | 루아 시작하기 | 키워드, 주석, type 함수, nil 등 | (tistory.com)