2D κ²μ λ§λ€λ €λλ°, κ·λͺ¨λ λ±νμ΄μ΄ μλ°μ΄λ²μ¦λ λΉμ·ν΄
μΈλ¦¬μΌ μμ§ vs κ³ λ· μμ§ vs μ λν° μμ§
μ΄ μΈ κ°μ§ μμ§ μ€μμ μ΄λ€ μμ§μΌλ‘ κ°λ°νλκ² μ’μμ§ μΆμ²ν΄μ£Όκ³ μ΄μ λ μλ €μ€
λ±νμ΄μ΄ μλ°μ΄λ²μ¦(Vampire Survivors)μ κ°μ 2D λ‘κ·ΈλΌμ΄ν¬, 'νλ§(Bullet Hell)' μ₯λ₯΄λ₯Ό λͺ©νλ‘ νμ λ€λ©΄, μμ§ μ νμ κ°λ° λμ΄λμ μ±λ₯ μ΅μ νμ ν° μν₯μ λ―ΈμΉ©λλ€.
κ²°λ‘ λΆν° λ§μλ리면, Godot(κ³ λ·) μμ§μ κ°μ₯ μΆμ²νλ©°, μμ©νμ μμ νμ©μ΄ μ€μνλ€λ©΄ **Unity(μ λν°)**κ° κ°λ ₯ν 2μμ λλ€. Unreal(μΈλ¦¬μΌ)μ μ΄ νλ‘μ νΈμλ μΆμ²νμ§ μμ΅λλ€.
μμΈν λΉκ΅ λΆμκ³Ό μ΄μ λ₯Ό μ λ¦¬ν΄ λλ¦¬κ² μ΅λλ€.
1. μΆμ² 1μμ: Godot Engine (κ³ λ· μμ§)"κ°λ³κ³ λΉ λ₯΄λ©°, 2D κ²μ κ°λ°μ μ΅μ νλ λ¬΄λ£ μμ§"
λ±νμ΄μ΄ μλ°μ΄λ²μ¦ κ°μ κ·λͺ¨μ κ²μμ 1μΈ λλ μκ·λͺ¨λ‘ κ°λ°νκΈ°μ κ°μ₯ μ ν©ν©λλ€.
μΆμ² μ΄μ :
μλ²½ν 2D μ μ© λͺ¨λ: μ λν°λ μΈλ¦¬μΌμ 3D κ³΅κ° μμ 2Dλ₯Ό νλ΄ λ΄λ λ°©μμ΄μ§λ§, κ³ λ·μ ν½μ μ’νλ₯Ό μ¬μ©νλ 'μ§μ§ 2D' μμ§μ κ°μ§κ³ μμ΄ 2D κ°λ°μ΄ ν¨μ¬ μ§κ΄μ μ λλ€.
κ°λ²Όμ: μμ§ μμ²΄κ° λ§€μ° κ°λ³κ³ (μλ°± MB μμ€), μ€ν μλκ° λΉ λ¦ λλ€.
GDScript: νμ΄μ¬(Python)κ³Ό λ§€μ° μ μ¬ν μ μ© μΈμ΄λ₯Ό μ¬μ©νλ―λ‘ μ½λ© μ λ¬Έμκ° λ°°μ°κΈ°μ κ°μ₯ μ½μ΅λλ€.
100% 무λ£: μμ΅μ΄ μ무리 λ§μ΄ λλ μμλ£κ° 0μμ λλ€.
λ¨μ :
μ λν°μ λΉν΄ μμ μ€ν μ΄(미리 λ§λ€μ΄μ§ 리μμ€ μμ )κ° μμ, κ·Έλν½μ΄λ μ¬μ΄λλ₯Ό μ§μ ꡬν΄μΌ ν μΌμ΄ λ§μ μ μμ΅λλ€.
"λ°©λν μμ κ³Ό κ²μ¦λ λ νΌλ°μ€λ₯Ό κ°μ§ μ κ³ νμ€"
μ€μ λ‘ **λ±νμ΄μ΄ μλ°μ΄λ²μ¦(νμ¬ λ²μ )**λ μ λν°λ‘ ν¬ν λμ΄ κ΅¬λλκ³ μμ΅λλ€ (μ΄κΈ°μ μΉ κΈ°μ μΈ Phaser μ¬μ©).
μΆμ² μ΄μ :
μμ μ€ν μ΄: λ±νμ΄μ΄ μλ°μ΄λ²μ¦λ μ΄κΈ° κ·Έλν½μ μ λν° μμ μ€ν μ΄ ν©μμ κ°μ Έλ€ μΌμ μ λλ‘, μ λ£/λ¬΄λ£ λ¦¬μμ€κ° λ°©λν©λλ€. κ°λ° μκ°μ νκΈ°μ μΌλ‘ μ€μ¬μ€λλ€.
μ 보λ: μ μΈκ³μμ κ°μ₯ λ§μ΄ μ°μ΄λ μμ§μ΄λ―λ‘, ꡬκΈλ§νλ©΄ λͺ¨λ ν΄κ²°μ± μ΄ λμ΅λλ€.
νμ₯μ±: λμ€μ λͺ¨λ°μΌ, λν λ μ€μμΉ λ±μΌλ‘ μΆμνκΈ°κ° κ°μ₯ μμν©λλ€.
λ¨μ :
무거μ: κ³ λ·μ λΉν΄ μμ§μ΄ 무κ²κ³ κΈ°λ₯μ΄ λ°©λνμ¬ λ°°μ°λ λ° μκ°μ΄ μ‘°κΈ λ 걸립λλ€.
μ΅κ·Όμ μ΄μ: μκΈμ μ μ± λ³κ²½ μ΄μ(νμ¬λ μνλ¨)λ‘ μΈν΄ μΈλ κ°λ°μλ€μ μ λ’°λκ° λ€μ νλ½νμ΅λλ€.
"κ³ νλ¦¬ν° 3Dμλ μ΅κ°μ΄μ§λ§, 2Dμλ κ³Όν μμ§"
λΉμΆμ² μ΄μ :
μ€λ²μ€ν: μΈλ¦¬μΌμ κ³ μ¬μ 3D κ·Έλν½μ νΉνλμ΄ μμ΅λλ€. κ°λ¨ν 2D λνΈ κ²μμ λ§λ€κΈ°μλ μμ§μ΄ λ무 무κ²κ³ νμΌ μ©λλ λΆνμνκ² μ»€μ§λλ€.
Paper 2Dμ νκ³: μΈλ¦¬μΌ λ΄μ 2D κΈ°λ₯(Paper 2D)μ μ λν°λ κ³ λ·μ λΉν΄ μ λ°μ΄νΈκ° λλ¦¬κ³ κΈ°λ₯μ΄ λΆμ‘±ν©λλ€.
λμ μ§μ μ₯λ²½: C++ μΈμ΄λ C#μ΄λ GDScriptλ³΄λ€ λ°°μ°κΈ° μ΄λ ΅μ΅λλ€. λΈλ£¨νλ¦°νΈ(μκ°μ μ½λ©)κ° μμ§λ§, 2D λ‘μ§μ μ§€ λλ μ½λκ° λ νΈν λκ° λ§μ΅λλ€.
| νΉμ§ | Godot (κ³ λ·) | Unity (μ λν°) | Unreal (μΈλ¦¬μΌ) |
| μΆμ² μμ | ? 1μ (κ°μΆ) | ? 2μ (무λ) | ? 3μ (λΉμΆ) |
| κ°λ° λμ΄λ | μ¬μ (μ λ¬Έμ μ΅μ ) | λ³΄ν΅ | μ΄λ €μ |
| μ£Όμ μΈμ΄ | GDScript (μ¬μ) | C# (보ν΅) | C++, Blueprint (μ΄λ €μ) |
| 2D μ±λ₯ | λ§€μ° μ°μ | μ°μ | λΉν¨μ¨μ |
| μμ /μλ£ | μ μ (μ±μ₯ μ€) | λ§€μ° λ§μ | λ§μ (μ£Όλ‘ 3D) |
| λΉμ© | μμ λ¬΄λ£ | μΌμ μμ΅ μ΄μ μ λ£ | μΌμ μμ΅ μ΄μ μ λ£ |
μ΄ μ₯λ₯΄μ ν΅μ¬μ **"νλ©΄μ μλ°±, μμ² λ§λ¦¬μ μ μ΄ λμλ λ μ΄ κ±Έλ¦¬μ§ μκ² νλ κ²"**μ λλ€.
Godot μ ν μ: λ Έλ κ΅¬μ‘°κ° κ°λ²Όμμ κΈ°λ³Έμ μΌλ‘λ κ½€ μ λμκ°μ§λ§, μ μ΄ μμ² λ§λ¦¬κ° λλ©΄ RenderingServer APIλ₯Ό μ§μ μ¬μ©νμ¬ μ΅μ νν΄μΌ ν μ μμ΅λλ€.
Unity μ ν μ: λ¨μν κ°μ²΄λ₯Ό μμ±(Instantiate)νλ©΄ λλ €μ§λλ€. 'μ€λΈμ νΈ νλ§(Object Pooling)' κΈ°μ μ λ°λμ λ°°μμΌ νλ©°, λ λμκ°μλ **DOTS(λ°μ΄ν° μ§ν₯ κΈ°μ μ€ν)**λ₯Ό νμ©νλ©΄ μλ§ λ§λ¦¬μ μ λ κ±°λ¬ν ꡬνν μ μμ΅λλ€.
"λλ μ½λ©μ΄ μ²μμ΄κ³ , κ°λ³κ³ λΉ λ₯΄κ² κ²μμ μμ±ν΄λ³΄κ³ μΆλ€."
+ GodotμΌλ‘ μμνμΈμ. λ¬Έλ²μ΄ μ½κ³ κ΅¬μ‘°κ° λ¨μν΄μ 2D κ²μμ λ‘μ§μ μ΅νκΈ°μ μ΅κ³ μ λλ€.
"λλ λμ€μ μΆ1μ λ κ³ λ €νκ³ μκ³ , μμ μ μ¬μ κ·Έλν½ μμ μ μ΅μννκ³ μΆλ€."
+ Unityλ₯Ό μ ννμΈμ. λ°©λν νν 리μΌκ³Ό μμ μ€ν μ΄κ° λΉμ μ λμμ€ κ²μ λλ€.
μ΄λ€ λ°©ν₯μ΄ λ λ리μλμ? μ νν΄ μ£Όμλ©΄ ν΄λΉ μμ§μΌλ‘ 'μ λ€μ΄ νλ μ΄μ΄λ₯Ό λ°λΌμ€λ κΈ°λ³Έ μ½λ' μμλ₯Ό μμ±ν΄ λ릴 μ μμ΅λλ€.
μ λν°ν΄ μλ£λ§μ
λ κ³ λ