---
# System prepended metadata

title: "Monorepo 與 Nx 實踐\v應用遊戲開發流程、實際落地的分享"

---

# Monorepo 與 Nx 實踐應用遊戲開發流程、實際落地的分享

:crown: Speaker: <font color="#00a15c">**Hogan @Titansoft**</font>

{%hackmd 3_LMFJLvQV-rMOZRjKILnQ %}

:raised_hands: Slido: https://app.sli.do/event/wszrmLktegbuZrgwzDES2f

###### ✦✦✦✦✦ Here we go ! ✦✦✦✦✦ 


# Outline 
1. Introduction to Monorepo and Nx
2. Practial Part : Game products developed by multi team 
3. Problems and Solution 


# Mororepo
1. Repository management strategy 
2. Store all the code in single repo
3. Facilitating code sharing and co-work

# Why we use monorepo

做遊戲, 高度同質性.
"看起來"不同, 但同質的.

# monorepo introduction

一個repo裡, 有很多application 


# Nx intro 
 在monorepo 概念下的工具
 Support 
 1. Frand-end : Vue/react/ angular 
 2. Backend : Express / Nest/Next 
 3. Cypress 
# why NX ?
 支援度高. 
 我們要做中大型的專案.
 
# NX file structure 


# Nx Plugins Registry 

# Nx Console 
 在VS code 可以直接安裝extension
 方便設定

# Game flow 
 瀑布式開發
 interaction designer - 切版/動畫.
 
# Game Teams 
  Desinger team 
  Product Developer team 
  
  Nx : focus 在前端
  
  1個team 變到 4個team -> 強化libs 的共用性.
 
# Demo , Game type 
  Type 1 : 踩地雷
  Type 2 : 小鋼珠, Pinko 
  Type 3 : Crash game 
  
看起來不同, 但後面logic是相似/一樣的. 


# Resource sharing 
  音效 - 這個lib就要含蓋所有情境, 漸進式的增強.
  e.g. 使用howler 解決ios 問題, 其他app ios也一塊解決了.
  
# Why implement UI testing 
  cypress 
  合作伙伴載入我們的遊戲, 但他們demo時所用的尺寸不符合我們預期.
  使用GA 拿到所有user 的裝置尺寸. 
  跑cypress 然後截圖, 若有跑版 給desinger看.
  人工判斷
  > 約30種尺寸. 
  > 1個尺寸, 1分鐘跑完 
# Shared Lib
 Problems & Context 
   改library 影響到所有project 
 Solve : 
  1. Nx Circle
  2. Working agreement 
     > 文件/測試
  
  
  
Q&A 

1. 假設改壞了話, 用tag roll-back 

2. hot-fix 
  你可選擇 1. 只上App 2. 全上. 
  
 
  
  
  
  
  
  
  
  
  
 
 








