Releases
v1.0.0
Compare
Sorry, something went wrong.
No results found
MagicScript v1.0 릴리즈 노트
주요 기능
커스텀 스크립팅 언어: JavaScript와 유사한 문법의 DSL
완전한 컴파일러 파이프라인: 렉서 → 파서 → AST → 인터프리터
런타임 실행 환경: AST 기반 인터프리터, 재귀 호출 깊이 제한(64), while 루프 반복 제한(128)
비동기 지원: EventLoop 기반 setTimeout 비동기 작업 처리
복잡도 분석: 정적/동적 시간·공간 복잡도 분석 및 캐싱
네이티브 함수 통합: C++로 작성된 빌트인 함수 확장 가능
빌트인 함수
Console: console.log(), console.warn(), console.error()
Array: Array.push_back(), Array.push_front(), Array.pop_back(), Array.pop_front(), Array.length()
Math: math.pow()
Global: SetGlobalFloat()
Unreal Engine 통합
GameInstanceSubsystem: UMagicScriptInterpreterSubsystem으로 스크립트 실행 관리
스크립트 캐싱: 소스 코드, 파싱된 프로그램, 인터프리터 결과 캐싱
로깅 시스템: 스크립트 실행 중 로그 수집 및 델리게이트 지원
이벤트 루프 자동 업데이트: 서브시스템에서 자동 Tick 처리
기술 사양
지원 타입: Null, Number, String, Bool, Function, Array, Object
제어문: If, While, For, Switch
함수: 네이티브/스크립트 함수 지원, 재귀 호출 가능
스코프 관리: 렉시컬 스코프 기반 환경 관리
메모리 추적: 실행 중 최대 메모리 사용량 추적
사용법
스크립트 파일은 Content/Scripts/ 폴더에 .ms 확장자로 저장
C++에서 UMagicScriptInterpreterSubsystem::Get()으로 서브시스템 접근
RunScriptFile() 메서드로 스크립트 실행
OnScriptLogAdded 델리게이트로 로그 수신
You can’t perform that action at this time.