본문 바로가기

About my life/Development Studies

[GAME] 게임 개발 관련 지식

728x90
반응형

게임 엔진 : 게임 개발을 쉽게 할 수 있도록 만든 소프트웨어

ex) 물리법칙을 쉽게 구현 가능 , 애니메이션 쉽게 , 사운드 쉽게 , 다양한 도구들 쉽게 사용할 수 있도록 제공

ex) unity , android , UNREALㆍㆍㆍ

 

스마트폰 앱 종류

1. 네이티브 앱 : OS에 특화된 개발

(android , apple , kotlin , Java)

2. 크로스 플랫폼 : 빠른 개발 가능

(React Native, JS, Flutter)

3. 하이브리드 앱 : 빠른 개발 가능

(html, css , js)

 

실시간 전략 게임

1. 다중 플레이어 네트워킹

(Photon or Mirror 와 같은 네트워킹 엔진을 사용하여 데이터 통신 관리)

 

2. 게임 로직 처리

(플레이어들의 입력과 게임 로직을 처리하는 서버 사이드 로직을 구현)

 

3. 시간 제한

(일정 시간안에 선택을 완료하도록 함)

 

4. 상호작용 인터페이스

(게임 내에서 유저가 병사의 수 혹은 결과들을 확인할 수 있는 인터페이스 구현, 결과를 기다리는 인터페이스 등)

 

5. 결과 표시

(전쟁의 결과를 계산하고 표시)

 

6. 데이터 보안과 무결성

(서버와 클라이언트 간의 통신을 암호화, 게임 결과가 조작되지 않도록 데이터 검증 메커니즘을 구현)

 

7. 서버 확장성

(서버 아키텍처 고려, 필요에 따라 서버 자원을 확장할 수 있어야 함)

 

네트워킹 엔진 구조

1. Client-Server

  • 모든 클라이언트가 고정된 메인 서버에 접속
  • 서버가 바로 각각의 클라이언트 기기에 정보 자료 및 서비스를 제공하는 메인 장치
  • 서버 내에 모든 관련 자료를 기록
  • 요청한 클라이언트에게만 전송해주기 때문에 불필요한 자료 전송을 줄일 수 있음
  • 분산 시스템 가능, 중앙 집중화, 클라이언트 작업량 감소

2. Peer-To-Peer

  • 정보 처리 및 전송에 필요한 독립된 서버가 필요하지 않음
  • 하나의 기점을 가상의 호스트로 만들어서 시스템을 동기화함
  • 사용자의 입력값만 알면 변동된 데이터를 연결된 다른 모든 클라이언트로 전송하고, 다른 클라이언트에서 전송한 데이터를 처리 및 피드백
  • 신속한 데이터 전송, 안정적인 네트워크 연결

 

Android Studio

  1. 프로젝트 만들기
  2. 작업 속도 높이기, 양질의 코드 작성 , UI 디자인 , 서로 다른 기기 유형에 맞는 리소스를 만들어줌
  3. Android 지원 기기에서 설치하고 실행할 수 있는 디버그 가능한 APK 패키지로 프로젝트를 빌드
  4. 앱 성능을 최적화하기 위해 디버그 및 테스트 함 (메모리 사용량, 트래픽, CPU 등)
  5. Google Play store에 게시

Android Studio 프로젝트

  • 앱을 위한 작업공간을 정의하는 모든 항목이 포함됨

Module

  • 소스 파일 및 빌드 설정으로 구성된 모음
  • 라이브러리 모듈 , 기능 모듈 , 앱 모듈
  • ex) dependencies { implementation project(':my-library-module')} -> 라이브러리 모듈을 생성하여 이를 종속 항목으로 Android 앱 모듈에 추가하려고 하는 경우 선언하는 문장

프로젝트 파일

  • 디스크에 있는 실제 파일 계층 구조를 반영하지는 않음
  • 파일 형식별로 정리되어있고 , 특정 파일이나 디렉터리는 숨겨짐
  • 프로젝트의 모든 빌드 관련 구성 파일을 Gradle Script 그룹에 표시
  • res 는 코드가 아닌 모든 리소스 (문자열, 비트맵 이미지 등)를 포함

 

 

 

 

 

 

 

728x90
반응형