게임 서버 구축 (8)

jw·2023년 11월 28일
0

게임 서버 구축

목록 보기
9/19
post-thumbnail

2차 회의 (11/23)

서버 컨셉

보통 주말에 진행하지만, 일정을 맞춰 이번주는 목요일에 진행하였다.
회의 이전에 서버 컨셉을 정하였는데, 우리 서버는

동물의숲 같은 느낌으로 현실성이 많이 반영된 경제 서버 느낌으로 컨셉을 잡았다.

2차 회의 진행사항

회의 전에 각자 얘기했던대로 컨셉에 맞는 플러그인 찾고, 연동해서 호환성 체크와
플러그인 중 외부 DB Export를 지원하는 플러그인은 외부 DB에 연동하여 내보내기 해보았다.

  • 다들 아침부터 고생이 많다!

플러그인 연동

이전 글에서 얘기했던대로 회의 전까지 모았던 플러그인들을 모두 서버에 다운로드 받았다.
다운받은 플러그인 목록들은 다음과 같다.

플러그인 목록

  • 에센셜 : 서버 운영에 필요한 기본적인 기능들이 들어있음 ex) 플레이어 관리, 맵 블럭 보호 등
  • WordEdit : 명령어를 사용하여 특정 블럭들을 한번에 설치할 수 있게하는 플러그인. 건축 시 용이
  • LightEconomy : 경제 기반 플러그인. 돈 개념이 생기며, 입금, 개인 계좌, 출금 등 게임 내에서 다양한 거래에 사용할 수 있음
  • VoLT : LightEconomy 등 경제 기반 플러그인의 기반을 담당하는 의존성 플러그인. 경제 기반 플러그인들을 하나로 묶어주는 플러그인 개념
  • Vegas : (해당 관련 단어를 넣으면 글이 자동 비공개 처리되어 설명 생략.. 사행성이라 판단하나?)
  • Login : 로그인 플러그인. 게임 접속 시, 클라이언트 내에서 로그인을 해야 게임 접속 및 이용이 가능하게 하는 플러그인. 같은 이름으로 접속하는 것 방지.
  • ViaBackwards : 게임 버전 호환 플러그인. 마인크래프트의 경우 다양한 버전이 존재하는데, 현재 우리 서버는 가장 최신 버전인 1.20.2 버전을 이용하고 있음. 해당 플러그인을 사용할 경우 1.20.2 이전 버전 클라이언트로도 서버에 접속 가능. 하지만, 접속만 가능하고 게임 이용 과정에서 특정 블럭이 안보이는 등 버그가 있을 수 있음. (서버 버전보다 더 높은 버전으로 접속하게 하는 ViaForwards 플러그인도 존재하지만, 현재 서버가 최신 버전이므로 ViaForwads는 설치하지 않았음)
  • Viaversion : ViaBackwards 플러그인이 클라이언트 버전끼리의 호환성을 맞춰주는 플러그인이라면, Viaversion 플러그인은 플러그인 끼리의 버전을 맞춰주는 플러그인 (말이 너무 어렵네..). 서버 필수 플러그인 중 하나.

플러그인 적용 - 1


서버에 SFTP를 이용해 접근한 파일 내부 화면이다.
플러그인들을 저장하는 plugins 폴더에 접근


jar 확장자명의 java 파일을 plugins 폴더에 넣은 후, 서버를 실행하면
다음과 같이 압축이 해제된 폴더들이 생성된다.


서버 실행 후, 지난번 디스코드 환경에 연동해둔 서버 로그 일부를 캡쳐한 화면이다.
플러그인을 추가로 설치해주었기에, lightEconomy, ViaVersion 등 설치한 플러그인들에 대한 로그도 추가로 뜨는 것을 확인할 수 있다.

적용 결과 - 1

인게임에 접속해서 확인해보았다.


접속한 후 가장 먼저 달라진 것은 로그인 기능이 생겼다는 것 이다! 채팅이 위로 밀려서 잘 안보이지만, Vegas 개발자들의 디스코드 url도 보인다. 현재 접속자 수도 보인다.

채팅창에
'Please register using /register < password >' 라는 문구가 뜬다

/register 기능을 통해 계정을 생성하면, 다음 접속부터는 Login 기능을 이용하여 접속 가능하다.

그리고 로그인을 하지 않은 상태로 뭔가 동작을 수행하려 하면, 아예 움직이지 않고 조작도 불가능하다. (기능 확실하네...)


Vegas 플러그인 모습. 설명은 생략 (위의 이유와 같다)


/help 명령어를 사용하면, 현재 서버 내에서 사용할 수 있는 command 들을 확인할 수 있다.
이전에는 12페이지 정도밖에 없었던 것 같은데, 37페이지로 늘어났다.


관리자 모드인 op 권한을 가지고 접속하면, 로그인을 할 필요없이 조작할 수 있는 것도 확인했다.

이외에도 플러그인 명령어 및 기능들 모두 확인해보았고, 다행히 특별히 호환성 문제 없이 잘 적용되는 것을 확인할 수 있었다. 하지만, 이건 기본적인 플러그인들이고.. 서버에 데이터가 쌓이고, 업데이트하고, 더 많고 복잡한 플러그인들을 설치하다보면 충돌이 나는 경우가 꽤 있다고 한다. 현재 테스트 서버에서 작업 중이라 지금은 그닥 신경쓰지 않고 진행하지만, 이후 서버 업데이트 및 패치시에는 백업을 확실하게 하고 진행해야 할 것 같다.

플러그인 적용 - 2

팀원 중 한명이 추가로 플러그인 내부 코딩을 해왔다. (코딩이라고 하기에는 간단한 번역 정도이다) 경제 플러그인인 lightEconomy 플러그인을 일부 수정해왔다고 한다. 사실 플러그인 코딩은 이후 Backend 부분에서 진행하겠지만, 해왔다고 하니 적용을 안 해보고 넘어갈 수는 없지 않은가! 서둘러 적용해보았다.


plugins 폴더 내부의 lightEconomy 플러그인 폴더 내부이다.
messages.yml 파일을 수정했다고 한다. 해당 파일은 명령어 입력시 나오는 문구, 아이템 문구 등을 담고 있다.


일부분을 캡쳐해왔다.

따로 코딩을 하지는 않았고, 간단하게 수정하면 적용이 잘 되는지 확인하고 싶다 하여 기존 영어 메세지를 한글로 바꾸고, 일부 아이템 및 글자 색깔 등을 바꿔보았다고 한다.

영어가 아닌 한글이 들어갔기 때문에, SFTP로 수정된 파일로 대체 시 UTF-8 인코딩을 통해 보내주었다.

적용 결과 - 2


인코딩 과정에서 다소 문제가 있었다.. 약간 시간이 걸렸지만, 적용이 잘 된 모습을 확인했다.

고찰

앞서 언급했던대로, 플러그인 호환성 체크는 서버를 운영하며 수시로 체크해야 할 것 같다.

여러개의 플러그인을 한 번에 설치하다보면, 어떤 부분에서 충돌이 났는지, 뭘 깔아서 이렇게 된건지 알아보기 어렵기 때문에, 플러그인 1개 설치에 백업 한 번씩. 뭐 이런 식으로 그 기준을 잘 세워둬야 할 것 같다.

추가로, Minecraft는 대부분 Java 코드로 이루어져 있다. 사실 플러그인을 건드리지 않고, 수정하더라도 간단하게만 수정해서 사용하려고 했는데.. 이게 막상 이렇게 한글로 잘 적용이 되는 것을 보니 뭐랄까 굉장히 뿌듯했다. 인프라 구축 이후부터는 팀원 모두 Java 공부도 병행하며 플러그인 수정, 필요하다면 플러그인 제작까지도 해보기로 했다.

글이 길어진 관계로, DB 부분은 다음 글에서 다루겠다.

profile
『Infra Engineering』

0개의 댓글

관련 채용 정보