안 보고 후회!비밀 게임 서버 개발
는 얼마 전에 출시 되 었 고 시장 기 대 를 계속 초과 하여 좋 은 수익 도 있 을 것 이 라 고 믿 었 다.게임 이 재 미 있 습 니 다.모든 게이머 들 이 전단 지 를 보 았 지만 게임 을 하 는 것 은 배경 게임 서버 의 지원 과 떨 어 질 수 없습니다.서버 는 무엇 을 해 야 합 니까?서버 의 구조 가 무엇 인지,어떤 기술 이 필요 합 니까?일련의 문 제 는 생각해 본 적 이 있 습 니까?서버 개발 에 필요 한 일 을 말씀 드 리 겠 습 니 다.
1.흔 한 게임 모듈
게임 방법
게임 개발 에서 흔히 볼 수 있 는 게임 모듈 은 일반적인 게임 에 이런 게임 방법 이 포함 되 어 있다.
초보 가이드,퀘 스 트 시스템,가방 시스템,장비 시스템,던 전,전투 시스템,이벤트,상점,충전,경기장,길드 시스템,친구 시스템,채 팅 시스템,메 일 시스템,레 드 포인트 시스템 등
유 니 버 설 모듈
오류 보고 메커니즘
합복
백그라운드 관리 시스템 운영
4.567917.하 가 활동 발표공고
메 일 을 보내다
게임 자원 동결
계좌번호
현재 온라인 인원수 조회
2.개발 언어 및 프로젝트 구축 발표
일반 게임 서버 는 C++,nodejs,photon,JAVA 등 언어 개발 을 사용 합 니 다.엔 드 게임 은 일반적으로 C++를 선택 합 니 다.엔 드 게임 은 서버 의 성능 에 대한 요구 가 상대 적 으로 높 기 때문에 언어 는 각각 장단 점 이 있 고 C++효율 이 높 지만 파악 도가 어렵 습 니 다.JAVA 는 쉽게 파악 하고 개발 효율 이 있 습 니 다.현 재 는 빠 른 상 승 률 을 추구 하 는 페이지 게임 과 모 바 일 게임 에 있어 서JAVA 는 좋 은 선택 이 되 었 습 니 다.다음은 주로 JAVA 프로젝트 로 서버 각 모듈 간 에 어떻게 상호작용 을 하고 어떻게 분업 하 는 지 설명 합 니 다.프로젝트 는 maven 프레임 워 크 로 구축 되 고 프로젝트 의존 관 리 를 간소화 합 니 다.jar 패 키 지 는 지속 적 인 통합 도구(jenkins)와 통합 하여 svn 을 발표 할 수 있 습 니 다.일반적으로 게임 서버 의 구 조 는 다음 과 같은 3 층 으로 나 눌 수 있 습 니 다.네트워크 접속 층,게임 논리 층,데이터 저장 층 입 니 다.
네트워크 접속 층
통신 에 있어 Netty 프레임 워 크 를 사용 하고 주로 각종 물리 적 바 텀 통신 체 제 를 밀봉 하여 응용 프로그래머 가 업무 논리 에 관심 을 가지 도록 한다.프로 토 콜 데 이 터 는 protobuf 를 사용 합 니 다.Protobuf 는 더욱 높 은 메시지 압축 률 을 가지 고 시간 효율 과 공간 효율 이 크게 향상 되 었 습 니 다.다 중 언어,크로스 플랫폼 을 지원 합 니 다.
데이터 캐 시 및 저장 소
시장 에서 사용 하 는 게임 에 사용 되 는 데이터 베 이 스 는 대부분 다음 과 같은 몇 가지 이다.
MySQL,MongoDB, Redis
게임 서버 가 모두 데이터 베 이 스 를 갖 추고 있 는 것 은 게임 이 갈수 록 복잡 해 지고 데이터 의 양도 갈수 록 많아 지기 때 문 이 며 데이터 베 이 스 를 이용 하 는 것 도 데이터 에 대한 관리 와 백업 에 편리 하기 때문이다.my sql 은 주로 일부 게임 에서 게이머 데 이 터 를 저장 합 니 다.redis 는 주로 크로스 서버 데 이 터 를 저장 합 니 다.예 를 들 어 크로스 서버 랭 킹 데이터 의 실시 간 순위 나 데이터 의 캐 시 등 입 니 다.
게임 에서 게이머 들 의 데 이 터 는 신속하게 응답 하고 피드백 해 야 합 니 다.일반 게임 에서 대부분의 데 이 터 는 캐 시 되 어 있 습 니 다.게임 에서 게이머 들 이 발생 하 는 데이터 변화 입 니 다.보통 게이머 들 의 캐 시 데 이 터 를 수정 하고 일정 시간 후에 캐 시 데 이 터 는 정기 적 으로 데이터 베 이 스 를 대량으로 기록 합 니 다.장기 적 으로 사용 하지 못 하 는 캐 시 를 정리 하고 메모리 공간 을 줄 일 것 입 니 다.
게임 논리 층
서버 각종 모듈 소개:
모듈 이름
기능 유형
기능 설명
yyds-all
maven 부모 기능
모듈 관계 관리,maven 설정
yyds-core
공통 모듈
게임 업무 와 무관 한 공공 코드.
yyds-common
기초 모듈
게임 업무 관련 공공 코드.
yyds-game
게임 복
게임 업무 처리 논리(게임 과 채 팅 업무,채 팅 메 시 지 는 게 이 트 웨 이 를 통 해 전달)
yyds-gate
게 이 트 웨 이
클 라 이언 트 연결 을 유지 하고 메 시 지 를 전달 합 니 다.
yyds-scene
필드 웨 어
지도 관련 업무 처리(이동,시야 동기 화)
yyds-web
WEB 서버
로그 인,창 각,충전,GM 명령,운영 백 스테이지 조작 입구.
yyds-platform
크로스 서버
게임 복 간 의 소식 이 전 환 됩 니 다.전 서버 게임 방법 입 니 다.
yyds-fighter
전투 복
전투 논리 처리
서버 구조:
주:플랫폼 은 여러 게임 복 과 연결 되 어 있 습 니 다.
절차 설명:
로그 인 절차:유저 가 로그 인 할 때 먼저 웹 서버 를 연결 하여 로그 인 합 니 다.인증 이 성공 하면 유저 가 로그 인 한 token 을 Gate 서버 에 넣 습 니 다.그리고 게 이 트 서버 를 연결 하여 게임 복 에 로그 인 합 니 다.
전투 절차:유 저 는 게임 복 에서 전 투 를 시작 합 니 다.예 를 들 어 전투 와 일치 하면 게임 복 에서 일치 합 니 다.그리고 Fighter 전투 복 에 보 내 전 투 를 진행 합 니 다.이때 모든 전투 소식 은 게 이 트 복 에서 Fighter 복 으로 직접 이동 합 니 다.전투 결 과 는 게임 복 에 보 낸 다음 에 보상 등 순찰 집 을 진행 합 니 다.
유저 이동 절차:유저 이동 정 보 는 Scene 복 에 동기 화 되 고 Scene 복 은 각 프레임 마다 모든 유저 에 게 동기 화 됩 니 다.
3.JAVA 게임 서버,파악 해 야 할 기술
자바 기초 지식
자바 NIO 프로 그래 밍
4.567917.다 중 스 레 드 프로 그래 밍,동시 집합 에 대한 파악,게임 에서 많은 동시 다발 사건 이 있 고 안전성 이 특히 중요 하 다열 업데이트,메모리,CPU 성능 분석Netty,Mina 네트워크 프레임 워 크 는 일종 에 정통 하 다Redis,memcache,MongoDB 등 단 용 또는 조합 사용SQL 언어,데이터베이스:mysql데이터베이스 조작,예 를 들 어 mybatis,Hibernate
게임 서버 는 모든 유 저 를 대상 으로 해 야 하기 때문에 서버 의 안정성 에 대한 요구 가 비교적 높 기 때문에 항상 문제 가 발생 할 수 없고 개발 에 있어 세심 해 야 한다.
기 획 된 디자인 은 항상 천마 행 공 이기 때문에 서버 의 기능 확장 성 을 고려 하여 코드 를 적 게 쓰 는 상황 에서 기능 을 완성 하도록 해 야 한다.
서버 프로그램의 개발 속 도 는 매우 중요 하 므 로 모듈 의 유 니 버 설,기능 의 확장 성 을 고려 하여 bug 가능성 을 최대한 낮 추고 합 리 적 으로 디자인 해 야 합 니 다.
서버 학생 들 은 갈 길이 멀 기 때문에 끊 임 없 는 학습 과 경험 을 쌓 아야 게임 의 기반 을 다 질 수 있다.
힘 내세 요.여러분 이 좋아 하 는 게임 을 하 시 길 바 랍 니 다.이 글 은 여기까지 입 니 다.도움 이 되 었 으 면 좋 겠 습 니 다.저희 의 더 많은 내용 에 관심 을 가 져 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (소프트웨어 편)하드웨어에서 MacBookPro를 Docker 호스트의 구성을 설명했습니다. Docker 컨테이너가 어떻게 작동하는지 정리합니다. 서비스를 편하게 구축하기 위해, Docker 컨테이너로 (거의) 모두를 구성하고 싶다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.