#85 - Thiết kế backend cho game MMO
Ban biên tập Grokking Newsletter xin kính chúc các bạn có một kỳ nghỉ lễ vui vẻ và hạnh phúc bên gia đình, người thân và bạn bè!
Nếu bạn thấy email này bổ ích, hãy forward đến 3 người bạn của bạn nhé (để team biên tập có động lực duy trì và cải tiến newsletter nhiều hơn nữa).
Và cũng đừng quên đón đọc những bài viết hay được đăng mỗi ngày tại https://www.facebook.com/grokking.vietnam/
How does any MMO Games backend work? — medium.com
Không giống như những hệ thống cho ứng dụng mobile hay web, thì backend cho game, đặc biệt là những game MMO lại rất đặc thù. Bởi tính chất của nó là phải đáp ứng được lượng người dùng đông đảo (massively multiplayer), ở nhiều vùng địa lý (multi region) ví như WOW hay PUPG. Thêm nữa, nếu bạn đã từng bị đối phương headshot trong CS GO chỉ vì mạng trễ trong tích tắc (latency) hay từng trick để duple đồ MU (cheating) thì bạn cũng đã hình dung được phần nào các bài toán mà một hệ thống MMO gặp phải. Bài viết sau sẽ đưa ra thiết kế tổng quan cũng như phương án để giải quyết những vấn đề này
Những bài viết hay
Upgrading Pinterest operational metrics — medium.com
Tháng 8 vừa qua, Pinterest ghi nhận họ có hơn 300 triệu lượt người dùng mỗi tháng, càng khiến cho yêu cầu hệ thống ổn định cao hơn bao giờ hết. Việc theo dõi hệ thống bao gồm hàng ngàn service này được đảm bảo bởi team Visibility.
Công việc của team là phải thống kê, báo cáo, truy cập & hiển thị các số liệu từ việc vận hành hệ thống. Họ đã tạo ra một thư viện là Pinterest StatsCollector có khả năng mở rộng cao kết hợp với Kafka và Goku để tạo nên một mô hình hoàn thiện cho việc đánh giá quá trình vận hành các service Pinterest.
The LMAX Architecture — martinfowler.com
Xử lí hàng tấn transaction mỗi giây với độ trễ thấp và độ phức tạp của các logic xử lí đồng thời gần bằng không, làm sao để thực hiện điều đó?
LMAX - một platform về giao dịch tài chính trong ngành bán lẻ đã xây dựng một hệ thống như vậy, dựa trên nền tảng JVM và một tầng Business Logic Processor có khả năng xử lí tới 6 triệu order mỗi giây trên một thread. Hãy xem họ đã thiết kế hệ thống trên như thế nào.
Sách hay nên đọc
Game Programming Patterns — gameprogrammingpatterns.com
Cuốn sách là tập hợp những design patterns (DP) mà tác giả Robert Nystrom rút ra được sau 8 năm làm lập trình game tại EA.
Với 6 chương gồm 19 DP khác nhau tác giả mang lại cách nhìn thú vị về việc kiến trúc code như: double buffer, bytecode. Ngoài các DP đã quen & phổ biến như flyweight, observer hay prototype, còn có nhóm các DP nhằm tối ưu tốc độ ứng dụng: data locality hay object pool.
Mỗi chương đều có những ví dụ cụ thể & use case định hướng cho việc sử dụng DP. Dù là một người làm game hay lập trình viên khác cuốn sách cũng sẽ đem lại kiến thức bổ ích trong việc kiến trúc & tối ưu code.
Code & Tools
Pathfinding Visualizer — clementmihailescu.github.io
Có nhiều thuật giải cho bài toán tìm đường đi ngắn nhất từ A tới B. Các thuật toán có những thế mạnh riêng của nó. Pathfinding Visualizer là một công cụ hỗ trợ một cách trực quan khi mô tả việc tìm kiếm đường đi dưới dạng ô lưới giúp bạn dễ dàng học hỏi cũng như so sánh các thuật toán pathfinding này
WTF :: WTF - the terminal dashboard — wtfutil.com
WTF là một phần mềm mã nguồn mở, một terminal dashboard cá nhân hóa, cho những người thường xuyên làm việc trên cửa sổ dòng lệnh, giúp bạn quản lí thông tin về các service của hệ thống...
Concurrency with LMAX Disruptor — www.baeldung.com
Giới thiệu nhanh về LMAX Disruptor - một framework giúp xử lí đồng thời (concurrency processing) một số lượng lớn transaction với độ trễ thấp.
Making a resizable div in JS is not easy as you think
Thử làm một thẻ div có thể thay đổi kích cỡ trên HTML? Tưởng dễ nhưng lại phức tạp không tưởng, hãy thử xem qua bài viết sau của tác giả Nguyễn Việt Hưng nhé.
Tin tức khác
iPhone Hack: Google Warns 1 Billion Apple Users They May Have Been Attacked
Facebook quietly ditched the 'It’s free and always will be' slogan from its homepage
This week sponsor
Được thành lập từ năm 2004, VNG Corporation là một trong những công ty Internet Công Nghệ hàng đầu tại Việt Nam, được vinh danh là start-up kỳ lân đầu tiên của Việt Nam tính đến thời điểm hiện tại. VNG nuôi dưỡng hệ sinh thái dịch vụ đa dạng như trò chơi trực tuyến, nền tảng kết nối, tài chính, thanh toán, dịch vụ đám mây… Với sứ mệnh “thay đổi Internet để thay đổi cuộc sống người Việt”, VNG không ngừng cải tiến và hoàn thiện hơn các sản phẩm giúp người dùng có những trải nghiệm ấn tượng và tốt đẹp.
VNG hiện có 3 văn phòng tại Việt Nam (Hồ Chí Minh, Hà Nội, Đà Nẵng) và 3 văn phòng tại các nước Thái Lan, Singapore, Myanmar.
Góc tuyển dụng
Game Development Fresher 2019 — career.vng.com.vn VNG Fresher là chương trình Ðào Tạo & Tuyển Dụng do VNG tổ chức dành cho sinh viên năm cuối tại các trường Ðại học tại Việt Nam
Quote
One of the best programming skills you can have is knowing when to walk away for awhile
Oscar Godson