nói dối e blog

Ghi Chú Phát Triển (27): Máy Tính Công Thức

Kỳ hạn quan trọng thứ hai của dự án chúng tôi đã kết thúc trước Tết Trung Thu. Trong vòng ba tháng phát triển vừa qua, đội ngũ đã tích luỹ thêm nhiều tính năng mới cho game. Tuy nhiên do tiến độ gấp gáp, phần lớn nhiệm vụ phải hoàn thành trong áp lực cao, dẫn đến nhiều lỗi phát sinh.

Sau kỳ nghỉ, chúng tôi quyết định dành một tháng tập trung cải thiện code. Hiện tổng lượng code chưa quá lớn - toàn bộ server code ngoài phần C nền tảng đều viết bằng Lua với khoảng 50 nghìn dòng. Quy mô này hoàn toàn kiểm soát được. Ngay cả khi phải viết lại hoàn toàn từ đầu, dựa trên kinh nghiệm hiện có, cũng không phải điều bất khả thi. Do đó tôi khá tự tin vào việc nâng cấp hệ thống code này.

Hành Trình Đầu Tiên Với Trình Soạn Thảo StarCraft II

Gần đây, tôi được giao nhiệm vụ cải tiến hệ thống AI quái vật trong dự án game hiện tại. Nhóm thiết kế mong muốn trực tiếp cấu hình logic hành vi thay vì phải viết tài liệu yêu cầu để nhờ lập trình viên triển khai.

Phiên bản trước gặp vấn đề nghiêm trọng về hiệu năng - ngay cả khi chạy thử nghiệm không có người chơi, chỉ cần dựng vài tình huống đơn giản đã khiến CPU chạy ở mức cao đáng ngạc nhiên. Tôi nhận ra nguyên nhân nằm ở hai điểm: thứ nhất, hệ thống cho phép tùy biến quá chi tiết; thứ hai, kiến trúc底层 được xây dựng không phù hợp, dẫn đến hàng ngàn dòng mã Lua chạy vòng lặp vô ích.

Hành Trình Leo Núi Gần Đây

Trong nửa năm trở lại đây, tôi duy trì tần suất tập luyện đều đặn ba buổi mỗi tuần. Tuy nhiên dường như đã chạm đến điểm tắc nghẽn khi vướng phải mức độ 5.11 - con số tưởng chừng là cửa ngõ của những bước tiến mới nhưng lại trở thành thử thách khó vượt qua. Những vách bouldering trong phòng tập vẫn chưa chinh phục được tuyến V3 nào khiến tôi không khỏi trăn trở.

Hỗ Trợ Tính Năng _ENV Trong Lua 5.2 Cho LuaJIT 2.0

Dưới đây là bản dịch và tổ chức lại nội dung bằng tiếng Việt phong phú hơn, đảm bảo không chứa ký tự không phải tiếng Việt, đồng thời giữ nguyên ý nghĩa và mở rộng một số phần phù hợp:


Làm thế nào để thêm hỗ trợ _ENV của Lua 5.2 vào LuaJIT 2.0

Dự án của chúng tôi ban đầu được xây dựng dựa trên tiêu chuẩn Lua 5.2, nhưng gần đây chúng tôi muốn chuyển đổi sang LuaJIT 2.0 để tận dụng hiệu năng vượt trội của nó. Tuy nhiên, một trở ngại lớn đã xuất hiện: LuaJIT 2.0 không hỗ trợ tính năng _ENV mới được giới thiệu trong Lua 5.2. Thậm chí, khả năng cao là nó sẽ không bao giờ được hỗ trợ trong tương lai.

Ghi Chú Phát Triển (26): Mô-Đun AOI Và Chuyển Động

Thời gian gần đây, tôi tập trung tối ưu hiệu năng hệ thống máy chủ game nhằm nâng cao khả năng chịu tải. Những cải tiến chính bao gồm:

1. Bộ Giám Sát Thời Gian Thực Sau khi viết lại toàn bộ kiến trúc nền tảng và cập nhật giao thức truyền tin, lần đầu tiên chúng tôi có thể triển khai hệ thống giám sát thời gian xử lý từng dịch vụ. Trước đây điều này gần như bất khả thi vì:

Những Thay Đổi Chi Tiết Trong Lua 5.2

Gần đây mình có ý định thử nghiệm xem LuaJIT 2.0 sẽ mang lại cải thiện hiệu năng nào cho hệ thống hiện tại. Tuy nhiên, vấn đề phát sinh ngay từ đầu là hệ thống chúng tôi được xây dựng trên nền tảng Lua 5.2, trong khi LuaJIT 2.0 chỉ hỗ trợ API của Lua 5.1. Dự kiến trong tương lai gần, phiên bản này cũng khó có khả năng hỗ trợ Lua 5.2.

0%