ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OpenSource] Unlight 오픈소스 게임 - install
    OpenSource 2024. 1. 14. 20:00

     

    어렸을때 재미있게 했던 게임인데 당시에 네이버에서 웹게임으로 실행했었던 기억이난다.

    현재 한국에는 운영하는 서버가 없고 대만에는 한군데 있는걸로 보인다.

    adobe flash를 통해서 구동이 됬는데 현재는 보안 이슈로 adobe flash는 개발과 사용이 중단 됬다.

     

    0. 레포 주소

    오픈소스로 공개 됬는데 도커 방식이 편하기 때문에 도커를 통해서 install 하겠다.

     

    https://github.com/open-unlight/legacy-unlight-docker

     

    GitHub - open-unlight/legacy-unlight-docker: Use docker to package official version Unlight server

    Use docker to package official version Unlight server - GitHub - open-unlight/legacy-unlight-docker: Use docker to package official version Unlight server

    github.com

     

    도커이미지로 빌드 되어서 로컬에는 설치할게 많이 없다.

     

    설치환경 : ubunutu 22.04 LTS

    코드 에디터 : Vscode

    OCI CRI : Docker 19.03+, Docker Compose 1.24+

    그 외에 필요한 툴 : git, make

    1. 깃 레포 클론

    레포에서 코드의 https 정보를 복사한다.

     

    깃 레포 클론

    저장한 로컬 위치에 clone 명령어 실행

    git clone https://github.com/open-unlight/legacy-unlight-docker.git

     

    2. 깃 서브 모듈 추가

    // 레포 디렉토리 이동
    cd legacy-unlight-docker
    
    // 서브 모듈 생성
    git submodule init
    
    // 서브 모듈의 하위도 생성
    git submodule update --recursive

     

    서브 모듈 추가 명령어 실행

     

    assets 파일과 src에 이미지랑 swf 파일이 있기 때문에 위 명령어로 서브모듈을 필수로 받아야한다.

    3. 폰트 추가

    github 레포에 제공되지않아서 별도로 찾아서 다운 받아야하며 폰트는 3가지가 필요하다. 

    cwming.ttf (cwTeXMing 明體), wt004.ttf (王漢宗特明體), nbr.ttf

    wt004.ttf, nbr.ttf는 구했는데 cwming.ttf는 못 구해서 얼추 비슷해보이는 중국 폰트 하나를 끼워서 파일명을을 동일하게 변경하여
    legacy-unlight-docker/fonts 위치에 이동시킨다.

     

    주의할 점이 있는데 폰트 용량이 너무 크면 컴파일시 오류가 stack over flow 에러가 나서 10MB 밑의 폰트로 넣어야 안전하다.

     

    4. 언어 설정

    // 언어 설정 - 다른 언어는 에러가 나고 tcn(대만)만 가능
    // 추후에 action script에서 일부 수정은 가능하다.
    cp compile.env.example compile.env

    5. 클라이언트 생성

    make client

     

    최종적으로 클라이언트가 생성이 되면 아래 와같이 마지막에 Unlight.swf 파일이 생성된게 확인된다.

    legacy-unlight-docker/dist 이경로에 Unlight.swf 파일이 하나 생성된것을 확인 할 수 있다.

     

    legacy-unlight-docker/dist/Unlight.swf 파일 생성

    6. 서버 생성

    // db 계정 정보
    cp server.env.example server.env
    
    // 서버를 빌드한다.
    make setup

     

    빌드하면 아래와 같이 에러가 발생하는데 도커허브에서 auth server를 받아오려 하는 부분에서 이미지에 대한 권한이 없다고 나온다.

     

    auth server Error

     

    제작사의 private 허브 이미지인것 같은데 이 부분은 기존 계정들을 업데이트 하는 부분으로 추정되는데 제거해도 상관 없는 부분이다.

    legacy-unlight-docker/Makefile을 GUI 혹은 CLI 편집기로 열어서 아래 빨간 박스 부분에 해당되는 2줄을 제거한다.

     

    Makefile 에서 auth server 관련 항목 제거

     

    수정 후에는 다음과 같이 정상 빌드 정보를 확인 할 수 있다.

     

    정상 서버 이미지 빌드

    7. 서버 구동

    // legacy-unlight-docker에서 다음 명령어를 실행한다.
    // db, memcached, server 여러개를 구동한다.
    make start
    
    // make setup 루비 코드 수정후 서버 이미지 반영시 실행
    // make start 서버 실행
    // make stop 서버 중지
    // make restart 서버 재실행

     

    마찬가지로 서버를 단순히 실행 하면 아래와 같이 에러가 발생한다.

    6번 auth server 에러와 같이 private 허브에서 도커 이미지를 받아서 실행하려 하기 때문인데 우리는 권한이 없어서 pull이 불가능하다.

     

    docker compose error

    위 문제를 해결하기 위한 방법

    legacy-unlight-docker/docker-compose.yml을 GUI 혹은 CLI 편집기로 열어서 3번째줄에 image: 의 값을 수정해준다.

    unlight-sever -> openunlight/legacy-server로 변경한다.

     

    docker compose 파일의 이미지 수정

     

    이렇게 이미지를 변경한 이유는 legacy-unlight-docker/Makefile을 보면 아래와 같은 이미지로 이미지를 빌드했기 때문이다.

    cli에 docker images를 입력해 보면 생성된 이미지를 확인 할 수 있다.

     

    아까 생성한 server 이미지 명

     

    다시한번 make start를 통해서 서버를 실행하면 정상 구동 됨을 알 수 있다.

     

    Make 실행

    8. 게임 구동

    클라이언트 파일을 먼저 옮겨야한다.

    legacy-unlight-docker/dist 경로에 Unlight.swf, index.html 2개 파일을 legacy-unlight-docker/src/app/client로 이동 시킨다.

     

    Vscode를 실행 시켜서 legacy-unlight-docker/src/app/client를 연다.

    좌측 플러그인에서 Live Server를 검색 후 설치한다.

    우측하단에 Go Live를 실행하면 legacy-unlight-docker/src/app/client 위치에있는 index.html을 실행 시킨다.

     

    index.html

     

    자동으로 기본으로 설정된 브라우저가 열리는데 플래쉬가 제대로 지원 되지않기 때문에 크롬을 닫는다.

     

    크롬에서 실행시킨 화면

    9. 브라우저 설치

    일반 브라우저에서는 보안 이슈로 adobe flash를 지원하지 않기 때문에 별도의 브라우저 사용이 필요하다.

     

    플래쉬 브라우저 다운로드 페이지

    https://flash.pm/browser/

     

    Flash Browser – Web Browser build for Flash Player

    Cross Platform FlashBrowser is available for Windows, MacOS and Linux users. It offers a modern Chrome like tab navigation

    flash.pm

     

    리눅스 유저는 여기서 zip파일을 다운 받아서 풀어서 사용한다.

    https://github.com/radubirsan/FlashBrowser/releases/tag/v0.01

     

    Release v0.01 FlashBrowser Linux · radubirsan/FlashBrowser

    initial test release for Linux need help packaging it for now users can run it by marking it as executable then running opening terminal and running . /FlashBrowser or .\FlashBrowser

    github.com

     

    zip파일을 풀고 디렉토리로 이동하면 FlashBrowser가 보이는데 클릭하여 실행한 후 

    작은 URL 창이 하나 나오는데 http://localhost:5500을 입력하면 접속이 가능하다.

    (단 Vscode에 live server가 켜있어야한다)

    Flash Brwoser 실행창

    다시한번 Flash Browser로 실행한 화면

    알림은 코드를 수정하면서 찍어본거기 떄문에 안나올 것이고 전부 대만어로 출력이 된다.

    http://localhost:5500 클라이언트 화면

    최종적으로 언라이트 게임 구동에 완료했다.

     

    오픈소스로 공개된 상태여서 집에서 혼자 구동해보거나 홈서버에서만 배포해서 플레이한다면 큰 문제는 없을 것 같다.

    'OpenSource' 카테고리의 다른 글

    [OpenSource] Unlight 오픈소스 게임 - play  (0) 2024.01.15

    댓글

Designed by Tistory.