λ¨μΌ HTML νμΌ λ΄ Three.js κΈ°λ° 3D μμ§ λ° λ°νμ μ€λμ€ ν©μ± ꡬν
πΉοΈ SOLSTICE: Hold the Light Until Dawn - A 3D Browser Game for the June Solstice Jam
AI μμ½
Context
λ²λ€λ¬μ μΈλΆ μμ μμ΄ λΈλΌμ°μ μμ μ¦μ μ€ν κ°λ₯ν κ³ μ±λ₯ 3D κ²μ ꡬνμ΄λΌλ κ·Ήλ¨μ μ μ½ μν© μ§λ©΄. κΈ°μ‘΄μ μ μ μμ λ‘λ© λ°©μμ μ΄κΈ° λ‘λ© μλλ₯Ό μ νμν€κ³ λ°°ν¬ λ³΅μ‘λλ₯Ό μ¦κ°μν€λ νκ³ μ‘΄μ¬.
Technical Solution
- native importmapμ νμ©ν Three.js r160 λμ λ‘λ©μΌλ‘ λΉλ λ¨κ³ μ κ±° λ° λ°νμ μμ‘΄μ± ν΄κ²°
- Web Audio API κΈ°λ°μ μ€μκ° μ¬μ΄λ ν©μ± μμ€ν μ ꡬμΆνμ¬ μ€λμ€ νμΌ μμ΄ λͺ¨λ ν¨κ³Όμ μμ±
- Procedural canvas texture μμ± λ°©μμ ν΅ν μ΄λ―Έμ§ μμ μμ‘΄μ± μ κ±° λ° λ©λͺ¨λ¦¬ ν¨μ¨ μ΅μ ν
- Dawn meter(0.0 ~ 1.0) κ°μ κΈ°λ°μΌλ‘ Sky color, Fog, Sun angle λ± νκ²½ λ³μλ₯Ό μ ν 보κ°(lerp)νλ ν΅ν© μν μ μ΄ κ΅¬μ‘° μ€κ³
- try/catch λΈλ‘ λ΄ Postprocessing λμ λ‘λ ꡬ쑰λ₯Ό ν΅ν΄ GPU νΈνμ± λ¬Έμ λ°μ μ κΈ°λ³Έ λ λλ§μΌλ‘ ν΄λ°±(fallback) μ²λ¦¬
- Sprite particle pool μ¬μ¬μ© λ° Device Pixel Ratio μΊ‘νμ ν΅ν μ μ¬μ λ ΈνΈλΆ νκ²½μ νλ μ λλ λ°©μ§
μ€μ² ν¬μΈνΈ
- μΈλΆ μμ μμ‘΄μ±μ μ κ±°νκΈ° μν Procedural Generation λ° Runtime Synthesis λμ κ²ν - 볡μ‘ν UI μνλ₯Ό λ¨μΌ μ κ·νλ μμΉ(0~1)λ‘ λ³ννμ¬ νκ²½ μ λ°μ μ ννλ μν λκΈ°ν λ°©μ μ μ© - WebGL νκ²½μμ νλμ¨μ΄ ννΈν λμμ μν Post-processing λ¨κ³μ μμΈ μ²λ¦¬ λ° ν΄λ°± μ λ΅ μ립