로블록스 스튜디오(Roblox Studio)로 개발한 게임 코드도 버전관리가 가능합니다. Git을 활용하면 일별 변경 내역을 자동으로 정리하고 블로그에 포스팅하는 작업도 자동화할 수 있습니다.
- 매일 기록하는 개발자의 하루: Roblox Lua 코드 변경 로그
- 오늘 내가 작성하지 않아도 남겨진 코드의 흔적: 자동 수집된 Roblox Devlog
- Git + Rojo + PowerShell로 만들어진 자동화된 Roblox 스크립트 변경 이력 문서
- 개발자의 수고를 덜어주는 코드 변경 추적 시스템 - 오늘의 Lua 코드 분석 리포트
로블록스 프로젝트 버전관리
로블록스 스튜디오 저장 형식
.rbxl
또는.rbxlx
: 게임 전체를 저장하는 파일 (이진/텍스트).lua
: 스크립트 파일 (로컬에서 별도로 추출 가능)
기본적으로 Roblox Studio는 내부에서 버전관리를 제공하지 않지만, 텍스트 기반 .rbxlx
또는 .lua
파일로 저장하면 Git으로 관리 가능합니다.
버전관리 방법
- 텍스트 형식으로 저장 (
.rbxlx
)
파일 > Save As >.rbxlx
선택 - Script 소스는
.lua
로 Export
Explorer > Script 우클릭 > Export Selection
Git으로 버전관리 자동화
폴더 구성 예시
/MyGameProject
/src
MainGame.rbxlx
Scripts/
Init.lua
Enemy.lua
/log
README.md
Git 초기화
cd MyGameProject
git init
git add .
git commit -m "Initial commit"
자동 커밋 스크립트 (일 1회)
#!/bin/bash
cd /home/user/MyGameProject
git add .
today=$(date '+%Y-%m-%d')
git commit -m "Daily commit: $today"
이 스크립트를 cron
으로 등록
crontab -e
# 매일 오전 3시에 자동 커밋
0 3 * * * /home/user/auto_commit.sh
변경 내역 자동 블로그 포스팅
1일 변경 이력 로그 생성
git log --since="1 day ago" --pretty=format:"- %h %s (%cd)" --date=short > /home/user/MyGameProject/log/daily_log.md
블로그 업로드 자동화 방법
플랫폼 | 방법 |
---|---|
Velog, 티스토리 | Open API 또는 Puppeteer, n8n 이용 자동화 가능 |
GitHub Pages | daily_log.md를 Jekyll 템플릿에 적용 |
Notion | Notion API로 daily_log.md 업로드 가능 |
예: n8n 워크플로에서 Git 커밋 로그를 읽고 Notion 또는 Tistory API로 업로드
관리 체크포인트
- ✅ Git에
.rbxl
등 바이너리 저장 시 diff 불가 →.rbxlx
,.lua
사용 권장 - ✅ 민감한 토큰(API key 등)은
.env
로 관리하고.gitignore
처리 - ✅ 공유 저장소 설정 시 Public 여부 확인
- ✅ 자동 업로드 스크립트는 인증 토큰 보호 필수
로블록스 .rbxl
파일을 자동으로 .rbxlx
, .lua
파일로 저장한 뒤 Git에 커밋하는 Windows 환경 자동화 구성 방법입니다.
.rbxl
→.rbxlx
(텍스트 저장).rbxlx
에서.lua
스크립트 추출- Git에 자동 커밋 (
git add
,git commit
) - 배치파일 수동 실행 + 예약작업(스케줄러) 자동 실행
항목 | 필요 내용 |
---|---|
Roblox Studio 설치 | RobloxStudioBeta.exe |
Rojo 도구 설치 (선택) | Lua 추출 자동화용 |
Git 설치 | git 명령어 CLI 사용 |
PowerShell 또는 rcc.exe (로컬 Roblox CLI) |
로컬 저장 변환용 |
변환 도구 구성
Roblox CLI 툴 설치 (rcc.exe)
- 로블록스 공식 Command Line Compiler
- 경로 예시:
C:\Program Files (x86)\Roblox\Versions\<버전>\rcc.exe
📌 rcc.exe
를 통해 .rbxl
→ .rbxlx
저장 및 Lua 추출이 가능합니다. 직접 추출이 어려운 경우는 Rojo 사용을 추천합니다.
Rojo를 통한 Lua 추출
- [Rojo 다운로드 (https://github.com/rojo-rbx/rojo/releases)]
rojo.exe
를 적당한 경로에 배치 (예:C:\Tools\Rojo\rojo.exe
)default.project.json
구성 예시{ "$schema": "https://raw.githubusercontent.com/rojo-rbx/rojo/master/default.project.json", "name": "MyGameProject", "tree": { "$className": "DataModel", "ServerScriptService": { "$path": "src" } } }
.rbxlx
에서 스크립트를 추출하여src/
에.lua
저장됨
디렉터리 구조 예시
C:\MyRobloxProject
│
├─ OriginalGame.rbxl
├─ ProjectSave.rbxlx ← 저장 변환본
├─ src\ ← .lua 파일 저장
│ ├─ GameInit.lua
│ └─ PlayerControl.lua
├─ daily_commit.bat
├─ rojo.exe
└─ default.project.json
배치 스크립트 (daily_commit.bat)
@echo off
cd /d "C:\MyRobloxProject"
:: 1. rbx to rbxlx 변환 (수동 작업 또는 자동화 도구 필요 시 스킵)
:: - 수동으로 저장했을 경우 이 단계 생략 가능
:: 2. Rojo로 Lua 추출
rojo.exe build default.project.json -o ProjectSave.rbxlx
:: 3. Git 저장 및 커밋
git add .
for /f %%i in ('powershell -Command "Get-Date -Format yyyy-MM-dd"') do set DATE=%%i
git commit -m "Daily update: %DATE%"
※ PowerShell 없이 CMD만 쓸 경우
set DATE=%date:~0,10%
git commit -m "Daily update: %DATE%"
작업 스케줄러 등록 방법
- Windows에서
작업 스케줄러
실행 - 새 작업 만들기 > 이름 입력:
Roblox Auto Commit
- 트리거 탭
- 매일 오전 9시, 또는 원하는 주기 설정
- 동작 탭
- 프로그램/스크립트:
C:\MyRobloxProject\daily_commit.bat
- 프로그램/스크립트:
- 조건 탭
- 필요시
로그인 시 실행
or전원 연결 시 실행
- 필요시
보안 및 예외 처리 가이드
항목 | 설명 |
---|---|
Git remote 설정 | git remote set-url origin <url> 필요시 사전 설정 |
인증 캐시 처리 | 자격 증명 관리자에 계정 저장 또는 git config credential.helper |
변환 오류 대비 | .rbxlx 또는 .lua 추출 실패 시 로그 저장 추가 가능 |
스크립트 로그 | >> log.txt 2>&1 등으로 로그 저장 가능 |
아래는 Windows 환경 기준으로 맞춤 PowerShell 및 자동화 예시입니다.
.rbxl → .rbxlx 자동 변환 PowerShell 스크립트
Roblox 공식 CLI 도구인 rcc.exe
를 이용하면 .rbxl
파일을 .rbxlx
텍스트 포맷으로 저장할 수 있습니다.
rcc.exe
는 로컬 Roblox 설치 폴더에서 찾을 수 있음
예시:C:\Program Files (x86)\Roblox\Versions\<버전>\rcc.exe
- Roblox XML 포맷
.rbxlx
변환은rcc.exe
에서.rbxlx
로 export 할 수 있도록build.file
설정이 필요함
📜 PowerShell 스크립트 (convert_rbxl_to_rbxlx.ps1)
# 경로 설정
$robloxCLI = "C:\Roblox\Tools\rcc.exe"
$rbxlFile = "C:\MyRobloxProject\OriginalGame.rbxl"
$outputFile = "C:\MyRobloxProject\ProjectSave.rbxlx"
# Temp place for project file
$buildFile = "C:\MyRobloxProject\build.project.json"
# build 파일 작성
@"
{
"file": "$rbxlFile",
"output_type": "rbxlx",
"output": "$outputFile"
}
"@ | Out-File -Encoding UTF8 $buildFile
# 변환 실행
& $robloxCLI -project $buildFile
💡 rcc.exe가 build.project.json을 읽어 .rbxl → .rbxlx 변환
Rojo default.project.json 자동 생성 스크립트
.rbxlx
내에서 스크립트를 자동 추출할 수 있도록 Rojo
설정 파일을 자동 생성합니다.
📜 PowerShell 스크립트 (generate_rojo_config.ps1)
# 파라미터 설정
$projectName = "MyGameProject"
$outputPath = "C:\MyRobloxProject"
$scriptFolder = "src"
# Rojo 설정 JSON 생성
@"
{
"`$schema": "https://raw.githubusercontent.com/rojo-rbx/rojo/master/default.project.json",
"name": "$projectName",
"tree": {
"`$className": "DataModel",
"ServerScriptService": {
"`$path": "$scriptFolder"
}
}
}
"@ | Out-File -Encoding UTF8 "$outputPath\default.project.json"
💡 이후 Rojo 명령어 실행
rojo.exe build default.project.json -o ProjectSave.rbxlx
변경 로그 → Notion / GitHub Pages 자동 업로드
📘 Git 커밋 로그 생성 PowerShell 예시
$logPath = "C:\MyRobloxProject\log\daily_log.md"
$date = Get-Date -Format "yyyy-MM-dd"
$log = git log --since="1 day ago" --pretty=format:"- %h %s (%cd)" --date=short
"# $date 변경 내역`r`n$log" | Out-File -Encoding UTF8 $logPath
🧾 Notion API로 업로드
- Notion API 통합 생성
- API Key 및 DB ID 확보 필요
$notionToken = "secret_xxxxxxx"
$notionDatabaseId = "xxxxxxxxx"
$logContent = Get-Content "C:\MyRobloxProject\log\daily_log.md" -Raw
$date = Get-Date -Format "yyyy-MM-dd"
$payload = @{
parent = @{ database_id = $notionDatabaseId }
properties = @{
Name = @{
title = @(@{ text = @{ content = "$date 변경 내역" } })
}
}
children = @(
@{
object = "block"
type = "paragraph"
paragraph = @{
text = @(@{ type = "text"; text = @{ content = $logContent } })
}
}
)
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Uri "https://api.notion.com/v1/pages" `
-Headers @{
"Authorization" = "Bearer $notionToken"
"Content-Type" = "application/json"
"Notion-Version" = "2022-06-28"
} `
-Method Post -Body $payload
🌐 GitHub Pages에 업로드
- 변경 로그 저장 위치:
/docs/log/YYYY-MM-DD.md
_config.yml
에서Jekyll
활성화- Git 자동 커밋 추가
cd C:\MyRobloxProject
git add docs/log/*.md
git commit -m "Daily log update"
git push origin main
💡 GitHub Pages는 /docs/ 경로 기반 정적 블로그로 활용 가능
🧷 자동 실행 .bat 한방 구성
@echo off
cd /d "C:\MyRobloxProject"
:: 1. 변환
powershell.exe -ExecutionPolicy Bypass -File convert_rbxl_to_rbxlx.ps1
:: 2. Rojo 빌드
rojo.exe build default.project.json -o ProjectSave.rbxlx
:: 3. Git 기록 및 로그 생성
powershell.exe -ExecutionPolicy Bypass -File generate_git_log.ps1
:: 4. Notion 업로드
powershell.exe -ExecutionPolicy Bypass -File upload_notion.ps1
:: 5. GitHub Pages 업로드
git add .
git commit -m "Daily log update"
git push origin main
아래는 Windows 환경에서 PowerShell을 사용해 아래 작업을 자동화하는 스크립트 전체 구성입니다.
📁 디렉토리 구조 예시
C:\
├─ Users\
│ ├─ Alice\Projects\MyGame1\OriginalGame.rbxl
│ ├─ Bob\Games\MyGame2\Level1.rbxl
│
├─ Tools\
│ ├─ rcc.exe
│ ├─ rojo.exe
│
├─ result\
│ ├─ MyGame1\
│ ├─ MyGame2\
🧠 전체 자동화 PowerShell 스크립트
roblox_auto_export.ps1
# 경로 설정
$searchRoot = "C:\Users"
$rccPath = "C:\Tools\rcc.exe"
$rojoPath = "C:\Tools\rojo.exe"
$resultBase = "C:\result"
# result 폴더 초기화 (옵션)
if (!(Test-Path $resultBase)) {
New-Item -Path $resultBase -ItemType Directory
}
# 모든 .rbxl 파일 찾기
$rbxlFiles = Get-ChildItem -Path $searchRoot -Recurse -Filter *.rbxl -ErrorAction SilentlyContinue
foreach ($rbxlFile in $rbxlFiles) {
Write-Host "`n📂 처리 중: $($rbxlFile.FullName)"
# 프로젝트명 = 상위 폴더 이름
$projectName = $rbxlFile.Directory.Name
$projectOutputPath = Join-Path $resultBase $projectName
# result 하위 폴더 생성
if (!(Test-Path $projectOutputPath)) {
New-Item -Path $projectOutputPath -ItemType Directory | Out-Null
}
# 1. rbxl → rbxlx 변환
$rbxlxFile = Join-Path $projectOutputPath "$projectName.rbxlx"
$buildJsonPath = Join-Path $projectOutputPath "build.project.json"
@"
{
"file": "$($rbxlFile.FullName)",
"output_type": "rbxlx",
"output": "$rbxlxFile"
}
"@ | Set-Content -Encoding UTF8 $buildJsonPath
& "$rccPath" -project "$buildJsonPath"
# 2. Rojo 설정 생성
$srcPath = Join-Path $projectOutputPath "src"
if (!(Test-Path $srcPath)) {
New-Item -Path $srcPath -ItemType Directory | Out-Null
}
$rojoConfig = Join-Path $projectOutputPath "default.project.json"
@"
{
"`$schema": "https://raw.githubusercontent.com/rojo-rbx/rojo/master/default.project.json",
"name": "$projectName",
"tree": {
"`$className": "DataModel",
"ServerScriptService": {
"`$path": "src"
}
}
}
"@ | Set-Content -Encoding UTF8 $rojoConfig
# 3. Rojo 빌드 실행 (.lua 추출)
& "$rojoPath" build "$rojoConfig" -o "$rbxlxFile"
}
# 4. Git 자동 커밋 (result 기준)
Set-Location $resultBase
git init
git add .
$date = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
git commit -m "자동 변환 및 커밋: $date"
이제는 PowerShell + Git + GitHub 환경에서 자동으로 변경된 .rbxl → .rbxlx → .lua
변환 후 GitHub에 자동 Push하는 구성입니다.
항목 | 설명 |
---|---|
Git 설치 | CLI 명령어 git 사용 가능해야 함 |
GitHub 저장소 생성 | 예: https://github.com/yourname/roblox-projects.git |
최초 1회 인증 필요 | HTTPS 또는 SSH 방식 설정 가능 |
인증 방식 설정
방법 1: HTTPS + 자격 증명 캐시 (간편)
- 터미널에서 1회 로그인 후 캐시됨
git config --global credential.helper manager
- 최초
git push
시 GitHub ID/패스워드 또는 Personal Access Token 입력 → 자동 저장됨
방법 2: SSH 인증 (추천)
- 키 생성 (1회만)
ssh-keygen -t ed25519 -C "your_email@example.com"
- 공개키 등록 : GitHub > Settings > SSH and GPG Keys > Add SSH Key
- GitHub URL 변경
git remote set-url origin git@github.com:yourname/roblox-projects.git
PowerShell 자동화 스크립트 예시
github_auto_push.ps1
# 기본 경로
$repoPath = "C:\result"
Set-Location $repoPath
# Git 초기화 (최초 1회만)
if (!(Test-Path "$repoPath\.git")) {
git init
git remote add origin https://github.com/yourname/roblox-projects.git # SSH 쓰는 경우 git@... 주소
}
# 브랜치 확인 및 설정
$currentBranch = git symbolic-ref --short HEAD 2>$null
if (-not $currentBranch) {
git checkout -b main
}
# 변경 사항 커밋
git add .
$commitMessage = "자동 변환 및 커밋: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
git commit -m "$commitMessage"
# GitHub 푸시
git push origin main
전체 자동화 스크립트 실행 순서
roblox_auto_export.ps1 # .rbxl → .rbxlx + Rojo로 .lua 추출
github_auto_push.ps1 # GitHub 푸시
또는 .bat
으로 묶어서 실행
@echo off
powershell.exe -ExecutionPolicy Bypass -File C:\Tools\roblox_auto_export.ps1
powershell.exe -ExecutionPolicy Bypass -File C:\Tools\github_auto_push.ps1
GitHub 리포지토리 폴더 구조 예시
result/
├─ MyGame1/
│ ├─ MyGame1.rbxlx
│ ├─ default.project.json
│ ├─ src/
│ └─ GameLogic.lua
├─ MyGame2/
│ ├─ ...
.git/
이번에는 .lua
변경 내역을 GitHub Pages 기반 블로그로 자동 게시하여 일일 개발일지 스타일의 페이지를 생성하는 방법입니다.
✅ .lua
스크립트 변경 내역을
✅ GitHub Pages에 Markdown 형식으로 기록하고
✅ Jekyll 기반 블로그로 매일 자동 포스팅하기
1. GitHub Pages 준비하기
🔧 리포지토리 설정
- GitHub에서 새 리포지토리 생성: 예)
roblox-devlog
- Settings > Pages로 이동
- Source:
main
branch,/docs
폴더 지정 - 저장소 주소:
https://yourname.github.io/roblox-devlog
- Source:
/docs/
폴더 생성 후index.md
파일 추가# Roblox 개발 로그 ✨ 자동으로 생성된 일일 로그는 아래와 같습니다.
2. 구조 설계 예시
result/
├─ MyGame1/
│ ├─ src/
│ └─ GameLogic.lua
docs/
├─ logs/
│ └─ 2025-07-11.md ← 오늘 로그 파일
├─ index.md
3. PowerShell: 일일 변경 로그 → Markdown 변환
generate_lua_change_log.ps1
# 기본 경로 설정
$repoPath = "C:\result"
$docsPath = "$repoPath\docs\logs"
if (!(Test-Path $docsPath)) {
New-Item -Path $docsPath -ItemType Directory | Out-Null
}
$date = Get-Date -Format "yyyy-MM-dd"
$logFile = "$docsPath\$date.md"
$title = "# $date Roblox 개발 변경 로그 `n"
# .lua 파일 변경 이력 추출
Set-Location $repoPath
$changedFiles = git diff --name-only HEAD~1 HEAD | Where-Object { $_ -like "*.lua" }
$content = $changedFiles | ForEach-Object {
$path = $_
$diff = git diff HEAD~1 HEAD -- "$path"
"## 변경: $path`n````diff`n$diff`n````"
}
# Markdown 저장
$title + ($content -join "`n") | Out-File -Encoding UTF8 $logFile
✅ HEAD~1 HEAD는 최근 커밋 기준입니다. 하루 단위 커밋이면 그대로 사용 가능.
4. GitHub Pages 업로드 스크립트
github_push_pages.ps1
$repoPath = "C:\result"
Set-Location $repoPath
git add docs/logs/*.md
git commit -m "GitHub Pages용 일일 로그 추가: $(Get-Date -Format 'yyyy-MM-dd')"
git push origin main
5. index.md에 링크 자동 갱신
update_index.ps1
$logPath = "C:\result\docs\logs"
$indexFile = "C:\result\docs\index.md"
$header = "# Roblox 개발 로그 ✨`n"
$entries = Get-ChildItem $logPath -Filter *.md | Sort-Object Name -Descending | ForEach-Object {
"- [$_](/logs/$($_.Name))"
}
$header + ($entries -join "`n") | Set-Content -Encoding UTF8 $indexFile
6. 전체 실행 자동화
full_devlog_workflow.bat
@echo off
:: 1. 파일 변환 및 추출
powershell.exe -ExecutionPolicy Bypass -File C:\Tools\roblox_auto_export.ps1
:: 2. Markdown 변경 로그 생성
powershell.exe -ExecutionPolicy Bypass -File C:\Tools\generate_lua_change_log.ps1
:: 3. index.md 최신화
powershell.exe -ExecutionPolicy Bypass -File C:\Tools\update_index.ps1
:: 4. GitHub Pages 업로드
powershell.exe -ExecutionPolicy Bypass -File C:\Tools\github_push_pages.ps1
최종 출력 예시
➤ 블로그 주소
https://yourname.github.io/roblox-devlog
➤ 페이지 예시
📅 2025-07-11 Roblox 개발 변경 로그
## 변경: MyGame1/src/Enemy.lua
```diff
+ function OnEnemySpawn()
+ print("Enemy spawned")
+ end
````
.lua
파일 내부의 주석(comment)을 자동으로 수집하고 요약하여 개발일지(Devlog)를 생성하는 자동화 흐름은 아래와 같습니다.
.lua 주석 자동 요약 → 개발일지 생성 흐름
.lua
코드 내부의 주석(--
)을 추출하고- 요약하거나 정리하여
- 개발자 일지 형식의 문서 (Markdown 등) 생성
- GitHub Pages, Notion, Slack 등에 자동 업로드 가능
예시 .lua 파일
-- 플레이어가 스폰될 때 실행되는 로직
function OnPlayerSpawn(player)
-- 체력 초기화
player.Health = 100
-- 위치 지정
player.Position = Vector3.new(0, 10, 0)
-- 스폰 메시지 출력
print("Player spawned")
end
자동화 구성 순서
1. 주석 추출 스크립트 (PowerShell)
$luaFile = "C:\MyRobloxProject\src\GameScript.lua"
$comments = Get-Content $luaFile | Where-Object { $_.TrimStart() -like "--*" }
# 주석만 추출
$plainComments = $comments -replace "^--\s?", ""
# Markdown 형식으로 저장
$date = Get-Date -Format "yyyy-MM-dd"
$outfile = "C:\result\docs\logs\$date-comments.md"
"# $date 개발자 주석 로그`n" + ($plainComments -join "`n") | Set-Content -Encoding UTF8 $outfile
2. LLM 기반 요약 (선택 사항)
PowerShell에서 GPT 호출하려면 n8n이나 Python API 연동 추천
예시 프롬프트
다음은 Roblox Lua 코드의 주석들입니다. 이를 요약하여 개발 일지 형식으로 작성해 주세요:
- 플레이어가 스폰될 때 실행되는 로직
- 체력 초기화
- 위치 지정
- 스폰 메시지 출력
👉 결과 예시
2025-07-04 개발 일지 요약:
- 플레이어 스폰 이벤트 로직 추가
- 초기 체력 100 설정
- 시작 위치 지정 (0,10,0)
- 스폰 확인 메시지 출력
3. 자동 업로드 (GitHub Pages / Notion)
앞서 구성한 PowerShell 워크플로에 이 Markdown 파일(*.md
)을 추가로 포함하여 업로드하면 됩니다.
git add docs/logs/*.md
git commit -m "주석 기반 자동 개발일지 추가: $date"
git push origin main
전체 흐름 요약 (자동화 파이프라인)
.lua 파일
↓
주석 추출 (--로 시작하는 줄)
↓
주석 요약 (선택: GPT, n8n, OpenAI API)
↓
Markdown 문서 생성 (.md)
↓
GitHub Pages 블로그 업로드 (또는 Notion API 전송)
응용 아이디어
목적 | 활용 방식 |
---|---|
✍️ 개발 회고 자동화 | 주석으로 남긴 히스토리 자동 요약 |
🧪 테스트 기록 자동 생성 | 테스트 루틴 내 주석만 수집 |
📘 문서 자동 생성 | 코드 주석 기반 기능 설명 문서 생성 |
댓글