CÁC PHƯƠNG PHÁP ĐO CÁC CHỈ SỐ TỐI ƯU GAME
- Đo fps: trong bất kỳ hàm update(dt) của bất kỳ component nào ta có thể tính: fps = 1/dt
- Đo thời gian load game: time = performance.now()
TỐI ƯU PERFORMANCE
- Script
- Tắt console.log khi build
- Hạn chế dùng: update() / touchMove()
- Hạn chế dùng các module tốn performance nếu không cần thiết: physic-collider / joint / motion-streak
- Chia nhóm các object va chạm để hạn chế các event không cần thiết bị emit
- Dùng NodePool thay vì tạo mới & xóa node liên tục
- Tắt các layer, object không dùng bằng node.active = false thay vì set opacity=0/ scale=0/ position.xy=9999
- Hạn chế 9-slice
- Dùng atlas thay vì ảnh rời (1 atlas hay 1 ảnh rời đều tính bằng 1 drawCall)
TỐI ƯU THỜI GIAN LOAD GAME
Tối ưu dung lượng bộ cài:
- Cắt hết các phần ảnh bị ra ngoài viền game, không dùng
- Nén ảnh (tinypng)
- Tách các thành phần của 1 ảnh to ra thành background và các khối ảnh nhỏ
Các ảnh mờ: có thể xuất ảnh thật kích thước nhỏ hơn trong game, sau đó scale node đó lên (vd: Mây, ngôi sao, bóng object vv)
- Ảnh có thể xếp lặp, chỉ cắt 1 góc & xếp lặp
- Lặp theo 2 chiều ngang/dọc
- Lặp góc kiểu pizza
Ảnh 9 slice thì thu nhỏ lại minimum
Các ảnh nhiều màu nhưng có thể blend màu bằng Cocos => xuất ảnh trắng & blend màu sau
Các khối có hình vuông thì không cần dùng ảnh, dùng sprite có sẵn của Cocos (VD: vẽ nền lưới của bàn cờ)
Xử lý âm thanh:
- Chỉnh hết âm thanh về bit rate 32
- Cắt các đoạn âm trống không dùng ở đầu & cuối âm gốc
(https://online-audio-converter.com)
Tắt các module không dùng trong Project Settings -> module config
Xóa ảnh splash mặc định của Cocos khi build xong
Tối ưu quá trình load
Lazy load (động) các asset chưa cần ngay, thay vì load từ đầu game
- Âm thanh
- Các atlas dành cho các màn game chưa bật lên ngay
- Các asset dùng cho các map user lv cao
Đóng ảnh vào các atlas theo ưu tiên atlas đó dùng cho màn hình nào – cần show ngay cho user hay có thể load ngầm
Khi game đã load hết assets cho map hiện tại, preload các map sau đó để các assets được cache lại, tăng tốc cho lần sau load nhanh hơn