π λ©ν°νλ μ΄μ΄ κ²μ μ΅μ νμ μ±λ₯ νλ – λΆλλ¬μ΄ κ²μ νλ μ΄ κ΅¬ν
λ©ν°νλ μ΄μ΄ κ²μμμ FPS μ ν, λ , λ²λ² κ±°λ¦Όμ νλ μ΄μ΄ κ²½νμ ν¬κ² ν΄μΉλ€.
μ΄λ² κΈμμλ Unityμ Photon κΈ°λ° λ©ν°νλ μ΄μ΄ κ²μμμ μ±λ₯ μ΅μ νμ νλ μ λ΅μ μ 리ν΄λ³΄κ² λ€.
1. μ±λ₯ λ³λͺ© μ§μ νμ
-
CPU: 물리 μ°μ°, AI, μ€ν¬ κ³μ°
-
GPU: λ λλ§, μ΄ννΈ, μμ΄λ
-
λ€νΈμν¬: ν¨ν· μ μ‘λ, RPC νΈμΆ λΉλ
Profiler μ¬μ© → λ³λͺ© κ΅¬κ° μ νν νμ
2. μ΅μ ν μ λ΅
2-1. μ€λΈμ νΈ κ΄λ¦¬
-
μ€λΈμ νΈ νλ§(Object Pooling) → Instantiate/Destroy λ°λ³΅ λ°©μ§
-
LOD(Level of Detail) → λ©λ¦¬ μλ μ€λΈμ νΈλ μ ν΄μλλ‘ λ λλ§
2-2. λ€νΈμν¬ μ΅μ ν
-
μμΉ/νμ λκΈ°ν → μΌμ κ°κ²© μ μ‘
-
μ΄λ²€νΈλ§ RPC μ μ‘ → λΆνμν λ°μ΄ν° μ μ‘ μ΅μν
-
Interpolation + Client Prediction → λΆλλ¬μ΄ μμ§μ
2-3. μ€ν¬λ¦½νΈ μ΅μ ν
-
Update() λ¨μ© λ°©μ§ → νμ μλ λ‘μ§ μ κ±°
-
FixedUpdate → 물리 μ°μ° μ§μ€
-
μ½λ£¨ν΄ νμ© → μ°μ° λΆμ°
3. κ·Έλν½ μ΅μ ν
-
μ΄ννΈ μ ν: νλ°, μ€ν¬ μ΄ννΈ κ³Όλν μ¬μ© μ ν
-
μμ΄λ μ΅μ ν: λͺ¨λ°μΌ/μ μ¬μ νκ²½μμ κ°λ¨ν μμ΄λ μ¬μ©
-
μΉ΄λ©λΌ λ·° μ΅μ ν: μμΌ λ° μ€λΈμ νΈ λΉνμ±ν
4. μλ² μ΅μ ν
-
μ€μ μ°μ° → μλ²μμ μ²λ¦¬, ν΄λΌμ΄μΈνΈ λ¨μν
-
ν¨ν· μμΆ → Bandwidth κ°μ
-
λ©ν° μ€λ λ© νμ© → μλ² λΆν λΆμ°
5. μ€μ ν
-
μ κΈ°μ μΌλ‘ Profiler + Network Stats νμΈ
-
νλ μ΄μ΄ μ μ¦κ° μ Stress Test μ§ν
-
λͺ¨λ°μΌ νκ²½ → λ°°ν°λ¦¬ μ¬μ©λ κ³ λ €, νλ μ μ ν(FPS cap)
6. λ§λ¬΄λ¦¬
λ©ν°νλ μ΄μ΄ κ²μ μ΅μ νμ μ±λ₯ νλμΌλ‘,
-
λΆλλ¬μ΄ FPS μμ ν
-
λ€νΈμν¬ μ§μ° μ΅μν
-
νλ μ΄μ΄ κ²½ν ν₯μ
μ΄μ 20κ°μ ν¬μ€ν
μ리μ¦κ° μμ±λμλ€.
κ° κΈμ κ°λ
+ μ€μ μ½λ + μ€μ© νμ ν¬ν¨νμ¬, λΈλ‘κ·Έ μ λ¬Έμ±κ³Ό μ€μ΅μ±μ λͺ¨λ 보μ¬μ€ μ μλ μ리μ¦λ€.
λκΈ
λκΈ μ°κΈ°