여러분 안녕하세요! 여러분의 더욱 재미있는 개발 생활을 함께하고 싶은 에디터 칩입니다. 🙌
저의 부재 속에서도 이어오던 주간 개발 소식을 지난 주에는 전해드리지 못했죠. 저는 대부분의 주간 개발 소식의 소재를 데브 포럼을 통해 찾고 있는데요, 지난 주에는 일주일간 올라온 업데이트 소식이 너무 적고 국내 개발자 여러분에게 도움이 되지 못하는 정보들이 대다수여서 쉬어가는 편이 더 낫다고 판단했어요.
앞으로도 주간 개발 소식은 매주 발행을 목표로 하겠지만, 가끔은 전해드릴 소식이 부족해 쉬어갈 수도 있는 점 양해 부탁드립니다.
그러면 이번 주의 주간 개발 소식을 함께 알아볼까요?
게임 셧다운 업데이트

업데이트, 서버 렉 누적, 혹은 버그 등 다양한 이유들로 셧다운을 해야하는 상황들을 마주하죠. 대부분은 개발자가 직접 게임 셧다운을 진행하기에 다양한 유저들이 한꺼번에 서버를 옮길 수 있는 경우가 많습니다. 하지만, 언제나 개발자의 뜻대로 되지 않을 때가 있죠.
로블록스는 게임 플레이어의 악성 행위 등에 의한 셧다운을 방지할 수 있도록 사용자 단위 관리 기능(User-Level Moderation Actions)를 출시합니다. 이번 기능은 로블록스 자체 시스템을 통해 성적 행위 묘사 등 사용자의 의도적 행위가 감지되었을 때, 서버 전체가 셧다운 되는 문제를 방지하기 위한 목적으로 출시되었어요.
이 기능을 사용하면 로블록스의 정책을 위반한 사용자만 지목해 게임에서 자동으로 추방하고, 최대 5분간 접속을 차단할 수 있습니다. 특히 단일 악성 사용자뿐 아니라 복수의 악성 사용자에게도 적용하여 정상적으로 게임을 즐기는 다른 유저들의 피해를 최소화할 수 있어요.
로블록스는 이 기능을 통해 롤플레잉과 같이 셧다운이 매우 큰 영향을 미치는 장르의 게임들에게 도움이 될 것으로 기대하고 있으며, 실제로 이 기능을 사전에 이용한 게임은 셧다운 횟수가 15% 감소했다고 밝혔습니다. 또 해킹된 사용자 등으로부터의 게임 보호 기능도 추가했다고 해요.
그런데 이렇게 규정 위반에 의한 서버 셧다운 외에도 로블록스의 업데이트 등에 따라 가끔 발생되는 셧다운도 많은 골치거리이죠. 로블록스는 이러한 로블록스 시스템 점검에 의한 셧다운이 게임 이용자에게 미치는 영향을 개발자가 미리 대응할 수 있도록 ServerRestartScheduled 이벤트가 업데이트 됩니다.
이를 이용하면 최대 30분전에 예정된 서버 재시작(셧다운)을 감지해 게임 플레이어에게 이 사실을 안내하거나, 미리 이에 대응해 새로운 서버로 이동시킬 수 있어요.
ServerRestartScheduled 이벤트는 RestartTime (DateTime), Source (Enum.CLoseReason), 그리고 Attributes (Dictionary) 필드를 포함하고 있고요, 로블록스의 업데이트에 의한 서버 재시작일 경우 Source 는 늘 RobloxMaintenance로 고정됩니다.
이 이벤트를 활용한 로블록스의 예시 코드도 함께 살펴보며 다음 이야기로 넘어가볼게요.
game.ServerRestartScheduled:Connect(function(restartTime, source, attributes)
if source == Enum.CloseReason.RobloxMaintenance then
if roundEndTime < restartTime then
-- Teleporting players to the place will take them to a stable server.
teleportAfterCurrentRound = true
else
notifyPlayers("Please save your game before", restartTime)
end
elseif source == Enum.CloseReason.DeveloperUpdate then
local msg = attributes and attributes.message or ""
notifyPlayers(msg, restartTime)
end
end)예측 스트리밍 기능 출시

로블록스가 인스턴스 스트리밍 기능을 사용하는 게임들을 위한 새로운 기능인 예측 스트리밍 (Predictive Straming) 기능을 출시합니다. 이 기능을 활용하면 사용자에게 노출될 것으로 예상되는 영역을 예측해 해당 영역의 일부를 미리 로드하여 게임이 끊기는 현상 등을 방지할 수 있을 것으로 기대되고 있어요.
우선 인스턴스 스트리밍(Instance Streaming)에 대해 잠깐 알아볼까요? 우선 이 기능의 주된 목적을 한 문장으로 정리하자면 사용자에게 필요한 부분을 사용자가 필요할 때만으로 정리해볼 수 있습니다. 게임에 접속할 때 게임의 모든 부분을 불러와야 하면 상당한 시간이 걸리고, 사용자의 네트워크 환경이나 하드웨어 성능에 따라 렉이 걸리겠죠.
인스턴스 스트리밍은 게임을 즐기는 사용자의 주변 영역만 부분적으로 로딩하는 기능이에요. 이를 통해 CPU, 메모리 등을 효율적으로 사용하고, 프레임을 향상시키는 역할을 합니다.
그런데, 인스턴스 스트리밍 기능은 사용자의 현재 위치에 따라서 그 일대만을 로딩하기에 텔레포트 등으로 사용자의 위치가 로딩된 영역 바깥으로 이동한 후 다시 원래의 위치로 돌아오면 순간적인 게임 일시 중단이 발생하게 됩니다. 혹은 플레이어가 사망해 리스폰 지점으로 이동할 때도 일시 중단 문제가 발생하겠죠.
이러한 문제를 해결할 수 있는 기능이 예측 스트리밍입니다. 예측 스트리밍은 별도의 코드 수정 없이도 리스폰 지점 사전 로딩, CFrame 이동 전 위치 일시 저장 등의 기능을 제공합니다. 이 중에서도 이동 전 위치 일시 저장 기능은 텔레포트, 그 중에서도 건물 출입 기능에서 유용하게 사용될 수 있어요.
사용자가 건물 내에 진입할 때, 그 건물의 내부를 구현할 수도 있지만 건물과 내부를 분리해서 다른 장소에 구현해둘 경우에는 텔레포트 기능을 사용하죠. 이 때 사용자가 건물을 드나들 때마다 게임을 로딩한다면 사용자는 지속적인 게임 일시 중단 현상을 경험하게 됩니다. 하지만 예측 스트리밍 기능을 사용하면 사용자가 건물 내부로 진입하더라도 건물 외부 로딩을 일시 저장해 사용자가 건물 바깥으로 나올 때 중단 시간을 최소화할 수 있게 되는 것이죠.
이 기능을 사용하고 싶으시다면 Workspace > PredictiveStramingMode 를 활성화하시면 이용하실 수 있어요.
Inspire 2026 챌린지

로블록스 Inspire 2026 챌린지가 시작되었습니다. 이번 Inspire 2026 챌린지의 주제는 승리는 시작일 뿐! 로, 총 4개의 카테고리로 시상을 진행합니다. 참가를 희망하는 개발자 여러분께서는 오는 8월 2일 오전 2시까지 챌린지 작품을 제출하셔야 해요.
시상은 가장 창의적인 장르 탐구상, 가장 혁신적인 게임플레이상, 최고의 비주얼 & 감성상 그리고 최고의 종합 경험상으로 이루어져 있다고 합니다. 이 중 최고의 종합 경험상 수상자는 RDC 2026 항공권과 숙박권을 경품으로 받게 되니 노력해볼 가치가 있겠죠.
또 모든 참가자에게 UGC 아바타 아이템이 제공될 예정입니다. 이 아바타 아이템은 참가 조건에 맞게 게임을 제작한 경우에만 획득하실 수 있어요.

보다 자세한 사항은 관련 게시물을 참고해보세요!
이 주의 주간 개발 소식을 마칩니다.
다음주에 만나고 싶은 소식이 있으신가요? 언제든 로게이지 공식 커뮤니티나 저의 이메일로 남겨주세요! 제가 답변드리지는 못해도 모두 확인해서 소식을 전해드릴게요.
지금까지 여러분의 더욱 재미있는 개발 생활을 함께하고 싶은 에디터 칩이였습니다. 👋



