openworld.js의 역사를 간략히 소개

발행: (2025년 12월 31일 오후 11:42 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

Introduction

지난 며칠 동안 저는 멀티‑모델 작업을 진행하며 가능한 한 많은 대규모 모델을 구현하려고 했습니다. WebGL은 약 80 000개의 인스턴스 모델을 넘으면 지연이 발생하기 시작하므로, 메인 캐릭터가 멀리 이동할 때만 먼 콘텐츠를 동적으로 로드하도록 구현하고 있습니다.

Early Development

  • First publication – 저는 2025년 10월 18일경에 이 프로젝트를 중국의 Q&A 사이트인 Zhihu에 처음 공개했습니다. 원본 글은 여기에서 확인할 수 있습니다: https://www.zhihu.com/question/389957213/answer/1962681678376984942.
  • Idea – 많은 건물을 수용할 수 있는 3차원 세계를 만들고 싶었습니다.
  • Research period – 2025년 12월까지 간헐적으로 연구를 진행했으며, 그때 비로소 기능적인 프로토타입을 완성했습니다.

Technical Foundations

  • WebGL – 프로젝트는 WebGL을 사용해 작성되었습니다.
  • Initial framework – “코드‑골프” 전문가가 만든 프레임워크(https://xem.github.io/W)에서 시작했으며, 이 프레임워크는 단 2 KB만으로 세계를 렌더링한다는 점에 놀랐습니다.
  • Physics engine – cannon.js 물리 엔진을 추가하고 크게 압축했습니다; 현재 프로젝트에 사용되는 버전은 단 29 KB에 불과합니다.

Optimizations and Releases

  • May 2025 – JavaScript 초보자로서 연구를 시작하고 점진적으로 학습했습니다.
  • July 2025 – 온라인 필기 시스템 예시를 공개했습니다: https://git.ccgxk.com/myWorkSpace/webgl_show/cyber_city/cbcity.html.
  • August 2025 – 블록을 추가하는 간단한 프로그램을 만들었습니다.
  • September 2025 – 작업을 재사용 가능한 라이브러리로 전환하는 방안을 고민하기 시작했습니다.
  • October 2025 – 라이브러리를 완성했습니다.

Current Status

  • Domain – 2025년 11월 중순에 브랜드화를 위해 openworld.zone 도메인을 등록했습니다.
  • Progress – 미루는 시간도 있었지만, 지난 6개월 동안 프로젝트는 순조롭게 진행되고 있습니다.

Demo

프로젝트의 현재 상태는 여기에서 확인할 수 있습니다: https://ow.ccgxk.com/demo/dev001/

Back to Blog

관련 글

더 보기 »

JavaScript에서 비동기

🔴 동기식 일반적으로 하나의 작업이 끝난 뒤에야 다음 작업이 시작됩니다. javascript console.log'One'; console.log'Two'; console.log'Three'; 👉 출력 One Two...