Bộ Công Cụ Toán Lập Trình Game
Mọi con số đằng sau một trò chơi trong một trang — đường cong XP, tỉ lệ rơi đồ và bảo hiểm (pity), bảng loot, sát thương và giáp, thời gian khung hình và tick, lưới sprite, isometric và lục giác, nhiễu thủ tục và đường cong easing.
Các bước
- Chọn tab: XP & cấp độ, Rơi đồ & loot, Sát thương & chiến đấu, Khung hình & tick, Lưới & ô, Nhiễu hoặc Easing.
- Nhập số liệu. Kết quả, biểu đồ và bảng cập nhật ngay khi bạn gõ.
- Ở những chỗ có kiểm tra ngẫu nhiên, đặt Seed rồi bấm Chạy mô phỏng — cùng một seed luôn cho cùng kết quả.
- Xuất thứ bạn cần: Bảng cấp độ dạng CSV hoặc JSON, Bảng loot có trọng số dạng JSON, nhiễu dạng PNG, Heightmap PGM (16-bit) hoặc Heightmap CSV, và mã easing bằng nút Sao chép.
Mẹo
- Trong Công thức, các đường cong chung (Tuyến tính, Đa thức (a·L^b), Hàm mũ (a·r^L) và Biểu thức tuỳ chỉnh) cho XP của từng lần lên cấp; Kiểu RuneScape và các nhóm Pokémon cho tổng XP để đạt một cấp. Bảng luôn hiện cả hai. Medium Fast đạt đúng 1,000,000 XP ở cấp 100, còn kiểu RuneScape đạt 13,034,431 ở cấp 99 (các số hiển thị theo cùng định dạng với bảng trong công cụ).
- Biểu thức tuỳ chỉnh nhận
L, số,+ - * / % ^, dấu ngoặc và các hàmmin,max,floor,ceil,round,abs,sqrt,exp,log,log2,log10.^tính từ phải sang trái và ưu tiên hơn dấu trừ đứng đầu, nên2^3^2là 512 và-2^2là −4.log(x)là logarit tự nhiên;log(x, 2)nhận thêm cơ số. Không cho phép gì khác — mọi tên khác đều bị từ chối. - Thời gian lên cấp đổi XP kiếm được mỗi phút thành thời gian chơi thực tế giữa hai cấp bất kỳ.
- Nạp mẫu Bảo hiểm mềm + cứng cho một banner gacha điển hình: tỉ lệ gốc 0.6%, cộng 6% mỗi lượt từ lượt 74, chắc chắn ra ở lượt 90. Số lượt trung bình mỗi lần ra khoảng 62 — thấp hơn nhiều so với 167 lượt nếu chỉ có 0.6% cố định.
- Trong Bảng loot có trọng số, tổng trọng số không cần bằng 100 — cột Tỉ lệ tự chuẩn hoá. Thêm một mục tên "Không có gì" để mô phỏng lượt trắng tay.
- Công thức giáp cho phép đổi mô hình. Với Hyperbol K / (K + giáp), 100 giáp giảm một nửa sát thương và nhân đôi Máu hiệu dụng (EHP); bảng Sát thương nhận vào theo lượng giáp đặt mọi mô hình cạnh nhau.
- Trong Bước thời gian cố định, FPS thấp nhất vẫn giữ thời gian thực bằng tần số vật lý chia cho Số bước con tối đa mỗi khung. Thấp hơn mức đó, game chạy chậm lại thay vì đứng hình.
- Với Sprite sheet, Lề là viền quanh toàn bộ ảnh còn Khoảng cách giữa ô là khe giữa các ô, giống quy ước của Tiled. UV được hiện cho cả gốc trên-trái và gốc dưới-trái.
- Liền mạch (lát gạch được) dùng được cho nhiễu Value và Perlin. Kiểm tra lát 2 × 2 đặt bốn bản cạnh nhau để bạn thấy không có đường nối. Heightmap PGM 16-bit nhập thẳng được vào hầu hết công cụ địa hình.
- Ở tab Easing, chọn Hàm Penner hoặc cubic-bezier. Mã CSS cho
cubic-bezier()gần nhất kèm đườnglinear()lấy mẫu chính xác; Unity C# tạo các keyframeAnimationCurve, còn GLSL và JavaScript cho một hàm dán vào dùng ngay.
Câu hỏi thường gặp
Vì sao món đồ rơi 1% của tôi không rơi sau 100 lần thử?
Mỗi lần thử là độc lập, nên 100 lần với tỉ lệ 1% chỉ cho 63.4% khả năng rơi ít nhất một lần, không phải 100%. Khoảng 36.6% người chơi vẫn trắng tay; bạn cần 299 lần để đạt 95% và 459 lần để đạt 99%. Chính cái đuôi xui xẻo dài đó là lý do game thêm cơ chế bảo hiểm.
Số lượt trung bình của bảo hiểm là chính xác hay mô phỏng?
Chính xác. Công cụ nhân xác suất đi tới từng lượt với tỉ lệ ra của lượt đó, nên trung bình, trung vị, P90 và P99 không cần ngẫu nhiên. Mô phỏng có seed chỉ để cho thấy cùng con số đó xuất hiện từ các lượt quay ngẫu nhiên.
Vì sao ảnh nhiễu không bao giờ đen hẳn hay trắng hẳn?
Cộng nhiều octave là lấy trung bình nhiều lớp, kéo giá trị về gần giữa — mẫu vẫn nằm trong −1…1 nhưng hiếm khi chạm hai đầu. Bật Kéo giãn tương phản để đưa giá trị nhỏ nhất và lớn nhất thực tế về toàn dải, cả ở ảnh xem trước lẫn mọi file xuất.
Vì sao nhiễu simplex không lát liền mạch được?
Nhiễu simplex nằm trên lưới tam giác không lặp lại theo ô vuông, nên quấn nó lại sẽ để lộ đường nối. Nhiễu Value và Perlin dùng lưới vuông: khi bật Liền mạch (lát gạch được), mỗi octave vừa khít một số nguyên ô trên bề ngang ảnh, nên mép phải nối tiếp mép trái chính xác.
Có gì bị tải lên không?
Không. Mọi phép tính, mô phỏng và hình ảnh đều được tạo ngay trên trình duyệt của bạn.