nói dối e blog

Vấn Đề Nhỏ Liên Quan Đến Font TTF

Động cơ game của chúng tôi sử dụng thư viện stb_truetype để xử lý font TTF. Gần đây, khi sử dụng font Alibaba普惠体 do công ty cung cấp, chúng tôi gặp phải một lỗi bất thường: chiều cao ký tự tiếng Trung hiển thị ra chỉ đạt khoảng 70px thay vì 100px như mong muốn. Trong khi đó, các font tiếng Trung thông thường (ví dụ: font mặc định của Windows) lại hoạt động bình thường.

Một Vài Suy Nghĩ Về Tương Tác Trong Game Mobile

Đây là bài viết tiếp nối những chia sẻ năm ngoái. Gần đây, tôi đang áp dụng các ý tưởng này để cải tiến một trò chơi xây dựng theo phong cách “Factorio” mà chúng tôi đang phát triển.

Công cụ phát triển game của chúng tôi được xây dựng trên nền tảng PC, nhưng mục tiêu là tối ưu hóa trải nghiệm trên smartphone. Dù tôi luôn mong muốn quá trình phát triển diễn ra trực tiếp trên thiết bị thật, công cụ và phần nhân chính viết bằng C vẫn đang trong giai đoạn điều chỉnh liên tục. Việc debug trên thiết bị di động khó khăn hơn nhiều so với trên PC, bởi thao tác trên màn hình cảm ứng không tiện bằng chuột bàn phím. Tuy nhiên, vài tuần gần đây mọi thứ đã ổn định hơn. Chúng tôi dần chuyển sang thử nghiệm trực tiếp trên điện thoại, từ đó chú trọng nhiều hơn đến các vấn đề tương tác đặc thù cho thiết bị di động.

Những Cải Tiến Gần Đây Về ECS

Trong thời gian qua, chúng tôi đã thực hiện một loạt tối ưu hóa cho hệ thống engine 3D. Hệ thống quản lý đối tượng render của engine được xây dựng dựa trên kiến trúc ECS, toàn bộ engine đều được thiết kế và phát triển bằng Lua. Điều này cho phép dữ liệu trong hệ thống render có thể được đọc/ghi dễ dàng thông qua Lua. Tuy nhiên, khi số lượng đối tượng cần render tăng lên, hiệu năng của vòng lặp render viết bằng Lua bắt đầu bộc lộ những điểm yếu.

Phiên Bản Mới Trò "Bốc Con Cá Mèo"

Trước đây tôi dạy các con chơi bài tây từ trò cổ điển “Bốc con cá mèo” (tên tiếng Anh là Old Maid). Trò này cực kỳ đơn giản nhưng lại khiến các bé thích thú vô cùng.

Luật chơi truyền thống như sau: dùng bộ bài 54 lá, rút bỏ đi 1 lá Joker và 1 lá 8 (hoặc bất kỳ lá nào khác). Chia đều toàn bộ bài cho các người chơi. Mỗi người sau khi nhận bài sẽ loại bỏ hết các đôi bài trùng nhau, chỉ giữ lại những lá bài lẻ. Vòng chơi bắt đầu, mỗi lượt người chơi sẽ rút 1 lá bài từ người bên cạnh, nếu lá bài vừa rút có thể ghép đôi với bài trên tay thì được loại bỏ đôi bài đó. Ai hết bài trước là người chiến thắng, và cuối cùng sẽ luôn có một người “đen đủi” còn giữ lại đúng 2 lá bài không ghép đôi được là Joker và lá 8.

Hành Trình Cùng Con Chơi Board Game - Phần 2

Hôm nay tình cờ thấy một bạn để lại bình luận dưới bài viết cũ, nhắc đến việc năm ngoái bạn ấy có hỏi về tiến triển trong việc chơi board game cùng con. Nghĩ lại thấy đúng là nên viết thêm một bài cập nhật mới.

Những năm gần đây vì dịch bệnh, thời gian cả nhà ở nhà cùng nhau tăng lên đáng kể. Hai nhóc con nhà mình cũng lớn hơn nhiều rồi, từ 8-9 tuổi và 6 tuổi rưỡi, nên có thể chơi được nhiều game hơn trước. Mình hiện nay hầu như không còn ra tiệm chơi với bạn bè nữa, mà thay vào đó là duy trì lịch chơi 3-4 lần mỗi tuần tại nhà.

Hành Trình Debug Đầy Gian Nan

Vào những ngày cuối cùng trước kỳ nghỉ lễ 1/5, tôi đã đối mặt với một lỗi nghiêm trọng kéo dài suốt hai ngày trời. Đây là một trong ba lỗi khó nhằn nhất trong sự nghiệp của tôi, đáng để ghi lại như một bài học kinh nghiệm.

Vấn đề được phát hiện vào hai ngày trước lễ, khi nhiều đồng nghiệp đã nghỉ phép. Tôi cũng dự định tận hưởng kỳ nghỉ bên gia đình và con cái. Trong lúc cập nhật kho mã nguồn của dự án game như thường lệ, tôi bất ngờ gặp phải lỗi sụp đổ chương trình. Ban đầu tôi không quá lo lắng vì dự án game được phát triển chủ yếu bằng Lua - ngôn ngữ không yêu cầu biên dịch lại sau mỗi lần cập nhật. Thông thường tôi chỉ build dự án một lần mỗi tuần. Có lẽ đây chỉ là vấn đề do tôi chưa build trong thời gian dài, nên tôi tiến hành build lại. Tuy nhiên lỗi vẫn tồn tại, dù xác suất xảy ra không cao - khoảng 1/3 lần khởi động.

0%