nói dối e blog

Cách Trình Bày Dữ Liệu Trò Chơi

Quy trình từ logic trò chơi đến việc hiển thị hình ảnh có nhiều điểm tương đồng nhưng cũng khác biệt so với hệ thống GUI. Trong thiết kế phần mềm, xu hướng phổ biến là tách biệt dữ liệu và giao diện. Trong hệ thống GUI, dữ liệu thường được gọi là Model, còn giao diện là View. Mô hình MVC (cùng các biến thể như MVP, MVVM) được xây dựng dựa trên nguyên tắc này: logic trò chơi cập nhật Model, sau đó ánh xạ Model thành View thông qua module trình bày.

Công Cụ Phát Triển Prototype Dạng Roguelike

Tôi cực kỳ say mê thể loại game Roguelike nguyên bản - nói theo nghĩa đen là những trò chơi mang đúng tinh thần của tựa game Rogue huyền thoại. Trong thế giới game kiểu này, yếu tố hình ảnh lại là phần ít quan trọng nhất. Chỉ cần hệ thống ký tự có thể truyền đạt rõ ràng các tương tác cần thiết là đủ thỏa mãn rồi.

Tôi luôn có một sự yêu thích đặc biệt với những giao diện được xây dựng từ các ký tự ASCII. Hồi nhỏ, những trò chơi tự chế đầu tiên của tôi đều bắt đầu từ chế độ text mode. Đến tận hôm nay, khi muốn kiểm chứng nhanh một ý tưởng game mới, giao diện text mode mang phong cách Roguelike vẫn là lựa chọn tiết kiệm thời gian nhất. Bạn không phải đau đầu tìm kiếm asset đồ họa, không cần bận tâm về quy trình tích hợp hình ảnh với code phức tạp. Chỉ cần vài dòng ASCII art đơn giản cũng có thể trở thành điểm nhấn thú vị trong quá trình lập trình.

Callback Đúng Trong Lua Binding

Trong quá trình binding Lua, việc xử lý callback đúng cách là một chủ đề thú vị và đầy thách thức. Gần đây tôi đã sửa một lỗi trong hệ thống Skynet: hàm callback được thiết lập lại trong Lua không hoạt động như mong đợi. Vấn đề này khiến tôi phải suy nghĩ lại về cách thiết kế hệ thống callback từ thời kỳ đầu phát triển Skynet cách đây 10 năm.

Nén Dữ Liệu Skinning Hiệu Quả

Trong kỹ thuật skinning truyền thống, mỗi đỉnh mô hình cần lưu trữ hai nhóm thông tin quan trọng: danh sách các xương ảnh hưởng và trọng số tương ứng của từng xương. Do giới hạn về sự căn chỉnh bộ nhớ GPU, thông thường các game hiện đại giới hạn tối đa 4 xương tác động lên một đỉnh. Nếu không áp dụng kỹ thuật tối ưu, với số lượng xương dưới 256, mỗi đỉnh sẽ cần 4 byte cho chỉ số xương và 4 giá trị float 32-bit cho trọng số.

Chuyển Đổi Shader Của Effekseer

Dự án chuyển đổi shader của Effekseer
Ban đầu, engine game của chúng tôi sử dụng hệ thống particle tự phát triển. Khi hoàn thành xong phần cốt lõi, trong giai đoạn xây dựng công cụ biên tập đi kèm, một đồng nghiệp phụ trách phát triển công cụ đã đề xuất chuyển sang hệ thống mã nguồn mở trưởng thành khác để giảm gánh nặng bảo trì.

Đồng nghiệp đó giới thiệu Effekseer và đã hoàn thành việc tích hợp Effekseer vào engine của chúng tôi.

0%