본문 바로가기
프로그램 (PHP,Python)

매일 자동 기록되는 개발일지 Roblox 게임 프로젝트 Lua 코드 리포트

by 날으는물고기 2025. 7. 12.

매일 자동 기록되는 개발일지 Roblox 게임 프로젝트 Lua 코드 리포트

728x90

로블록스 스튜디오(Roblox Studio)로 개발한 게임 코드도 버전관리가 가능합니다. Git을 활용하면 일별 변경 내역을 자동으로 정리하고 블로그에 포스팅하는 작업도 자동화할 수 있습니다.

  • 매일 기록하는 개발자의 하루: Roblox Lua 코드 변경 로그
  • 오늘 내가 작성하지 않아도 남겨진 코드의 흔적: 자동 수집된 Roblox Devlog
  • Git + Rojo + PowerShell로 만들어진 자동화된 Roblox 스크립트 변경 이력 문서
  • 개발자의 수고를 덜어주는 코드 변경 추적 시스템 - 오늘의 Lua 코드 분석 리포트

로블록스 프로젝트 버전관리

로블록스 스튜디오 저장 형식

  • .rbxl 또는 .rbxlx : 게임 전체를 저장하는 파일 (이진/텍스트)
  • .lua : 스크립트 파일 (로컬에서 별도로 추출 가능)

기본적으로 Roblox Studio는 내부에서 버전관리를 제공하지 않지만, 텍스트 기반 .rbxlx 또는 .lua 파일로 저장하면 Git으로 관리 가능합니다.

버전관리 방법

  1. 텍스트 형식으로 저장 (.rbxlx)
    파일 > Save As > .rbxlx 선택
  2. 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 여부 확인
  • ✅ 자동 업로드 스크립트는 인증 토큰 보호 필수
300x250

로블록스 .rbxl 파일을 자동으로 .rbxlx, .lua 파일로 저장한 뒤 Git에 커밋하는 Windows 환경 자동화 구성 방법입니다.

  1. .rbxl.rbxlx (텍스트 저장)
  2. .rbxlx에서 .lua 스크립트 추출
  3. Git에 자동 커밋 (git add, git commit)
  4. 배치파일 수동 실행 + 예약작업(스케줄러) 자동 실행
항목 필요 내용
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 추출

  1. [Rojo 다운로드 (https://github.com/rojo-rbx/rojo/releases)]
  2. rojo.exe를 적당한 경로에 배치 (예: C:\Tools\Rojo\rojo.exe)
  3. default.project.json 구성 예시
    {
      "$schema": "https://raw.githubusercontent.com/rojo-rbx/rojo/master/default.project.json",
      "name": "MyGameProject",
      "tree": {
        "$className": "DataModel",
        "ServerScriptService": {
          "$path": "src"
        }
      }
    }
  4. .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%"

작업 스케줄러 등록 방법

  1. Windows에서 작업 스케줄러 실행
  2. 새 작업 만들기 > 이름 입력: Roblox Auto Commit
  3. 트리거
    • 매일 오전 9시, 또는 원하는 주기 설정
  4. 동작
    • 프로그램/스크립트: C:\MyRobloxProject\daily_commit.bat
  5. 조건
    • 필요시 로그인 시 실행 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에 업로드

  1. 변경 로그 저장 위치: /docs/log/YYYY-MM-DD.md
  2. _config.yml에서 Jekyll 활성화
  3. 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. 터미널에서 1회 로그인 후 캐시됨
    git config --global credential.helper manager
  2. 최초 git push 시 GitHub ID/패스워드 또는 Personal Access Token 입력 → 자동 저장됨

방법 2: SSH 인증 (추천)

  1. 키 생성 (1회만)
    ssh-keygen -t ed25519 -C "your_email@example.com"
  2. 공개키 등록 : GitHub > Settings > SSH and GPG Keys > Add SSH Key
  3. 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 준비하기

🔧 리포지토리 설정

  1. GitHub에서 새 리포지토리 생성: 예) roblox-devlog
  2. Settings > Pages로 이동
    • Source: main branch, /docs 폴더 지정
    • 저장소 주소: https://yourname.github.io/roblox-devlog
  3. /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 전송)

응용 아이디어

목적 활용 방식
✍️ 개발 회고 자동화 주석으로 남긴 히스토리 자동 요약
🧪 테스트 기록 자동 생성 테스트 루틴 내 주석만 수집
📘 문서 자동 생성 코드 주석 기반 기능 설명 문서 생성
728x90
그리드형(광고전용)

댓글