안 보고 후회!비밀 게임 서버 개발

머리말
는 얼마 전에 출시 되 었 고 시장 기 대 를 계속 초과 하여 좋 은 수익 도 있 을 것 이 라 고 믿 었 다.게임 이 재 미 있 습 니 다.모든 게이머 들 이 전단 지 를 보 았 지만 게임 을 하 는 것 은 배경 게임 서버 의 지원 과 떨 어 질 수 없습니다.서버 는 무엇 을 해 야 합 니까?서버 의 구조 가 무엇 인지,어떤 기술 이 필요 합 니까?일련의 문 제 는 생각해 본 적 이 있 습 니까?서버 개발 에 필요 한 일 을 말씀 드 리 겠 습 니 다.
1.흔 한 게임 모듈
게임 방법
게임 개발 에서 흔히 볼 수 있 는 게임 모듈 은 일반적인 게임 에 이런 게임 방법 이 포함 되 어 있다.
초보 가이드,퀘 스 트 시스템,가방 시스템,장비 시스템,던 전,전투 시스템,이벤트,상점,충전,경기장,길드 시스템,친구 시스템,채 팅 시스템,메 일 시스템,레 드 포인트 시스템 등
유 니 버 설 모듈
  • 정시 작업,정기 이벤트 리 셋 처리,랭 킹 보상 등
  • 로그 인,정상 번호,오프라인,단선 재 접속 처리민감 어 검 측,판 서 필요로그 시스템,유저 행동 로그 기록,보상 로그 등4.567917.기능 이 켜 지면 닫 히 고 가끔 게임 에 문제 가 생 긴 후에(예 를 들 어 브러시 보상)지정 한 기능 은 제때에 닫 아야 합 니 다드 랍,보상 랜 덤 규칙4.567917.몰입 방지 시스템,주로 미성년 자 보호 규칙채 팅 모니터링
    오류 보고 메커니즘
  • 아 이 템 카드 교환,초대 번호
  • 여름 캠프 문제 처리
  • 끊임없이 열 을 복용 하 는 온라인 코드
  • 긴급 하 가 운영 활동
    합복
    백그라운드 관리 시스템 운영
    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
  • spring,springMvc 는 http 프로 토 콜 의 WEB 서버 에 주로 사 용 됩 니 다
  • tomcat,Nginx
  • 리 눅 스 가 자주 사용 하 는 기본 명령 및 셸 스 크 립 트(서버 발표,시작 종료)4.총화
    게임 서버 는 모든 유 저 를 대상 으로 해 야 하기 때문에 서버 의 안정성 에 대한 요구 가 비교적 높 기 때문에 항상 문제 가 발생 할 수 없고 개발 에 있어 세심 해 야 한다.
    기 획 된 디자인 은 항상 천마 행 공 이기 때문에 서버 의 기능 확장 성 을 고려 하여 코드 를 적 게 쓰 는 상황 에서 기능 을 완성 하도록 해 야 한다.
    서버 프로그램의 개발 속 도 는 매우 중요 하 므 로 모듈 의 유 니 버 설,기능 의 확장 성 을 고려 하여 bug 가능성 을 최대한 낮 추고 합 리 적 으로 디자인 해 야 합 니 다.
    서버 학생 들 은 갈 길이 멀 기 때문에 끊 임 없 는 학습 과 경험 을 쌓 아야 게임 의 기반 을 다 질 수 있다.
    힘 내세 요.여러분 이 좋아 하 는 게임 을 하 시 길 바 랍 니 다.이 글 은 여기까지 입 니 다.도움 이 되 었 으 면 좋 겠 습 니 다.저희 의 더 많은 내용 에 관심 을 가 져 주세요!

    좋은 웹페이지 즐겨찾기