모바일 게임을 할 때 트래픽을 최적화하는 방법
1) 트래픽을 최적화하는 이유
더 적은 지연 → 보다 안정적인 세션 및 더 높은 보류.
데이터 절약 → 사용자 비용 절감 및 "관세 인하" 위험.
빠른 시작 → 보풀/광고가있는 더 많은 게임 실행.
약한 네트워크에서의 신뢰성 (3G/cafe-Wi-Fi/로밍).
2) 실제로 볼 가치가있는 지표
FCP (First Contentful Paint )/LCP (Large Contentful Paint): 플레이어가 "톱" 할 때와 "재생할 수있을 때"
INP/TBT 인터페이스 응답.
트래픽/세션 (MB) 및 피크 비트 전송률.
RTT/지터/손실 (특히 라이브 게임/스트림의 경우).
캐시 히트-응용 프로그램/CDN의 요청 비율.
3) 네트워크 스택: 기본 위생
멀티플렉싱 및보다 강력한 패킷 손실 작업을 위해 상태를 설정하는 것을 사용하십시오.
TLS 세션 재개 및 0-RTT (H3) -핸드 채팅 감소.
DNS- 프리 페치/CDN과 게임 제공 업체에 미리 연결합니다.
유능한 캐시 정책: 'Cache-Control', 'ETag', 다양한 자산.
4) CDN과 지리
PoP를 사용자에게 더 가깝게하여 CDN에 정적 및 매체를 배치하십시오.
CNC (WebP/AVIF) 에서 이미지 크기 조정/' 수락 '기반 협상을 사용합니다.
라이브 비디오-가장자리의 다중 비트 전송률 프로필 (HLS/DASH).
5) 압축 및 형식 (실제로 수십% 절약)
이미지: WebP/AVIF + 'srcset/sizes', 스프라이트 및 SVG 아이콘.
글꼴: WOFF2, 원하는 글리프의 부분 집합, '글꼴 표시: 교환'.
비디오: H.264/HEVC/AV1 (사용 가능한 경우), 자동 재생 대신 포스터.
텍스트/JSON: Brotli
JS/CSS: 광화, 트리 쉐이킹, 코드 분할.
6) 게임 캔버스: 슬롯, 미니 게임, 캔버스/WebGL
적응 형 DPR을위한 렌더: 'devicePixelRatio' 한계는 1입니다. 모바일에서 5-2-선명도가 지속되고 트래픽/CPU가 떨어집니다.
텍스처 아틀라스 및 텍스처 압축 (지원되는 ASTC/ETC/BC) → 적은 다운로드.
"한 번에 모두" 가 아니라 레벨/화면에 걸쳐 자산을 게으르게 교환합니다.
"무거운" 그림자/필터를 제거하고 약한 장치에서 애니메이션 주파수를 30-45 fps로 제한하십시오.
iframe 슬롯의 경우: 가벼운 자산에 대해 공급자와 협상하고 중요한 자원 만 사전로드하십시오.
7) 라이브 게임 및 스트림: 통증없이 메가 바이트 절약
임계 값이 360p/480p/720p 인 적응 비트 전송률 (ABR); 너비/RTT 별 프로파일 선택.
Low-Latency HLS/DASH는 필요한 경우에만 가능합니다. 모든 사람에게 LLC를 활성화하지 마십시
음성에 대한 오디오 비트 전송률 64-96kbps로 충분합니다.
로비 오프 오토 플레이: 포스터/애니메이션 Google/웹 미리보기를 보여줍니다.
8) 실시간 커뮤니케이션
웹 소켓: 이진 프로토콜, 팩 메시지, 25-30 초마다 심장 박동.
WebRTC 데이터-좁은 경우에만 해당됩니다. 미디어에 관한 것이 아닌 경우 "불필요한" NAT 바이 패스를 피하십시오
페이로드 (프로토콜 버퍼/MessagePack) 를 압축하고 "지방" JSON을 구동하지 마십시오.
9) PWA/서비스 작업자: 모바일 교통위원회
App Shell: 헤더/탐색 및 스켈레톤-즉석 첫 화면을 캐시합니다.
런타임 캐싱: 사진의 경우 'Stale-While-Revalidate', TTL의 API의 경우 'Network First'
배경 동기화: 상호 작용을 차단하지 않고 지연된 원격 측정/로깅.
오프라인 폴백: 공허함 대신 이해할 수있는 화면 (배상 및 불필요한 요청 저장).
10) 스마트 다운로드 및 우선 순위
중요한 CSS 인라인, 요청시 나머지.
(PHP 3 = 3.0.6, PHP 4)
게으른로드 게임 목록 (팩당 20-30 장의 카드), '교차 관찰자'.
의도적으로 미리 가져 오기: 사용자가 카드에 머무를 때 → 게임 자산을 끌어 올립니다.
11) 청구 및 결제: 트래픽도 중요합니다
시스템 결제 대화 상자 (Apple/Google Pay) 사용-보다 경제적이고 지속 가능합니다.
결제 단계에서 리디렉션 및 추가 분석 픽셀을 최소화하십시오.
암호화 모듈에서 선택한 네트워크/코인 만 모든 네트워크/아이콘을로드하지 마십시오.
12) "글루 토니" 가없는 원격 측정 및 A/B
필요한 이벤트 만 수집하고 N 초/크기마다 한 번씩 배치하여 보냅니다.
prod의 디버그 로그를 끄고 이벤트의 필드를 잘라냅니다.
A/B 플래그-쉬운 원격 설정을 통해 메가 바이트 구성표를 당기지 마십시오.
13) 플레이어를위한 연습 (빠른 트래픽 승리)
iOS/Android에서는 데이터 보호기/트래픽 절약 기능을 사용하십시오.
가능하면 Wi-Fi 5/6을 통해 재생하십시오. 모바일 네트워크에서는 "1-2 스틱" 을 피하십시오.
설정에서 자동 재생 비디오/미리보기를 사용하지 않
Telegram 및 브라우저에서는 2 주마다 캐시를 지우지 만 자주 재생하기 전에는 지우지 마십시오 (캐시가 도움이됩니다).
응용 프로그램/PWA 업데이트를 추적하십시오. 새 버전은 종종 더 경제적입니다.
14) 개발자/제품 점검표 (한 페이지)
1. 모든 편지 선택 (C): 3, CDNA/게임 도메인에 사전 연결합니다.
2. 그림 크기 조정, AVIF/WebP, 텍스트 당 Brotli가있는 CDN입니다.
3. App Shell + SW: 오프라인 대체, 런타임-치, 배경 동기화.
4. 자산의 게으른 적재, 코드 분할, 중요한 CSS 인라인.
5. 다이나믹 DPR (λ2), 압축 텍스처, 약한 경우 30-45 fps.
6. 로비에서 ABR 비디오 너비/RTT 오프 자동 레이.
7. 포장 된 웹 소켓; 데이터에 대한 압축 프로토콜.
8. batchami에 의한 원격 측정; 비활성화 된 prod-debag.
9. 불필요한 리디렉션이없는 캐셔; 시스템 결제 대화 상자
10. 모니터링: LCP/INP/트래픽/세션, 캐시 적중, RTT/손실.
15) 빈번한 실수와 해결 방법
→ 목록의 비디오/스트림 자동 레이를 포스터/미리보기로 교체하십시오.
모든 장치에서 3 배 자산을 가져옵니다 → 'srcset '/DPR 프로파일을 사용합니다.
거대한 JS 번들 → 경로 분리, 사용되지 않은 덱의 제거.
제로 캐시 제어 → TTL/ETag 및 버전을 설정합니다.
채팅/원격 측정 스팜 → 배치는 심장 박동 간격을 증가시킵니다.
하나의 웹 소켓 채널 (게임 + 채팅 + 분석) 의 모든 것이 중요도에 따라 나뉩니다.
16) '날씨를 만드는' 미니 패턴
네트워크가 잘못된 라이브 테이블에서 "비디오 품질을 줄입니다" 버튼.
망막을로드하기 전에 게임에 대한 장소 보유자 커버.
마지막 세션 저장 (상태 캐시) -더 적은 재시도.
마지막 실행 테이블/슬롯에 대한 딥 링크 - 2 개의 화면과 1 개의 자산.
17) FAQ
트래픽 최적화 품질이 저하됩니까?
적응적으로 수행하는 경우 (DPR/ABR/' srcset ') -아니오: 장치 및 네트워크에 최상의 품질/속도 균형을 제공합니다.
모든 사용자가 Low-Latency 모드를 사용해야합니까?
아니요, 그렇지 않습니다. 트래픽이 비싸고 손실에 민감합니다. 토너먼트/라이브 케이스를 위해 떠나십시오.
기본 클라이언트 대신 PWA-아래 트래픽?
종종 예: 적은 SDK 및 배경 스레드와 SW 캐시. 그러나 구현에 따라 다릅니다
AVIF/WebP는 얼마를 절약합니까?
품질이 눈에 띄게 떨어지지 않는 평균 25-45% 대
우리는 항상 DPR을 낮춰야합니까?
약한 장치/낮은 네트워크에서 동적으로 감소; Wi-Fi 6의 플래그십에서는 2를 유지할 수 있습니다. 0.
트래픽 최적화는 "모든 것을 자르는 것" 이 아니라 장치, 네트워크 및 시나리오에 품질과 볼륨을 적용하는 것입니다. 고속 네트워크 스택 (HTT/3, CNC, 캐시), 스마트 자산 (WebP/AVIF, 질감, ABR), 깔끔한 캔버스 및 PWA 캐시를 결합하고 원격 측정 노이즈를 줄이며 빠른 다운로드, 안정적인 게임 플레이 및 유형의 데이터 절약을 얻습니다. 플레이어는 네트워크로 인해 덜 자주 떨어지고 더 자주 돌아오며 제품은 보존 및 인프라 비용에서 승리합니다.