nói dối e blog

无标题

Chúng ta cần một mô-đun hoạt hình như thế nào?

Chúng ta cần một mô-đun hoạt hình như thế nào?

Chúng ta cần một module hoạt hình như thế nào?

Trong dự án gần đây, chúng ta gặp phải hàng loạt yêu cầu về hoạt hình cơ khí: máy đào mỏ, bơm hút nước, máy phát điện, máy lắp ráp, cánh tay robot… Tôi nhận ra module hoạt hình tự phát triển của chúng ta hiện không đủ sức đáp ứng yêu cầu này.

Cơ Chế Cánh Tay Cơ Giới Trong Game Tự Động Hóa

Trong quá trình phát triển tựa game tự động hóa có tên chưa công bố, nhóm chúng tôi đã xây dựng hệ thống vận chuyển tương đồng với Factorio ở nhiều khía cạnh. Tuy không sử dụng băng chuyền (conveyor belt) như giải pháp chính, nhưng hệ thống cánh tay cơ giới (mechanical arm) đã được triển khai để xử lý các tác vụ di chuyển vật phẩm trong phạm vi ngắn.

Hành Trình Gian Nan Của Lua 5.4.4

Ngày 21 tháng 12 năm 2021, phiên bản Lua 5.4.4 rc2 chính thức được công bố. Đây là một phiên bản mang tính “thai nghén” đầy khó khăn. Các phiên bản nhỏ trước đây từ rc1 đến khi phát hành chính thức thường chỉ mất tối đa hơn mười ngày, nhưng lần này đã vượt quá một tháng mà vẫn chưa thể hoàn tất.

Ngay sau vài giờ phát hành rc2, qua cuộc thảo luận trên danh sách email, một lỗi nghiêm trọng đã được phát hiện. Điều thú vị là lỗi này không phải do phiên bản 5.4.4 gây ra, mà đã tồn tại âm ỉ hơn một thập kỷ. Trước đó khi phát hành rc1 cũng đã tìm thấy lỗi tương tự - không phải từ phiên bản mới. Có vẻ như trong hai năm gần đây, số lượng người tham gia kiểm thử Lua tăng đột biến, cùng với những phương pháp kiểm thử hiện đại đã vén bức màn che giấu bấy lâu, phơi bày hàng loạt lỗi “cổ thụ” mà trước đây chưa từng được phát hiện. Đa phần những lỗi này đều liên quan mật thiết đến hệ thống thu gom rác (GC).

Tối Ưu Hóa Truy Cập Bảng Cấu Hình Lua Trong C

Trong hai ngày qua, khi viết mã tôi đã sử dụng lại module cache đã xây dựng trước đây cho bảng cấu hình Lua. Tuy nhiên cảm thấy cách dùng vẫn chưa đủ gọn gàng và tiện lợi. Tôi đã quyết định thiết kế lại toàn bộ hôm nay.

Yêu cầu bài toán: Dự án lưu trữ lượng lớn thông tin cấu hình trong các bảng Lua có cấu trúc phân cấp dạng cây. Hầu hết logic được viết bằng Lua có thể truy cập trực tiếp bằng cú pháp ngôn ngữ. Tuy nhiên một số chức năng yêu cầu hiệu năng cao lại được triển khai bằng C, đòi hỏi hàm C phải đọc được dữ liệu cấu hình Lua này.

Xử Lý Dữ Liệu Liên Kết Đồng Loại Trong ECS

Như đã trình bày trong bài viết trước về mô hình xử lý dưới ECS, thách thức lớn nhất của mô hình ECS nằm ở việc xử lý các thành phần (component) đồng loại có mối liên hệ tương hỗ với nhau.

Dữ liệu lý tưởng nhất cho ECS xử lý là những dữ liệu độc lập hoàn toàn, mỗi đơn vị dữ liệu không có bất kỳ mối liên hệ nào với đơn vị khác. Khi nhiều đơn vị dữ liệu có mối liên hệ cố hữu, chúng ta có thể coi chúng là các thành phần khác nhau thuộc cùng một thực thể (entity), từ đó tận dụng khái niệm entity để quản lý. Trong trường hợp này, chúng ta vẫn có thể lặp qua các dữ liệu theo thứ tự cố định.

Kiểm Tra Số Nguyên Tố Miller-Rabin

Kiểm tra nguyên tố Miller-Rabin
Trong dịp lễ kỷ niệm 1024 dành cho lập trình viên năm nay, công ty tổ chức một buổi chia sẻ kiến thức, và tôi đã trình bày về chủ đề tối ưu hóa thuật toán. Trong đó, tôi nhấn mạnh rằng việc cải tiến logic của thuật toán thường hiệu quả hơn nhiều so với việc tối ưu hóa cú pháp code thông thường. Một ví dụ tôi nêu ra là bài toán kiểm tra tính nguyên tố của một số nguyên.

0%