Show HN: 저는 멀티플레이어 게임 개발을 위한 최초의 스크립팅 언어를 만들었습니다.

hackernews | | 🔬 연구
#review #showhn #게임개발 #멀티플레이어 #스크립팅언어 #프로그래밍
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

멀티플레이어 UGC 게임 플랫폼 'All Out Games'의 개발자는 크리에이터가 네트워킹을 고려하지 않고도 게임 메커니즘을 제작할 수 있도록, 롤백 및 재시뮬레이션을 기반으로 하는 맞춤형 스크립팅 언어를 개발했습니다. 이 언어는 메모리를 직접 제어하여 서버와 클라이언트 간의 상태 차이(diff)를 효율적으로 동기화하며, iOS의 정책을 준수하기 위해 인터프리터 방식으로 실행되는 타입 안전성을 갖추고 있습니다. 개발자는 기존 언어들이 자동화된 네트워킹과 메모리 관리 요구사항을 충족시키지 못해 직접 언어를 제작하게 되었다고 밝혔습니다.

본문

Your first script (main.csl ) main.csl )import "core:ao" // ============================================================================ // Global lifecycle // ============================================================================ ao_before_scene_load :: proc() { // Register item definitions, currencies, etc. // Runs before the scene is created. } ao_start :: proc() { // Called once when the scene starts. } ao_update :: proc(dt: float) { // Called every frame. } ao_late_update :: proc(dt: float) { // Called every frame after ao_update. } // ============================================================================ // Player lifecycle // ============================================================================ Player :: class : Player_Base { ao_start :: method() { } ao_update :: method(dt: float) { } ao_late_update :: method(dt: float) { } ao_end :: method() { } } Imports Declarations (variables and constants) Variables Constants Types Primitive types Vector types Structs and classes Structs (value types) Classes (reference types) Inheritance Procedures and methods Procedures (proc ) proc )Methods (method ) method )Field access vs method calls Arrays Control flow If / else Switch While / for / foreach Casting Passing by reference: ref (preferred) ref (preferred)Callbacks: function pointers + userdata (no closures) Type info (types as values) Best practices (CSL in All Out) Last updated

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →