Server 11

멀티 플레이 게임서버 구현 4편: 지연 보정

들어가며 이 글은 https://www.gabrielgambetta.com/lag-compensation.html의 글을 공부하면서 옮긴 것으로, 번역과 의역이 섞여있습니다. 이전 3편에 걸친 글에서 다룬 클라이언트 - 서버 아키텍쳐에대한 설명은 다음과 같이 요약할 수 있습니다. 서버는 모든 클라이언트에서 타임스탬프와 함께 입력을 받습니다. 서버는 입력을 처리하고 월드 상태를 업데이트 합니다. 서버는 모든 클라이언트에게 정기적으로 월드 스냅샷을 전송합니다. 클라이언트는 입력을 전송하고 로컬에서 그것을 시뮬레이션 합니다. 클라이언트는 월드를 업데이트 받고 로컬에서 예측한 상태를 서버에서 받은 상태와 동기화 합니다. 다른 엔티티의 과거 상태를 보간합니다. 플레이어의 관점에서 이것은 2가지 중요한 결과를 가져..

멀티플레이 게임서버 구현 3편: 엔티티 인터폴레이션

들어가며 이 글은 https://www.gabrielgambetta.com/entity-interpolation.html의 글을 공부하면서 옮긴 것으로, 번역과 의역이 섞여있습니다. 이번에는 동일한 서버에서 다른 플레이어가 컨트롤하는 캐릭터에 대해서 탐구해보겠습니다. 서버 타임 스텝(Server time step) 이전 글에서 서버의 동작은 비교적 간단했습니다. 클라이언트가 주는 입력을 받아서 게임 상태를 업데이트하고 다시 돌려주면 되었죠. 하지만 여러 클라이언트가 연결된 경우, 메인 서버 루프는 다소 달라집니다. 이 시나리오에서는 여러 클라이언트가 동시에, 그리고 빠른 속도로 연이어 입력을 보낼 수 있습니다. 모든 클라이언트에서 입력이 수신될 때마다 게임 월드를 업데이트하고 게임 상태를 브로드캐스트 하..

멀티 플레이 게임서버 구현 2편: 클라이언트측 예측과 서버측 재조정

들어가며 이 글은 https://www.gabrielgambetta.com/client-side-prediction-server-reconciliation.html 글을 공부하면서 옮긴 것으로, 번역과 의역이 섞여있습니다. 이전 글에서는 권위 있는 서버와 입력만 서버로 보내고 서버가 업데이트된 게임 상태를 보낼 때까지 렌더링하는 멍청한 클라이언트를 가진 클라이언트-서버 모델을 알아보았습니다. 그러나 이런 시스템을 그냥 구현하게 되면 사용자 입력과 화면 변경 사이에 지연이 발생하게 됩니다. 예를 들어, 플레이어가 오른쪽 화살표 키를 누르면 캐릭터가 움직이기 시작하기 전에 0.5초 정도의 시간이 걸립니다. 이는 클라이언트 입력이 먼저 서버로 이동하고, 서버가 입력을 처리하고 새로운 상태를 계산하며, 업데이트..

[무료] 마인크래프트 서버 쉽게 열고 관리하기 - 초급편 (자바, 베드락)

⚠️ 들어가며 이글은 GCP로 마인크래프트 서버여는법 Step 6부터 시작합니다. 컴퓨터에 관한 지식이 거의 전무해도 따라할 수 있는 정도를 목표로합니다. 🐳 1. Docker 설치하기 Docker는 쉽게 말하면 컴퓨터안에 가상으로 컴퓨터를 띄울 수 있도록 해주는 프로그램입니다. 우리는 Docker로 마인크래프트 서버를 띄울 것입니다. 무슨말인지 모르셔도 상관없습니다! 앞선 글을 따라 Step6까지 진행하셨다면 터미널을 띄운 상태일 것입니다. * Ubuntu OS를 기준으로 합니다. sudo apt-get update && \ sudo apt-get install ca-certificates curl gnupg lsb-release -y && \ sudo mkdir -p /etc/apt/keyrings ..

[마인크래프트] server.properties 속성 총 정리

server.properties 파일에 대한 간략 설명 server.properties는 마인크래프트 서버 옵션을 설정할 수 있는 파일이다. 메모장, VS code등 일반적인 텍스트 에디터로 수정가능하다. 키와 값의 쌍으로 이루어져있으며 등호 뒤의 내용을 바꿈으로서 값을 바꿀 수 있다. allow-flight=true를 allow-flight=false 이렇게 말이다. 또한 #으로 주석처리를 할 수 있어서 메모하거나 백업용으로 쓸 수 있다. 아래는 그 예시. #max-players=999 max-players=20 # 복돌체크를 끈다. online-mode=false 변경 후 적용방법 서버 실행중에도 변경가능하며, 서버 재시작 또는 /reload 명령어를 통해서 바뀐 내용을 적용 시킬 수 있다. 속성들 ..

마인크래프트(Minecraft) 인원별 서버 사양 추천

마인크래프트 추천 서버 사양에 대해서 알아보도록 하겠습니다. 기본 사양 - (시야 10블록, 새 월드)을 기준으로 가정합니다. 모드나 플러그인을 많이깔거나, 블록 수가 많은 월드를 만들거나, 레드스톤 회로가 복잡하거나, 많은 플레이어를 수용하려할 수록 권장사양보다 약간 높게 잡으시는 것이 좋습니다. 사양 포인트 CPU 마인크래프트 프로세스는 싱글 코어에서 돌아가기 때문에 코어 수보다는 Clock speed를 보는게 좋습니다. CPU 플레이어 수 Intel Pentium 4 2.0GHz + AMD Atholon + 1~5명 Intel Pentium 4 2.8GHz + AMD Athlon XP 2600 + 5~10명 Intel Core + AMD K8 + 10~15명 Intel Core + AMD Ryzen..

(5) RESTful API 활용하기 - 웹편

글 목차(1) Node.js로 RESTful API 만들기 - POST편(2) Node.js로 RESTful API 만들기 - GET편(3) Node.js로 RESTful API 만들기 - PUT편(4) Node.js로 RESTful API 만들기 - DELETE편현재글 >> (5) RESTful API 활용하기 - 웹편(6) RESTful API 활용하기 - 안드로이드 앱편 (작성중) 이제 앞선 강의에서 만든 API 서버를 가지고 웹에서 요청을 날려볼 것이다.그러면 우선 웹을 만들어야 한다. 보통은 html을 만들지만, 이 강의에서는 쉽고 빠르게 작성하기 위해 pug 뷰 엔진을 사용하도록 하겠다. 프로젝트가 있는 경로에서 아래 명령어를 이용해 pug를 설치하자.npm install pug app.js그..

(4) Node.js로 RESTful API 만들기 - DELETE편

글 목차(1) Node.js로 RESTful API 만들기 - POST편(2) Node.js로 RESTful API 만들기 - GET편(3) Node.js로 RESTful API 만들기 - PUT편현재글 >> (4) Node.js로 RESTful API 만들기 - DELETE편(5) RESTful API 활용하기 - 웹편 (작성중)(6) RESTful API 활용하기 - 안드로이드 앱편 (작성중) * 프로젝트 세팅 과정은 (1) Node.js로 RESTful API 만들기 - POST편 을 참고하세요! DB Table: myGamesDB 상태는 저번 시간 그대로다. 이번 예제에서는 이 테이블에서 5번 title인 메이플스토리를 지워보는 시간을 갖도록 하겠다. ./routes/index.js라인은 많지만 ..

(3) Node.js로 RESTful API 만들기 - PUT편

글 목차(1) Node.js로 RESTful API 만들기 - POST편(2) Node.js로 RESTful API 만들기 - GET편현재글 >> (3) Node.js로 RESTful API 만들기 - PUT편(4) Node.js로 RESTful API 만들기 - DELETE편(5) RESTful API 활용하기 - 웹편 (작성중)(6) RESTful API 활용하기 - 안드로이드 앱편 (작성중) * 프로젝트 세팅 과정은 (1) Node.js로 RESTful API 만들기 - POST편 을 참고하세요! 이제 PUT이다! myGames 테이블 상태는 대략 이러한데,2번 title인 gta를 grand theft auto로 바꿔보는 실습을 해 보겠다. ./routes/index.js이제 코드가 조금 길어졌다..

(2) Node.js로 RESTful API 만들기 - GET편

글 목차(1) Node.js로 RESTful API 만들기 - POST편현재글 >> (2) Node.js로 RESTful API 만들기 - GET편(3) Node.js로 RESTful API 만들기 - PUT편(4) Node.js로 RESTful API 만들기 - DELETE편(5) RESTful API 활용하기 - 웹편 (작성중)(6) RESTful API 활용하기 - 안드로이드 앱편 (작성중) * 프로젝트 세팅 과정은 (1) Node.js로 RESTful API 만들기 - POST편 을 참고하세요! 이제는 GET 메소드를 작성 해 보겠다.작성에 앞서서, 나는 myGames 테이블에 데이터를 몇 개 채워 넣었다. ./routes/index.js이전에 썼던 returnResult() 함수는 이번에 res..