nói dối e blog

Đã Thiết Kế Một Định Dạng Dữ Liệu

Gần đây tôi dành thời gian thiết kế và triển khai một định dạng dữ liệu mới cho engine game của chúng tôi. Trước đây, chúng tôi luôn sử dụng Lua để mô tả dữ liệu, nhưng khi hệ thống kiểu dữ liệu ngày càng hoàn thiện, đồng nghiệp đề xuất nên thiết kế một định dạng chuyên dụng. Định dạng mới cần đạt được nhiều mục tiêu: dễ viết và đọc hơn Lua, thân thiện với công cụ so sánh (diff), phù hợp với hệ thống kiểu dữ liệu của chúng tôi, đồng thời có hiệu suất phân tích cú pháp cao hơn.

Phương Pháp Kết Xuất Phông Chữ Chống Răng Cưa 16 Lần Hiệu Quả

Hôm qua tôi đọc một loạt bài viết rất thú vị giới thiệu một kỹ thuật mới trong việc xử lý phông chữ chống răng cưa (anti-aliasing) trên giao diện người dùng. Ngay lập tức tôi quyết định thử nghiệm phương pháp này bằng cách xây dựng một bản thực thi trên CPU để kiểm tra hiệu quả với phông chữ tiếng Trung. Dù kết quả cho thấy thuật toán này có hạn chế nhất định khi ứng dụng trong ngành công nghiệp game, nhưng những nguyên lý khoa học đằng sau vẫn mang đến nhiều cảm hứng sâu sắc.

Thiết Kế Hệ Thống Hạt (Particle System)

Gần đây, khi cần tích hợp một module hiệu ứng đặc biệt vào engine 3D của chúng tôi, tôi đã đọc một bài viết rất giá trị có tiêu đề “Efficient CPU Particle Systems”. Tác giả bài viết này từng thiết kế hệ thống hạt cho hàng loạt tựa game MMO/MOBA nổi tiếng, tiêu biểu là Elder Scrolls Online. Những kinh nghiệm thực tiễn từ bài viết này mang lại nhiều góc nhìn đáng quý cho công việc hiện tại của tôi.

Lua 5.4 Có Thể Sẽ Thêm Tính Năng To-Be-Closed

Lua 5.4 có thể sẽ bổ sung tính năng “to-be-closed” - một bước tiến mới trong quản lý tài nguyên

Nếu bạn thường xuyên theo dõi kho lưu trữ chính thức của Lua trên GitHub, chắc hẳn đã nhận thấy gần đây đã xuất hiện một tính năng mới mang tên “to-be-closed” dành cho biến local. Đây là một cải tiến đáng chú ý trong hành trình phát triển ngôn ngữ lập trình nhẹ nhàng nhưng hiệu quả này.

Tệp Nguồn Trong Kho Lưu Trữ Biên Dịch Lười Biếng

Hệ thống lưu trữ tài nguyên biên dịch theo nhu cầu trong kho dữ liệu

Kho tài nguyên của engine 3D chúng tôi được xây dựng dựa trên cấu trúc Merkle Tree, được triển khai trên hệ thống tệp tin vật lý và gọi là VFS (Hệ thống tệp ảo). Cấu trúc này có nhiều điểm tương đồng với kho dữ liệu của Git. Về thiết kế hệ thống này, chúng tôi đã có nhiều bài viết chi tiết trước đây.

Skynet 1.2.0 - Bản Cập Nhật Quan Trọng Với Hàng Loạt Cải Tiến

Tôi vừa chính thức phát hành phiên bản Skynet 1.2.0 hôm nay. Đây là bản cập nhật đầu tiên sau 1 năm kể từ phiên bản 1.1.0 ra mắt năm ngoái. Dù việc đặt tên có ý nghĩa cho phiên bản cụ thể không mang nhiều giá trị thực tế khi tôi không duy trì một phiên bản “ổn định chính thức”, nhưng qua việc theo dõi các issues, tôi nhận thấy nhiều người dùng vẫn đang gặp vấn đề liên quan đến phiên bản 1.1.0. Vì vậy, việc duy trì chu kỳ cập nhật hàng năm vẫn là lựa chọn hợp lý để thuận tiện cho cộng đồng.

0%