Tôi đã thử làm một ứng dụng mô phỏng vật lý xúc xắc.
(apps.apple.com)Xin chào. Tôi vừa ra mắt ứng dụng cá nhân đầu tiên, Dicey. Đây là một ứng dụng xúc xắc vật lý dành cho iOS.
Tôi định chơi board game với con gái nhưng không có xúc xắc, nên đi tìm một ứng dụng xúc xắc kỹ thuật số. Nhưng hóa ra chẳng có app nào cho phép lắc thật để gieo cả. Phần lớn đều là kiểu RNG: bấm nút thì ra số, rồi chỉ phủ thêm animation gieo xúc xắc. Cũng có app phát hiện thao tác lắc, nhưng chỉ biết là “đã lắc”, chứ không có thông tin về hướng. Thấy lạ nên tôi nghĩ hay là tự làm thử.
Một thời gian sau tôi nghỉ chăm con, nhưng chỉ chăm con thôi thì cũng hơi vậy, mà cũng không có ý tưởng nào khác, nên tôi quyết định làm cái này.
Vì không rành Unity Physics nên tôi loay hoay khá lâu. Tăng ma sát thì một đỉnh của viên xúc xắc dính xuống sàn; để không dính thì nó lại không lăn mà chỉ trượt — vì thế bí này mà tôi đã thử tăng giá trị ma sát từ 5 lên 120, hiệu chỉnh ma sát theo số điểm tiếp xúc, khi một đỉnh chạm sàn thì thêm torque ngẫu nhiên để làm nó đổ xuống, đủ trò cả. Sau này mới biết hóa ra chỉ cần đổi vài thiết lập physics là giải quyết được. ^^;
Điện thoại tôi dùng là Fold6, nhưng dù rung của Galaxy đã tốt hơn trước, nó vẫn không tạo được cảm giác va chạm ngắn và sắc. Tôi biết rung của iPhone tốt, nên mua một chiếc iPhone 14 cũ và một MacBook Air để port sang iOS chạy thử, và cảm giác khác hẳn. Vì vậy giữa quá trình phát triển tôi chuyển iOS thành nền tảng chính.
Cứ làm như vậy, một ngày tôi thử tìm “dice” trên App Store thì thấy đã có một app tên “Shake 'em Dice”. Cách lắc để gieo cũng như cách thêm xúc xắc khá giống app của tôi. Tôi nghĩ tiêu rồi. Nhưng vì đã bỏ nhiều thời gian, và tôi nghĩ phần haptic của mình tốt hơn, nên vẫn tiếp tục. Apple cũng từ chối lần nộp đầu tiên với lý do “quá giống ứng dụng hiện có” (4.3a). Vì vậy tôi kéo tính năng “đổi cốc” vốn định để trả phí lên làm điểm khác biệt, và tạo một chế độ cốc trong đó âm thanh khi va vào tường không phải tiếng xúc xắc mà là tiếng nhạc cụ.
Tôi đổi chiếc cốc thành hình bát giác và map các nốt do-re-mi vào từng vách. Khi viên xúc xắc đập vào vách, nốt đó sẽ vang lên. Nếu kéo và bắn như ná cao su, bạn có thể nhắm vào vách mong muốn để chơi giai điệu; nếu lắc thì nhiều nốt sẽ vang lên dồn dập; còn nghe chế độ tự động chơi thì có cảm giác như hộp nhạc. Bên trong, tôi parse file MIDI để dùng làm bản nhạc, phản ánh cả cường độ nốt và áp dụng vào lực đập vào vách (= âm lượng). Về mặt kỹ thuật, việc cho người dùng tự đưa MIDI vào để chơi bài mình muốn cũng không khó, nhưng tôi không biết liệu có ai muốn không.
Từ đây là phần tôi đang băn khoăn.
Một là hướng “cốc âm nhạc” có đúng không. Vẫn còn dư địa để đào sâu hơn (ghi âm sắc theo từng cường độ va chạm, thêm nhạc cụ, luật tính tổng xúc xắc cho TRPG, v.v.). Nhưng tôi không biết ngay từ đầu có ai muốn chơi nhạc bằng xúc xắc hay không. Bản thân xúc xắc trên di động cũng chỉ là vật thay thế xúc xắc thật, nên nhu cầu có vẻ không lớn. Vì làm vì mình thích nên tôi không chắc. Dù vậy, khi ngồi nhìn MIDI tự động chơi thì đúng là có cảm giác thư giãn cả về hình ảnh lẫn âm thanh — nhưng có thể chỉ vì tôi có tình cảm với nó, và cũng có thể chỉ mình tôi thấy vui. ^^;
Điều còn lại là nỗi băn khoăn căn bản hơn. Mọi người đều làm những thứ kiếm ra tiền như SaaS hay công cụ cho developer, còn tôi thì lại dành rất nhiều thời gian một mình làm thứ mà mình nghĩ “làm cái này chắc vui”. Nó không hào nhoáng hay ngầu, nội dung cũng đơn giản; dù có thể nói là chưa quảng bá, nhưng vì chẳng có mấy người tải — nên tôi cũng tự hỏi có nên tìm một chủ đề có tính thị trường hơn không.
Mô hình doanh thu hiện tại là hoàn toàn miễn phí, không quảng cáo, không mua trong app. Vì tôi không thích thu tiền cho các chức năng cơ bản. Sau này tôi nghĩ có thể đặt một số thiết kế cốc premium hoặc xúc xắc đặc biệt làm mua trong app, nhưng cũng không biết đó có phải hướng đúng không.
Đây là dự án đầu tiên tôi hoàn thành đến cùng, nên hơn là “làm thật tốt”, tôi làm với tâm thế trước hết cứ hoàn thành đã. Nếu các bạn dùng thử và cho tôi phản hồi thẳng thắn thì sẽ rất giúp ích.
2 bình luận
Dung lượng... 420MB, giá mà bớt đi một số 0 thì có lẽ sẽ tốt hơn.
Đúng vậy. Tôi cứ trì hoãn vì nghĩ không phải vấn đề về tính năng, nhưng có lẽ cần tối ưu dung lượng. Cảm ơn bạn đã góp ý.