thắc mắc Lập trình Game (GameDev) ở Việt Nam

  • Người tạo chủ đề Người tạo chủ đề Kusano Yuki
  • Ngày bắt đầu Ngày bắt đầu
Chào các thím, em đang build lại server cho 1 con game cũ (game không có source được leak nên phải dịch ngược lại client để đoán được client cần gì mà viết lại server).

Hiện tại thì đã qua được login, vào được màn chờ game (nơi hiện danh sách room). Trước thì em code hầu hết ở 1 file cho tiện mà giờ cái file đấy nó đã phình to gần 4000 dòng nên hiện tại chuẩn bị refactor code để sau này phát triển cho dễ hơn. Nhưng trước khi viết lại thì em thấy có vài vấn đề cấn cấn nên muốn tham khảo ý kiến mọi người:
  • Mỗi khi vào 1 stage, client sẽ connect lại từ đầu và disconnect ở cuối stage đấy (để chuyển sang stage khác). Mỗi khi client connect lại vào server, server sẽ gửi 1 dạng kiểu hello packet về client, client sẽ gửi lại packet đầu tiên ở stage cho server để biết xử lý tiếp theo như thế nào. Vậy nên thiết kế theo hướng lưu 1 session server - client (chứa thông tin từ stage đầu tiên cho đến stage cuối cùng của client - server) hay lưu theo hướng lưu thông tin ở mỗi stage, tổng hợp bao nhiêu người chơi ở từng stage.
  • Ngoài ra thì game theo kiểu game turn based như Gunbound ngày xưa thì nếu có timeout thì nên xử lý timeout như thế nào ạ :sweat: Kiểu lỡ may 1 người trong room bị lag hay gì đấy thì nên xử lý kiểu gì để tránh khiến cả room đều bị lag mà mọi người đều không bị thiệt hay thông tin game bị mất (tại em có thử test theo kiểu cho client bấm login trước, nhưng server chưa bật, rồi bật server lên thì thấy server - client trao đổi 1 loạt packet rồi tự quit trước khi client kịp login). Mấy game real time kiểu LOL hay Dota thì em thấy có cơ chế dù có disconnect thì có kết nối lại vẫn được, nên server cũng không quan tâm lắm nếu client quit, còn game turn-based thế này mà nếu server chủ động disconnect thì người chơi phải vào lại game mới luôn :sweat:
Em cảm ơn ạ :adore:
 
Chào các thím, em đang build lại server cho 1 con game cũ (game không có source được leak nên phải dịch ngược lại client để đoán được client cần gì mà viết lại server).

Hiện tại thì đã qua được login, vào được màn chờ game (nơi hiện danh sách room). Trước thì em code hầu hết ở 1 file cho tiện mà giờ cái file đấy nó đã phình to gần 4000 dòng nên hiện tại chuẩn bị refactor code để sau này phát triển cho dễ hơn. Nhưng trước khi viết lại thì em thấy có vài vấn đề cấn cấn nên muốn tham khảo ý kiến mọi người:
  • Mỗi khi vào 1 stage, client sẽ connect lại từ đầu và disconnect ở cuối stage đấy (để chuyển sang stage khác). Mỗi khi client connect lại vào server, server sẽ gửi 1 dạng kiểu hello packet về client, client sẽ gửi lại packet đầu tiên ở stage cho server để biết xử lý tiếp theo như thế nào. Vậy nên thiết kế theo hướng lưu 1 session server - client (chứa thông tin từ stage đầu tiên cho đến stage cuối cùng của client - server) hay lưu theo hướng lưu thông tin ở mỗi stage, tổng hợp bao nhiêu người chơi ở từng stage.
Project khoai thế fen. Làm multiplayer từ đầu còn khó nữa là dịch ngược game client xong code server theo. Mình ko có nhiều experience về multiplayer nên chả biết góp ý gì cho mấy case của fen cả.

Có mỗi vụ timeout thì thường để khoảng 30s-60s nếu client ko connect được thì server ngắt kết nối với client đó thôi. Nếu game của fen là client-server based, host game là server, một client bị lag thì ko ảnh hưởng gì đến server với các clients khác cả.

  • Ngoài ra thì game theo kiểu game turn based như Gunbound ngày xưa thì nếu có timeout thì nên xử lý timeout như thế nào ạ :sweat: Kiểu lỡ may 1 người trong room bị lag hay gì đấy thì nên xử lý kiểu gì để tránh khiến cả room đều bị lag mà mọi người đều không bị thiệt hay thông tin game bị mất (tại em có thử test theo kiểu cho client bấm login trước, nhưng server chưa bật, rồi bật server lên thì thấy server - client trao đổi 1 loạt packet rồi tự quit trước khi client kịp login). Mấy game real time kiểu LOL hay Dota thì em thấy có cơ chế dù có disconnect thì có kết nối lại vẫn được, nên server cũng không quan tâm lắm nếu client quit, còn game turn-based thế này mà nếu server chủ động disconnect thì người chơi phải vào lại game mới luôn
Các game real-time như LOL, Dota sử dụng UDP protocol, package gửi tới client là fire and forget. Còn trường hợp fen bảo đang áp dụng TCP protocol nên server phải đợi cho package gửi đi được validate nên mới dẫn đến việc cả room bị lag như vậy.

Fen tham khảo game networking ở đây:

 
Mấy thím cho em hỏi làm game mobile cho thị trường TQ mà chạy được mấy nền tảng nội địa của họ như Harmony OS thì không rõ ngoài Cocos Creator ra thì còn engine nào ngon không ạ?

Em đọc thấy từ Harmony OS Next thì không hỗ trợ APK nữa, mà Huawei giờ mới open ticket cho Unity :burn_joss_stick:

Em cảm ơn ạ :adore:
 
update 2026:
VN là cường quốc làm game mobile rồi các bác
——

Game mobile của Việt Nam đứng thứ 2 thế giới về lượt tải, chỉ sau Trung Quốc​

—-
Toàn trick MMO chạy black ads chứ có cái méo gì
Từ năm ngoái FB chặn black ôi ối rồi, đang móm cả lũ
 
Sửa lần cuối:
Tiện share game này ủng hộ một solo game dev


 
Tiện share game này ủng hộ một solo game dev


chia sẻ tech stack đi bạn, để ae có cảm hứng làm 1 game riêng
 
chia sẻ tech stack đi bạn, để ae có cảm hứng làm 1 game riêng
Mảng game dev thì không có concept tech stack đâu. Fen chọn game engine rồi đầu tư thời gian vào vọc thôi, ví dụ Godot, Unity, Unreal etc..

Hầu hết mọi thứ fen làm đều ở trong development ecosystem của game engine đấy. Từ networking (UDP, TCP, Restful), database, UI, AI, physics, graphics, etc., game engine đều cover hết.
 
chia sẻ tech stack đi bạn, để ae có cảm hứng làm 1 game riêng
1. Biết code OOP (mấy công thức toán vector để dev gameplay có thể hỏi AI cùi 20$ như Copilot nó code hộ)
2. Biết sử dụng những feature của engine. Cơ bản nhất là ném file 3D download lậu hay mua trên mạng vào engine và thiết lập môi trường ánh sáng, physic va chạm, navmesh trong engine
 
Sửa lần cuối:
Vớ vẩn, ngoài Hà Nội nổi tiếng nhất là Onesoft ( và 2 công ty con Abi, Rocket), VNG Studio North làm Zingplay, Hikergames
Ikame chỉ ngang hàng các công ty như Bravestar, Zigga, Inwave thôi
Team sản xuất của VNG rất bé nhưng doanh thu các game Zingplay bắn cá, tiến lên, tá lả, poker... 20 tỷ 1 tháng nhưng éo mất tiền chạy ads (ads Zalo tự trồng). Nó cực kỳ giàu luôn đó ạ :shame:
3 năm trôi qua đọc lại những post của mình thì giờ
  • ikame giờ chắc là top công ty VN giai đoạn store mobile toàn Hypercasual Puzzle. Tất cả những thế lực cũ đã đi xuống
  • VNG Game thì chủ tịch, các giám đốc từng đi tù vài tháng vì Zingplay. Còn Zingplay đã đóng cửa hết các game liên quan đến bộ bài Tây
  • Hikergames tái cơ cấu
 
Sửa lần cuối:
Các công ty game mobile ở VN chỉ làm game vô não, vô tri kinh phí thấp nên dù active users rất nhiều nhưng doanh thu thấp. Không có kinh phí lớn làm game wibu gacha hay hút máu pay-to-win như China để có doanh thu lớn
704406804-10226490796176035-236118518682303548-n.jpg
 
Sửa lần cuối:
3 năm trôi qua đọc lại những post của mình thì giờ
  • ikame giờ chắc là top công ty VN giai đoạn store mobile toàn Hypercasual Puzzle. Tất cả những thế lực cũ đã đi xuống
  • VNG Game thì chủ tịch, các giám đốc từng đi tù vài tháng vì Zingplay. Còn Zingplay đã đóng cửa hết các game liên quan đến bộ bài Tây
  • Hikergames tái cơ cấu
lương lậu ngành game này giờ sao fence
 
Mấy thím cho em hỏi các backend framework phổ biến như Vert.x, Spring Boot với .NET có cái nào vừa làm game server ổn mà làm mấy cái khác cũng ổn không ạ ? (kiểu không quá gán chặt với game như Photon mà còn có thể dùng cho những cái khác, em muốn hỏi để sau này có gì nhảy thuyền từ game sang cái khác cho dễ :shame: ). Em cảm ơn ạ :adore:
 
Mấy thím cho em hỏi các backend framework phổ biến như Vert.x, Spring Boot với .NET có cái nào vừa làm game server ổn mà làm mấy cái khác cũng ổn không ạ ? (kiểu không quá gán chặt với game như Photon mà còn có thể dùng cho những cái khác, em muốn hỏi để sau này có gì nhảy thuyền từ game sang cái khác cho dễ :shame: ). Em cảm ơn ạ :adore:
Thím dùng .NET Core và thư viện cơ bản như System.Net.Sockets viết được backend MMORPG load được 2000 CCU chạy ổn định cho 1 con VPS 16 core, 32gb RAM thì làm gì chả được
 
Sửa lần cuối:

Thống kê chủ đề

Ngày tạo
Kusano Yuki,
Người trả lời cuối
YuH Nguyen,
Trả lời
484
Lượt xem
102.296
Quay lại
Lên đầu trang