Mở rộng Scritchy Scratchy trên các nền tảng
Adam Axler - Unity
Senior Content Marketing Manager
Trang web này đã được dịch bằng máy để thuận tiện cho bạn. Chúng tôi không thể đảm bảo tính chính xác hoặc độ tin cậy của nội dung được dịch. Nếu bạn có thắc mắc về tính chính xác của nội dung được dịch, vui lòng tham khảo phiên bản tiếng Anh chính thức của trang web.
Mang Scritchy Scratchy lên PC và di động trong khi chuẩn bị cho Nintendo Switchᵀᴹ 2 và Nintendo Switch có nghĩa là điều chỉnh tương tác xúc giác trên các thiết bị rất khác nhau.
Việc mang lại khả năng phản hồi tương tự với một bộ điều khiển đã buộc đội ngũ phải suy nghĩ lại về đầu vào, hành vi giao diện người dùng, phản hồi xúc giác và cách trò chơi thích ứng với các kích thước màn hình và tỷ lệ khung hình khác nhau.
Quá trình chuyển đổi cũng có nghĩa là cân bằng hiệu suất với khả năng bảo trì. Thay vì tạo các nhánh nền tảng riêng biệt, nhóm đã giữ trò chơi trong một dự án Unity duy nhất để các tối ưu hóa, sửa lỗi và nội dung mới có thể áp dụng trên các nền tảng.
Kể từ khi ra mắt, trò chơi đã bán được hơn 1,25 triệu bản trên Steam và 250.000 bản trên di động, trong khi đạt xếp hạng tích cực 94% trên Steam qua hơn 14.000 đánh giá.
Chúng tôi đã nói chuyện với Constantin Lervig, giám đốc sáng tạo tại Lunch Money Games; Hannibal Sigfusson, CEO tại Lunch Money Games; Christian Biskopstø Thomsen, một lập trình viên làm việc với Funday Games về các bản port cho di động và Nintendo Switch; và Emil Kjæhr, trưởng bộ phận sản phẩm và đối tác tại Funday Games, về những thách thức port lớn nhất của Scritchy Scratchy.
*Nintendo Switch là nhãn hiệu của Nintendo.
Mục tiêu kỹ thuật chính của bạn khi bắt đầu quá trình chuyển đổi trên các nền tảng này là gì?
Christian Biskopstø Thomsen: Điều chính chúng tôi biết có thể trở thành vấn đề là hiệu suất. Không có nhiều mục tiêu cụ thể ngoài việc đảm bảo nó chạy mượt mà, nhắm mục tiêu 60 FPS, hoạt động trên các độ phân giải chúng tôi muốn hỗ trợ và cuối cùng mang lại cảm giác như một trải nghiệm gốc tốt trên mọi nền tảng.
Constantin Lervig: Cũng có những cân nhắc thiết kế nhỏ hơn, chẳng hạn như di chuyển các yếu tố giao diện người dùng cho các độ phân giải khác nhau và đảm bảo trải nghiệm không phụ thuộc vào đầu vào bằng bàn phím. Nhưng chúng tôi đã thiết kế trò chơi ngay từ đầu để tương đối dễ chuyển đổi, vì vậy phần lớn nền tảng đó đã có sẵn.

Những thách thức kỹ thuật lớn nhất bạn gặp phải khi chuyển đổi là gì?
CBT: Những thách thức lớn nhất trên thiết bị di động là các phần dành riêng cho nền tảng: làm cho các bản dựng hoạt động chính xác cho App Store và google play, xử lý các chứng chỉ, tích hợp các SDK của nền tảng và xử lý các hệ thống như lưu trữ đám mây.
Đầu vào trở thành một trong những thách thức lớn nhất vì chúng tôi đã thiết kế trò chơi dựa trên chuột và cảm ứng. Chúng tôi cần quyết định cách thức gãi nên hoạt động với tay cầm chơi game. Điều đó bao gồm các cuộc thảo luận thiết kế và nhiều lần lặp lại trước khi chúng tôi đi đến một thứ gì đó cảm thấy phù hợp.
Emil Kjæhr: Chúng tôi đã vạch ra cách thức tương tác nên hoạt động, bao gồm việc tự động căn chỉnh đầu vào về khu vực liên quan khi bạn mở một phiếu yêu cầu và bắt đầu cào.
Đối với Nintendo Switch 2 nói riêng, chúng tôi cũng muốn hỗ trợ chức năng chuột của nó.
Trên di động, chúng tôi đã thêm phản hồi xúc giác khi cào. Haptics hoạt động khác nhau trên một phạm vi thiết bị rất lớn, đặc biệt là trên Android. Chúng tôi có những trường hợp người dùng báo cáo rằng điện thoại của họ rung quá mạnh, vì vậy điều đó đã cần một số lần lặp lại.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Có những thách thức cụ thể nào trong việc làm cho các tương tác cốt lõi có cảm giác xúc giác trên các nền tảng khác nhau?
CBT: Gamepad chắc chắn là tương tác khó dịch nhất. Với cảm ứng, cơ chế cào hoạt động rất tốt gần như ngay lập tức. Với một bộ điều khiển, chúng tôi đã phải suy nghĩ lại về cảm giác của hành động đó thay vì chỉ đơn giản là ánh xạ một-một với con trỏ.
EK: Bốn người chúng tôi ngồi xuống để tham gia một buổi hội thảo và nhìn thẳng vào phiên bản PC. Chúng tôi đã phân tích tương tác một cách hiệu quả và xây dựng lại nó dưới dạng khung dây (wireframe) cho các nền tảng khác.
Sau khi chúng tôi làm điều đó, cách tiếp cận trực quan trở nên khá rõ ràng. Điều đó cũng nói lên việc chúng tôi đã suy nghĩ kỹ lưỡng về thiết kế ban đầu từ góc độ đa nền tảng như thế nào. Nó đã giúp chúng tôi tiết kiệm rất nhiều thời gian khi chúng tôi mở trò chơi lên di động và sau đó bắt đầu điều chỉnh tương tác cho bộ điều khiển.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Bạn đã sử dụng chiến lược chuyển đổi nào – một bản dựng duy nhất được điều chỉnh cho từng nền tảng, hay các nhánh riêng biệt dành riêng cho từng nền tảng? Tại sao?
CBT: Chúng tôi đã chọn một dự án và cơ sở mã Unity duy nhất thay vì duy trì các nhánh riêng biệt tồn tại lâu dài cho từng nền tảng.
Các nhánh nền tảng riêng biệt có xu hướng tách rời nhau. Bạn sửa một cái gì đó trên một nhánh và sau đó phải tích hợp nó vào các nhánh khác. Một khi bạn hỗ trợ bốn mục tiêu trở lên, điều đó sẽ trở nên tẻ nhạt rất nhanh.
Một dự án duy nhất có nhược điểm riêng vì bạn sẽ kết thúc với việc biên dịch có điều kiện và các kiểm tra cụ thể theo nền tảng xuyên suốt mã. Nhưng đối với kích thước và độ phức tạp của Scritchy Scratchy, chúng tôi đã giữ nó ở mức có thể quản lý được.
CL: Lợi thế lớn khác của một dự án duy nhất là mọi tối ưu hóa nhỏ và sửa lỗi đều được áp dụng trên tất cả các bản dựng.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Trình Unity Profiler đã giúp bạn tìm và khắc phục các điểm nghẽn cụ thể của nền tảng như thế nào?
CBT: Tôi đã sử dụng Unity Profiler rất nhiều khi làm việc về hiệu năng. Quy trình làm việc của tôi về cơ bản là: lập hồ sơ trước, xem cái gì thực sự chậm, và sau đó sửa cái đó thay vì đoán mò.
Ví dụ lớn nhất là các hạt trầy xước. Khi bạn cào một tấm vé, chúng tôi lấy thông tin từ kết cấu và tạo ra các hạt phù hợp với màu sắc của những gì bạn đang cào. Điều đó hoạt động rất tốt trên PC, nhưng cách tiếp cận ban đầu quá nặng trên di động.
Giải pháp là sử dụng GPU instancing cho những hạt đó. Một khi chúng tôi thực hiện thay đổi đó, nó đã trở thành một trong những tối ưu hóa hiệu suất quan trọng nhất trong cổng.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Hệ thống Input đã giúp bạn hỗ trợ các lược đồ điều khiển khác nhau như thế nào?
CBT: Việc cảm ứng hoạt động gần như hoàn toàn ngay từ khi xuất xưởng với Input System là cực kỳ hữu ích và tiết kiệm rất nhiều thời gian.
Tôi có thể cắm bộ điều khiển vào PC của mình, chơi và kiểm tra các điều khiển trực tiếp trong Editor, sau đó xây dựng trò chơi cho Nintendo Switch. Các ánh xạ bộ điều khiển được chuyển tiếp qua Input System, giúp việc lặp lại nhanh hơn nhiều.
HS: Ngay từ khi bắt đầu dự án, chúng tôi đã xây dựng một lớp giữa Input System và phần còn lại của mã của chúng tôi. Mã trò chơi không cần quan tâm trực tiếp đến mọi loại đầu vào phần cứng. Nó có thể sử dụng lớp đó để xác định xem đầu vào có kích hoạt con trỏ hay không, vị trí của con trỏ ở đâu, hoặc vị trí thế giới của nó là gì.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Bạn đã đặt ra các mục tiêu hiệu suất nào cho từng nền tảng, và bạn đã đạt được gần mức nào?
EK: Chúng tôi đã thiết lập các mức OS và API tối thiểu được hỗ trợ trên thiết bị di động và sau đó thử nghiệm trên các thiết bị gần cuối của phạm vi đó.
Sau khi chúng tôi triển khai bản sửa lỗi GPU-instancing cho hệ thống hạt, chúng tôi không còn thấy các vấn đề về tốc độ khung hình đáng kể trên các thiết bị đó.
Trên iOS, chúng tôi đã kiểm tra cụ thể các thiết bị bao gồm iPhone X và iPhone XS để đảm bảo trò chơi chạy tốt trên phần cứng mà chúng tôi muốn hỗ trợ. Chúng tôi đã tuân theo triết lý tương tự trên Android.
CL: Scritchy Scratchy cần phải mượt mà vì việc cào ngừng lại ngay lập tức nếu trò chơi bị giật.
Yêu cầu là nó phải có cảm giác như đang cào một tấm vé cào vật lý bằng ngón tay. Trong thực tế, điều đó có nghĩa là nhắm đến độ mượt mà mà bạn đạt được ở khoảng 60 FPS.
CBT: Giải quyết là một thách thức khác. Chúng tôi đã thiết kế trò chơi gốc cho màn hình PC màn hình rộng. Hầu hết các độ phân giải điện thoại phong cảnh được dịch khá tự nhiên, nhưng tỷ lệ khung hình của iPad thì khó hơn.
Chúng tôi đã có đủ thời gian trước khi phát hành để làm cho phiên bản iPad hoạt động tốt. Điều đó bao gồm việc điều chỉnh bài thuyết trình và sử dụng một số thao tác phóng to và thu nhỏ để bố cục phù hợp một cách tự nhiên.
Mục tiêu là bất kể ai lần đầu tiên gặp Scritchy Scratchy trên PC, điện thoại hay iPad, nó cũng nên có cảm giác như thuộc về thiết bị đó chứ không giống như một cổng bị xâm phạm.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Những quyết định triển khai nào đã tạo ra sự khác biệt lớn nhất trong chất lượng vận chuyển trên các nền tảng?
EK: Quyết định Deployment lớn nhất là giữ mọi thứ trong một dự án.
Điều đó không chỉ quan trọng đối với cảng đầu tiên mà còn đối với khả năng bảo trì sau này. Khi chúng ta nói về nội dung mới được đưa vào trò chơi, tôi không phải lo lắng về việc mất bao lâu để đưa nội dung đó qua nhiều nhánh nền tảng độc lập.
CL: Điều đó cũng giúp dễ dàng di chuyển người giữa các nhiệm vụ. Chúng tôi có một nhà phát triển giúp chúng tôi sửa lỗi PC, người sau đó có thể chuyển thẳng sang sửa các vấn đề trên thiết bị di động mà không cần phải học một cơ sở mã di động riêng biệt.

Scritchy Scratchy | Trò chơi Tiền Ăn Trưa | Trò chơi Funday
Lời khuyên hàng đầu của bạn cho các nhà phát triển đang lên kế hoạch chuyển đổi một trò chơi trên nhiều nền tảng là gì?
CL: Từ góc độ thiết kế, hãy quyết định sớm những nền tảng mà trò chơi có thể có. Chúng tôi đã đưa ra một quyết định sớm là không tập trung nhiều vào tay cầm chơi game, và sau này chúng tôi thấy điều đó đã tạo ra thêm công việc.
HS: Hãy nghĩ về đầu vào, độ phân giải, tỷ lệ khung hình và cảm giác trò chơi nên như thế nào trên các nền tảng khác nhau ngay từ đầu. Những thứ đó khó thêm vào sau hơn nhiều.
Scritchy Scratchy có mặt trên Steam, App Store, và trên Google Play. Hãy xem thêm các câu chuyện từ các nhà phát triển Unity trên Unity Blog và Resource Hub.