μ±κΈλͺ¨λ stage 1 νλ μ΄ νλ©΄
- Don't catch meλ μ±κΈλͺ¨λ, λ©ν°λͺ¨λ λ κ°μ§λ‘ κ΅¬μ± λ μΉ κ²μμ λλ€.
- μ λͺ ν κ³ μ κ²μμΈ pac-manκ²μμμ λͺ¨ν°λΈλ₯Ό μ»μ΄, μ΄λ₯Ό 2.5dλ‘ κ΅¬νν΄λ³΄κ³ μ νμ΅λλ€.
- μ±κΈλͺ¨λμ κ²½μ°, μ ν λ μκ° μμ μ«μμ€λ ν λΌλ€μ νΌν΄ λμ μ λ¨Ήλ νμμ λλ€.
- 맡μ μμΉν λͺ¨λ λμ μ λ€ λ¨Ήλλ€λ©΄ λ€μ μ€ν μ΄μ§λ‘ λμ΄κ° μ μμ΅λλ€.
- μ€ν μ΄μ§λ₯Ό λμ΄κ° μλ‘, 맡μ λ λ§μ ν λΌλ€μ΄ λ±μ₯νκ² λ©λλ€.
- μ΅μ’ μ€ν μ΄μ§λ₯Ό ν΅κ³Όνλ€λ©΄, λ¨μ μμ¬ μκ°μ ν΅ν΄ μ μλ₯Ό νμ°νμ¬ κΈ°λ‘ν μ μμ΅λλ€.
- 10μ μμ λ νλ μ΄μ΄λ€μ κΈ°λ‘μ record νμ΄μ§λ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
- λ©ν°λͺ¨λμ κ²½μ°, μμ μ ν λ μκ° μμ λμ± λ§μ λμ μ λ¨Ήμ νλ μ΄μ΄κ° μ°μΉνκ² λ©λλ€.
- λ©ν°λͺ¨λμ μ€ν μ΄μ§κ° λλκ³ λ ν, κ²μνλ νλ μ΄μ΄λ€κ³Ό λ€μ κ²μνκ³ μΆλ€λ©΄ μ΄μ λ°©μΌλ‘ λμκ° μ μμ΅λλ€.
- ν€λ³΄λ λ°©ν₯ ν€λ₯Ό μ΄μ©ν΄ 컨νΈλ‘€ν©λλ€.
- λ©ν°λͺ¨λμ κ²½μ°, μ΄λ μ½λλ₯Ό 볡μ¬νκ±°λ μΉ΄μΉ΄μ€ν‘μ ν΅ν΄ κ°μ€ λ λ°©μ λ§ν¬λ₯Ό μ μ‘ν μ μμ΅λλ€.
waiting page, μΉκ΅¬μκ² μ μ‘λ°μ μ½λλ₯Ό ν΅ν΄ λ°©μΌλ‘ μ μ₯ν μ μμ΅λλ€.
- javascript 곡λΆλ₯Ό μ²μ μμ νμλμ, Tick-Tac-Toe λΌλ κ°λ¨ν μΉ μ± κ²μμ ꡬνν΄ λ³Έ μ μ΄ μμμ΅λλ€.
- μ λ 2λͺ μ΄μ λ²κ°μκ°λ©° νλ μ΄ ν μ μλλ‘ λ¨μνκ² κ΅¬νμ νμμ΅λλ€. κ·Έλ°λ° κ²μ AIλ₯Ό ꡬν ν΄μ νΌμμλ νλ μ΄ ν μ μλλ‘ νκ³ , μ¬μ§μ΄λ AI λμ΄λ μ‘°μ μ ν΅ν΄ λ¨κ³κΉμ§ μ‘°μ ν μ½λλ₯Ό μ νκ² λμμ΅λλ€. μ μμ μκ² λ§μ΄ λΆλλ¬μ μ΅λλ€.
- κ·Έλ μ²μμΌλ‘ νΌμμ λ€μ νλμ νλ¨νλ AIλ₯Ό ꡬνν΄λ³΄κ³ μΆλ€κ³ μκ°νκ² λμμ΅λλ€.
- μ΄μ νλ‘μ νΈμμ μΉ μμΌμ ν΅ν΄ μ€μκ°μΌλ‘ μ¬μ©μλ€μκ² μν λ³ν λ° μ΄λ²€νΈλ₯Ό μ λ¬νλ μΉ μ¬μ΄νΈλ₯Ό ꡬννμμ΅λλ€.
- μ΄μ κΉμ§ μ€μκ°μΌλ‘ μ¬μ©μλ€κ³Ό μν΅νλ©΄μ νλ κ²μλ€μ΄ μ΄λ° μμΌλ‘ ꡬνλκ² κ΅¬λ νλ μκ°μ΄ λ€λ©΄μ μμΌκ° μ΄λ¦¬λ κΈ°λΆμ΄μμ΅λλ€.
- κ·Έλ κΈ°μ μ§μ μΉ μμΌμ μ΄μ©ν λ©ν° κ²μμ λ§λ€μ΄ λ³΄κ³ μΆμμ΅λλ€.
- React
- ES2015+
- Redux (Redux-toolkit)
- Phaser
- React-router-dom
- Express
- MongoDB Atlas
- NodeJS
- Git
- Socket.io
- Styled-components
- Jest, enzyme for unit-test
μΊλ¦ν° μ€νλΌμ΄νΈμ μΌλΆ
- κ²μ 맡 μμ
Tiled νλ‘κ·Έλ¨μ μ΄μ©νμ¬ μ§μ 맡μ ꡬν ν νμ json νμΌλ‘ λ³ν
- μ±κΈλͺ¨λ ꡬν
- λ©ν°λͺ¨λ ꡬν
- κΈ°ν νμ΄μ§ μμ
- AI λμ΄λ μ‘°μ
- κ²μ λμ΄λ μ‘°μ λ° asset μ΅μ’ μ μ©
- μ€νμΌλ§
- λ°°ν¬
- netlifyλ₯Ό μ΄μ©ν΄ λ°°ν¬νμ΅λλ€.
- AWS Elastic beanstalkλ₯Ό μ΄μ©ν΄ λ°°ν¬νμ΅λλ€.
- Phaser
- isometric νμμ κ²μμ ꡬννλ € νκΈ°μ 맡 λ λλ§κ³Ό κ°μ λΆλΆμμ μΌλ° canvasλ₯Ό μ¬μ© νμ λ μ΄λ €μμ΄ λ§μ κ²μ΄λΌ μκ°μ νμ΅λλ€.
- phaserμμ κ·Έλμ λΉκ³΅μμ μΈ νλ¬κ·ΈμΈμ ν΅ν΄ isometric νμ κ²μ μ μμ μ§μμ νλ€κ°, μλ 12μλΆν° 곡μμ μΌλ‘ isometric κ²μ ꡬνμ μ§μνκ² λλ€λ κ²μ μκ²λμ΅λλ€.
- κ·Έλ κΈ°μ phaser λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©ν΄ κ²μ κ°λ°μ ν΄μΌκ² λ€κ³ λ§μμ λ¨ΉμμΌλ, μ€μ λ‘ κ°λ°μ νλ©° λ§μ£Όν μ€μμ μ’ λ¬λμ΅λλ€.
- μμ ν μ λ°μ΄νΈκ° λμ§ μμκΈ°μ isometric 맡μ ꡬννλ tiledλΌλ νλ‘κ·Έλ¨μ ν΅ν΄ λ°λ‘ 맡μ κ²μμ κ½μ μ μμκ³ , κ΄λ ¨ λ νΌλ°μ€κ° μκ°λ³΄λ€ λ§μ΄ μμμ΅λλ€.
- μ΄μ μ μ§μνλ νλ¬κ·ΈμΈμ ν΅ν΄μ ꡬννλλ‘ λ°©λ²μ λ°κΏλ³ΌκΉ μκ°λ νμ§λ§, μ΄λ―Έ μ΄λμ λ κ°λ°μ΄ μ§νμ€μ΄μκ³ μκ°λ κ½€ μμλ μνμμ΅λλ€.
- λ°λΌμ μ λν°μ μ½λ λ° json νμΌλ€μ νμμ μ°Έκ³ ν΄μ tiledμμ λ³ν λ json νμΌλ€μ μΌμΌν λ°κΎΈμ΄μ£Όκ³ , νλμ© ν μ€νΈ λ° λλ²κΉ μ ν΅ν΄μ 맡μ λ λλ§ ν μ μμμ΅λλ€.
- νμ§λ§ μ΄νμλ κ°λ° λμ€ κ³μ λ²κ·Έκ° λ°μνκ³ κ΄λ ¨ λ‘μ§λ€μ μ²λ¦¬ ν λμ λ§μ λλ μ΄κ° μκ²Όμ΅λλ€. λ€ννλ μ§κΈμ μ΄λμ λ μ μΆ©μμ μ°Ύμμ κ²μ μ€νμ μ±κ³΅νμ΅λλ€.
- νλ‘μ νΈμ λ€μ΄κ°κΈ° μ μ λ μΆ©λΆν λ νΌλ°μ€ λ° μ‘°μ¬λ₯Ό νκ³ , κΈ°λ³Έμ μΈ κ΅¬νμ μ’ λ μ΄μ΄ν μλν΄ λ³Έ λ€μμ λ³Έ νλ‘μ νΈμ λ€μ΄κ°λ κ²μ΄ μ’κ² λ€λ κ΅νμ μ»μμ΅λλ€.
- λν μ’ λ μ΄λ €μμ΄ μλλΌλ, λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©νμ§ μκ³ λ°λ‘ ꡬνμ νλ κ²μ΄ κ²°κ³Όμ μΌλ‘ λ μκ°μ μλ μ λ μκ² λ€λ μκ°μ΄ λ€μμ΅λλ€.
- AI difficulty
- μ΅μ΄ κΈ°νλλ λ λ€μν AIλ₯Ό ꡬνν μκ°μ΄μμΌλ, 맡μ ν¬κΈ°κ° μλμ μΌλ‘ μμ νΈμ΄κΈ°μ μ¬νν κ²μ 컨μ κ³Ό λ¬λ¦¬ κ²μ μ§νμ΄ νμ μ΄μμΌλ‘ 볡μ‘ν΄ λ³΄μΌ μλ μλ€λ κ²μ κΉ¨λ¬μμ΅λλ€.
- λ°λΌμ μλ ꡬννλ AIμ μ νμ±μ μ¬λ¦¬κ³ , μλλ₯Ό μ¬λ¦¬λ μμΌλ‘ λ°κΏμ 2κ°μ§ νμ μ AIλ₯Ό λ§λ€μμ΅λλ€.
- isometricμ νΉμ± μ μΊλ¦ν°λ€μ΄ μ, ν, μ’, μ° 4 λ°©ν₯μΌλ‘ μμ§μΌ μ μλλ°, AIμ μ νμ±μ΄ μ¬λΌκ°μ κ²μ νλ©΄μ΄ μμ°μ€λ½μ§ μκ² λ³΄μμ΅λλ€.
- κΈ°λ³Έμ μΈ AI λ‘μ§μ λ² μ΄μ€λ, νλ μ΄μ΄μ μ μΌ κ°κΉκ² μ΄λν μ μλ μ§μ μ μ°Ύμμ λ°©ν₯μ κ²°μ νκ³ μμ§μ΄λ ννλ‘ κ΅¬νλλλ°, μ νμ±μ΄ μ¬λΌκ°λ μμλ‘ λ€λ₯Έ λ°©ν₯μ μ°Ύμμ κ³μ λ°©ν₯μ λ°κΎΈλ€λ³΄λ νλ©΄ μμμ μ§λμΉκ² λ§μ΄ κΉλΉ‘κ±°λ¦¬κ² λ κ²μ λλ€.
- λ°λΌμ μ΄λ―Έ μ΄λνλ λ§μ§λ§ λ°©ν₯μ κΈ°λ‘ν΄λκ³ μ΄ μ 보λ€μ λ€μ λ°©ν₯μ νλ¨ν λμ μ¬μ©νκ³ , AIκ° λ°©ν₯μ λ°κΏ λ μλμ μΌλ‘ λλ μ΄λ₯Ό μ€μ νλ©΄μ μΌλ‘λ λ무 λΆμμ°μ€λ½μ§ μλλ‘ κ°μ νμ΅λλ€.
- κ²°κ³Όμ μΌλ‘ AIμ λΆνμν λ°©ν₯ λ³λμ΄ μ€μ΄λλ, μλμ μΌλ‘ νλ μ΄μ΄λ₯Ό μ«μμ€λ μκ°μ΄ μ€μ΄λλ κΈμ μ μΈ κ²°κ³Όλ₯Ό μ»μμ΅λλ€.
- νμ§λ§ μ μ΄μ 8λ°©ν₯μΌλ‘ ꡬνμ νλ€λ©΄ νλ©΄μμΌλ‘ λ³΄λ€ λ λΆμμ°μ€λ¬μ μ κ²μ΄κΈ°μ, μ΄ λΆλΆμ μμ΄μλ μμ¬μμ΄ λ¨μ΅λλ€.
- Socket action control
- μ΅μ΄ socket ν΅μ μ λͺ¨λ redux middlewareμ κ·μμμΌμ redux μ‘μ μ ν΅ν΄ νλ²μ 컨νΈλ‘€ ν μ μλλ‘ κ΅¬ννκ³ μ νμ΅λλ€.
- μ΄λ μλ‘ νλ μ΄μ΄λ€μ΄ λ€μ΄μ€κ³ , μ΄ νλ μ΄μ΄λ€μ μ 보λ₯Ό μ€μ νκ³ νλ κ²κ³Ό κ°μ μ‘μ μ μ μ ν νλ¨μ΄μλ€κ³ μκ°ν©λλ€.
- νμ§λ§ κ²μμ΄ μμνκ³ λμλΆν°λ, κ° νλ μ΄μ΄λ€μ μ’ν μ 보 λ° μ΄λ²€νΈ μ 보λ€μ μ€μκ°μΌλ‘ μ λ¬μ ν΄μ£Όμ΄μΌ νλλ°, μ΄ μ 보λ€μ΄ κ³Όμ° reduxμ λ€μ΄κ° νμκ° μλμ§ μλ¬Έμ΄ λ€μμ΅λλ€.
- λν phaserμ κ²½μ° canvasλ₯Ό κΈ°λ°μΌλ‘ μλνλλ°, canvasμ κ²½μ° λ λλ§μ΄ λ§€μ° μμ£ΌλκΈ° λλ¬Έμ reduxμ μ‘μ μ΄ μ§λμΉκ² μμ£Ό μΌμ΄λ¬μ΅λλ€.
- λ°λΌμ κ΄λ ¨ μ΄λ²€νΈλ€μ phaser classμ μ§μ κ½μμ£Όλ μμΌλ‘ socket λ‘μ§μ λ°κΎΈμμ΅λλ€.
- μΆν μ±λ₯ ν μ€νΈλ₯Ό ν΅ν΄ μ€μ§μ μΌλ‘ μΌλ§λ ν¨μ¨μ μΈμ§λ₯Ό νλ¨νμ¬ κ°μ ν΄ λκ° μμ μ λλ€.
- κ²μμ κ΅μ₯ν μ’μν©λλ€. νλ‘κ·Έλλ° κ³΅λΆλ₯Ό μμνκΈ° μ κΉμ§λ κ½€ λ§μ μκ°μ κ²μμ ν¬μνλ©΄μ μ΄μμ΅λλ€. μΈλ κ²μλ€μ νλ μ΄νλ©΄μ μ λ νλ² μ―€μ κ²μ μ μμ ν΄λ³΄κ³ μΆλ€λ μκ°μ μΈμμ λ²ν· 리μ€νΈμ "κ²μ κ°λ°"μ΄λΌλ νλͺ©μ΄ νμ μμμ΅λλ€. νλ‘μ νΈλ₯Ό μμ±ν μ§κΈμ λ²ν· 리μ€νΈλ₯Ό νλ λ¬μ±νκΈ°μ λ§€μ° ν볡ν©λλ€. μ μμΌλ‘ κ²μμ λ§λ€ μ μλ€λ κ²μ κΉ¨λ¬μμ§ λΉκ΅μ μΌλ§ λμ§ μμλλ°, μ€μ λ‘ ν΄λ΄μ μ±μ·¨κ°μ΄ λ€μμ΅λλ€. μμ§μ μ κ° μνλ λ§νΌμ κ²°κ³Όλ¬Όμ΄ λμ€μ§ μμμ§λ§, μ§μμ μΌλ‘ μ λ°μ΄νΈλ₯Ό ν΅ν΄ κ³μ κ°μ ν΄λκ°κ³ μΆμ΅λλ€.
- μ΄λ² κ²μμ μ μνλ©΄μ, κ²μ νΉμ± μ (isometric λ° ν λΌκ° λΉκ·Όμ μ«λλ€λ 컨μ ) assetμ μ°ΎκΈ°κ° νλ€μκ³ , κ΄λ ¨λ μμ μκ°μ΄ κ΅μ₯ν κΈΈμμ΅λλ€. isometric λ° ν λΌμ λΉκ·Όμ΄λΌλ assetμ κ°μ§κ³ μλ μ¬μ΄νΈλ μ μκΈ° λλ¬Έμ λλ€. κ·Έλ¬λ€ μ΄ μ’κ²λ μ’μ λμμ΄λ λΆμ λ§λμ κ²μ asset μμ μ ν μ μμμ΅λλ€. νλ‘μ νΈ μ΄λ° μΌλμ, μμ§ κ΅¬νλμ§ μμ κ²λ€μ λν΄ λ§μ λΆλ΄κ°μ΄ μμλλ° μ΄λ° μ¬μ μΈ λΆμκ°λ€μ μ’μ λμμ΄λλΆ λλΆμ λ§μ΄ ν΄μ ν μ μμμ΅λλ€. λμμΈμ μ€μμ±μ΄ μΌλ§λ λλ¨νμ§ μκ² λμκ³ , μμΌλ‘ μΌνλ©΄μλ μ΄λ° λμμ΄λ λΆλ€μ λ§λμ μμ νκ³ μΆλ€λ μκ°μ΄ λ€μμ΅λλ€. μ λν μ΄ λμμ΄λ λΆ μ²λΌ μ’μ νμμ΄ λκ³ μΆλ€λ μκ° μμ λ€μμ΅λλ€.
- νλ‘κ·Έλλ° κ³΅λΆλ₯Ό μμνμ§ μ€λ κΈ°κ°μ΄ μ§λμ§ μμμ§λ§, μ§κΈκΉμ§ μ±μ₯ν μ μμλ μλλ ₯μ κΈ°λ°μ λ°λλΌμ½λ©μ΄λΌλ μ’μ λμΉ¨λ°μ 빨리 μμλ³΄κ³ μ ννκΈ° λλ¬Έμ΄λΌκ³ μκ°ν©λλ€. μ’μ λλ£λ€κ³Ό λ°©ν₯ λ° νκ²½μ μ κ³΅ν΄ μ£Όμ μΌλκ³Ό λ©ν λλ€κ» μ λ§ κ°μ¬λ립λλ€. λ§μ§λ§μΌλ‘ λΆνΈμΊ ν κΈ°κ° λμ κ°μ΄ λ λ°€μ μ§μλ©° νλ€μ΄νκ³ , κ°μ΄ κ³ λ―Όνλ©° μλ‘μ΄ μμμ μν΄ ν νμ κ·Έμ λΆνΈμΊ ν μ¬λλ€μκ² κ·Έλμ κ³ λ§μ λ€κ³ , μμΌλ‘λ μ λΆννλ€λ μΈμ¬λ₯Ό λ¨κΈ°κ³ μΆμ΅λλ€.