nói dối e blog

Vấn Đề Chuyển Đổi Dữ Liệu Tài Nguyên

Trong quá trình làm việc với engine game vào tuần trước, chúng tôi gặp một số lỗi liên quan đến thiết kế cũ. Sau vài ngày thảo luận sôi nổi, hôm nay đã thống nhất được giải pháp cuối cùng cần được ghi chép lại chi tiết.

Bản chất vấn đề: Lỗi phát sinh từ quy trình chuyển đổi tài nguyên trò chơi. Các tài nguyên game thường trải qua quá trình chuyển đổi từ định dạng gốc sang định dạng tối ưu cho nền tảng chạy. Ví dụ, file ảnh gốc là PNG nhưng engine yêu cầu định dạng nén phù hợp từng nền tảng - DXT cho Windows và KTX cho di động. Trong các engine thương mại như Unity, quá trình này được xử lý trong workflow nhập tài nguyên.

Vấn Đề Quản Lý Vòng Đời Tài Nguyên Trong Engine Game

Trong quá trình phát triển engine game gần đây, khi sửa các lỗi liên quan đến module quản lý tài nguyên, tôi đã có một số suy nghĩ mới nhằm đơn giản hóa việc quản lý vòng đời của các đối tượng tài nguyên. Thực tế module này đã trải qua vài lần tái cấu trúc, và tôi muốn hệ thống hóa lại quá trình phát triển của nó để mọi người dễ hình dung.

LÀM SAO ĐỂ TRỞ THÀNH NGHỆ NHÂN LẬP TRÌNH CHUYÊN NGHIỆP?

Thường xuyên có những bạn trẻ (khoảng 20 tuổi) hỏi tôi rằng làm thế nào để phát triển sự nghiệp trong ngành lập trình. Vì mỗi người có hoàn cảnh và trải nghiệm riêng, thật khó để đưa ra câu trả lời cụ thể. Thay vào đó, tôi muốn chia sẻ một bài tổng kết chi tiết để các bạn tham khảo, tránh phải trả lời lại nhiều lần giống nhau.

So Sánh Các Định Dạng Nén Bản Đồ Pháp Tuyến

Vài ngày qua tôi liên tục bận rộn với việc bổ sung hỗ trợ định dạng ASTC cho bản đồ pháp tuyến trên thư viện bgfx. Trong không gian tiếp tuyến, các vector pháp tuyến được chuẩn hóa và thành phần Z luôn mang giá trị dương. Điều này cho phép chúng ta chỉ cần lưu trữ hai thành phần X và Y, thành phần Z sẽ được tính toán lại tại thời gian chạy.

Xây Dựng Máy Chủ Cache Unity Bằng Skynet

Trong một số dự án Unity của công ty, khi dữ liệu trên máy chủ cache tăng lên hàng trăm GB, chúng tôi thường xuyên gặp sự cố. Lần gần đây nhất, tiến trình bị sập do nodejs tiêu thụ quá nhiều bộ nhớ. Điều này khiến tôi băn khoăn: tại sao một dịch vụ gần như không cần lưu trữ trạng thái trong RAM lại ngốn nhiều tài nguyên đến vậy? Sau khi xem qua mã nguồn chính thức của cache server, tôi nhận thấy cách triển khai có nhiều điểm chưa tối ưu. Dù logic nghiệp vụ đơn giản, nhưng việc tự xây dựng một giải pháp dựa trên giao thức có thể hiệu quả hơn nhiều.

Phong Cách CamelCase Và Snake_case Trong Đặt Tên Biến

Thực ra tôi không quá câu nệ về kiểu trình bày mã nguồn như việc dùng khoảng trắng hay tab để thụt lề, vị trí đặt dấu ngoặc nhọn ở cuối dòng hay dòng mới, hay việc dùng gạch nối giữa các từ hay viết liền theo kiểu CamelCase. Khi làm việc độc lập, mỗi người sẽ có thói quen riêng, nhưng trong môi trường nhóm, tôi hoàn toàn chấp nhận việc mỗi người theo phong cách quen thuộc của họ.

0%