nói dối e blog

Skynet 1.1

Sau nhiều ngày chần chừ, cuối cùng cũng quyết định chính thức phát hành skynet 1.1.

So với lần cập nhật trước, ngoài những bản sửa lỗi nhỏ lẻ, chúng tôi còn thực hiện một loạt thay đổi quan trọng và tối ưu hóa hệ thống.

Tất cả các mô-đun Lua trong skynet đã được chuẩn hóa với tiền tố “skynet”, đồng thời một số trình điều khiển cơ sở dữ liệu được sắp xếp gọn gàng dưới không gian tên skynet.db. Để hỗ trợ ngược phiên bản 1.0, bạn chỉ cần thêm thư mục lualib/compat10 vào cấu hình hệ thống là có thể sử dụng các đường dẫn cũ một cách mượt mà.

Vấn Đề Ẩn Chứa Sự Không Nhất Quán Trong Kết Quả Phép Toán Dấu Phẩy Động

Hôm qua, A Nam phát hiện một lỗi bug trong dự án do sự không nhất quán của phép toán dấu phẩy động. Điều kỳ lạ là cùng một đoạn mã C hoàn toàn giống nhau, tham số đầu vào cũng hoàn toàn tương đồng, nhưng lại cho ra hai kết quả khác biệt. Hiện tượng này khiến tôi vô cùng hứng thú và quyết định nghiên cứu kỹ lưỡng nguyên nhân cốt lõi.

无标题

Định dạng tệp dữ liệu của ### Paradox

Định dạng tệp dữ liệu của ### Paradox

Cấu trúc tệp dữ liệu của Paradox là một chủ đề đặc biệt đối với tôi - một người say mê các tựa game chiến thuật và mô phỏng. Trong hệ sinh thái P社 (P社 5) huyền thoại, dù đã từng trải nghiệm qua Crusader Kings và Hearts of Iron, nhưng tôi dành phần lớn thời gian và tâm huyết cho Victoria và Stellaris. Điều khiến tôi chú ý không chỉ là gameplay mà chính là hệ thống dữ liệu mở (open modding) độc đáo của engine chung mà các game này sử dụng.

Datasheet - Người Kế Nhiệm Của Sharedata

Trong hệ sinh thái Skynet, module sharedata đã trở thành “trái tim” cho việc chia sẻ bảng dữ liệu giữa hàng chục dịch vụ. Ý tưởng cốt lõi xuất phát từ thực tế: khi bạn có hàng trăm dịch vụ chạy song song, việc nạp cùng một bảng dữ liệu chỉ đọc vào từng dịch vụ riêng biệt không chỉ gây lãng phí bộ nhớ, mà còn tạo ra “cơn ác mộng” khi cần cập nhật nóng dữ liệu. Tuy nhiên, qua nhiều năm vận hành, một số giới hạn của sharedata đã lộ rõ, khiến chúng tôi phải xây dựng giải pháp thay thế - datasheet.

Điều Chỉnh Không Gian Tên Của Mô-Đun Skynet

Vài tuần trước, một số bạn học viên đã phàn nàn rằng các module Lua được cung cấp trong hệ sinh thái Skynet hiện tại thiếu không gian tên (namespace) chuẩn hóa. Việc đặt tên phẳng như vậy dễ gây ra xung đột tên với các module do chính team phát triển dự án tự xây dựng. Dù có thể tự thiết lập namespace cho các module do team tự phát triển, nhưng khi tích hợp chung thì cách sắp xếp này vẫn tạo cảm giác lộn xộn, thiếu nhất quán.

Hỗ Trợ Chia Sẻ Một Phần Cấu Trúc Cây

Trong các engine đồ họa, cấu trúc cây (cây n-nhánh) là cách biểu diễn tự nhiên và phổ biến nhất cho các đối tượng. Thông thường các nút con sẽ kế thừa một số trạng thái từ nút cha như ma trận biến đổi. Khi render hoặc cập nhật, ta có thể duyệt cây theo thứ tự tiền thứ tự (pre-order traversal) để nhân các ma trận biến đổi theo cấp độ.

0%