본문 바로가기

로블록스 개발에 필요한 전반적인 내용들

(7)
(로블록스) 어떤 게임은 성공하고 어떤 게임은 실패하는가? https://medium.com/roblox-developer/why-some-games-work-and-others-dont-9cc17b7ab499 누구나 실패를 겪을 수 있는 것이 사실이고 또 지극히 정상이다. 실패는 나 또는 다른 누구보다 훌륭한 교사이며, 게다가 실패는 성공의 어머니라는 말이 있지 않은가. 긴 개발 여정 끝에 두 개의 게임을 성공적으로 첫 페이지에 배포하고 수많은 프로젝트에 참여했다. 이 모든 것은 계속해서 기술을 연마하고 실패로부터 교훈을 얻었기 때문이다. 실패는 나에게 게임 개발에 대한 확실한 이해를 제공했다. 이 포스팅에서 게임 디자인과 관련하여 교훈을 얻었던 몇 가지 사항들을 공유하겠다. 게임 디자인이란? 게임 디자인은 마치 케이크를 만드는 과정과 비슷하다. 프로그래밍, ..
몰입감 넘치는 게임 디자인 만들기 원본 https://medium.com/roblox-developer/creating-immersive-environments-2506729f62bb 게임에 있어서 몰입감은 플레이어에게 게임을 계속 플레이하게 만드는 핵심중에 핵심이다. 게임의 맵의 몰입감이 부족하면 제작자의 의도나 스토리에 플레이어가 좀더 몰입할 수 있는 기회를 없애버리는 결과를 초래한다. 좋은 맵 디자인에는 언제나 스토리와 연결된다. 예를 들어, 무성하게 풀과 나무가 자라나 있는 도시의 배경이라면 그것은 방치된 느낌을 강하게 줄 것이다. 그러면 자연스럽게 방치된 도시가 된 이유나 그 속에서 나오는 스토리가 연결된다. 무너져가는 건물이나 구조물은 전투나 재난상황이라는 스토리와 연결될 것이다. 따라서 스토리가 어떤 내용이느냐에 따라서 맵의..
로블록스의 클라이언트 서버 통신에 대하여 (3) 로블록스내에서 RemoteEvent, RemoteFunction 사용방법 앞선 내용에서 이미 RemoteEvent와 RemoteFunction은 ReplicatedStorage의 자식 오브젝트로 추가하는 방식이 일반적이라고 밝혔다. 그 이유로는 서버와 클라이언트 양쪽에서 접근이 가능해야 하기 때문에, 그 역할에 가장 알맞는 서비스가 ReplicatedStorage 이기 때문이다. Remote Event 사용법 Remote Event 를 사용하기 위해서는 RemoteEvent의 객체를 생성해야 한다. 이 RemoteEvent 객체는 서버와 클라이언트양쪽에서 접근이 가능해야 한다. 즉 ReplicatedStorage의 자식으로 RemoteEvent를 추가한다. ReplicatedStorage를 탐색기 창(E..
로블록스의 클라이언트 서버 통신에 대하여 (2) 실제 로블록스에서는 클라이언트와 서버는 어떻게 통신하나? 앞선 글에서 일반적인 클라이언트-서버 모델의 내용을 살펴봤다. 그럼 이제부터 로블록스에서는 위에서 말한 내용들을 어떻게 구현되어져 있는지에 대해 알아보자. 위의 내용은 일반적 프로그래밍에 대한 내용이라면 이제부터는 로블록스가 제공하는 방식에 대한 내용이다. 로블록스에서는 기본적으로 서버 스크립트와 로컬 스크립트를 다 작성해줘야 한다. 게임 내에서 어떤 행위는 서버에서만 처리되고 어떤 행위는 클라이언트에서만 처리된다. 양쪽 모두에서 처리가 필요한 행위도 있다. 예를 들어, 유저가 버튼을 눌렀고 그 행위가 게임 전반에 어떤 변화를 줘야 하는 것이라고 하자. 그럼 이제 로컬 스크립트와 서버 스크립트와의 통신이 필요하게 된다. 그때 사용되는 것이 Remo..
로블록스의 클라이언트 서버 통신에 대하여 (1) 클라이언트-서버 모델 로블록스는 많은 유저가 동시에 같이 플레이할 수 있는 멀티 플레이어 게임을 쉽게 만들 수 있게 해준다. 클라이언트-서버 모델을 채택하고 있는 로블록스는 수많은 클라이언트가 있고 그 클라이언트를 제어하는 서버가 있는 구조이다. 클라이언트는 피씨가 될 수도 있고, 모바일폰, 태블릿, 엑스박스나 플스같은 콘솔도 될 수 있다. 이런 여러 클라이언트들이 로블록스 서버에 연결되어서 동시에 여러 유저들이 같이 놀고 싸우고 탐험하는 경험을 제공해준다. 개인적인 생각엔 약간 스타크래프트의 유즈맵을 만드는 과정과 비슷하지 않는가? 하는 느낌을 받았다. 너무 고전 게임 얘기를 꺼내서 모르는 사람도 있을거라고 보지만... 유명하니깐~ 스타는 서버 클라이언트 모델은 아니지만. 어쨋든 느낌은 비슷하다. 클라..
로블록스 개발 - 이벤트 처리하기 로블록스에서는 기본적으로 콜백 처리를 수행하기 위한 방식으로 이벤트를 사용한다. 버튼을 클릭하거나 특별한 일이 게임내에 일어났을 때, 유저가 게임에 접속했을 때 등등에서도 이벤트를 통해 처리된다. 그리고 서버 클라이언트와의 통신에서도 이벤트를 사용하게 된다. 이벤트가 일어 날때까지 기다리는 방식과 이벤트를 기다리는 방식과 함수에 이벤트를 연결하는 방식이 있다. 이벤트를 기다리는 방식 Wait() 함수는 해당 이벤트가 일어날 때까지 멈춰버리는 역할을한다. 해당 이벤트가 발생하면 멈춤은 풀리고 다음으로 넘어가게 된다. 방식으로 봤을때, 단 한번만 수행됨을 알 수 있다. 아래 코드는 myPart에 Touched 이벤트가 발생되기를 기다렸다가, 발생했을 때, 출력문이 출력되는 모습을 보여준다. Wait()함수의..
로블록스와 메타버스. 그냥 개인적 잡담. Metaverse라는 신조어를 아직 들어보지 못한 사람은 별로 없을 거라고 본다. 언뜻 마블의 멀티버스와 같은 개념인가? 라는 생각을 할 수도 있겠다. 개인적인 의견으로는 멀티버스나 메타버스나 그게 그거라는 입장이다. 어쨋든 소위 전문가들의 입을 빌려 메타버스를 정리해보면, 초월을 의미하는 메타와 세계, 우주를 의미하는 유니버스의 합성어로써 초월적인 세계, 즉 또 다른 현실? 이라는 말이 된다. VR이 메타 버스아니냐 라는 말도 하는데... 개발자 입장에서 VR과 메타버스는 좀 다른 느낌이다. VR, AR, MR은 게임, 엔터테인먼트를 보여주는 방식에 촛점을 두는 표현이고 메타버스는 또 다른 세계를 의미한다. 메타버스는 VR, AR, MR, 그냥 2D 모니터에서도 경험할 수 있다는 의미이다. 최근(202..