Chúng tôi đang thiết kế Ancient Online: Remastered như một thế giới duy nhất, nơi người chơi Windows, Linux, macOS, Android và iOS sẽ gặp nhau. Trên giấy thì nghe đơn giản: một game, năm nền tảng. Trên thực tế, đưa một MMORPG kinh điển vốn được thiết kế để chơi bằng những cú nhấp chuột lên điện thoại và tay cầm đồng nghĩa với một loạt quyết định khó khăn. Trong phần này của nhật ký phát triển, chúng tôi chia sẻ những quyết định đó và lý do đằng sau.
Game đang trong quá trình phát triển. Bản build phát triển hiện đang được thử nghiệm trên thiết bị Windows và Android; macOS, Linux và iOS là những nền tảng khác mà chúng tôi hướng tới.
Quy tắc 1: một thế giới, một bộ luật
Không có máy chủ riêng và cũng không có mức cân bằng “đơn giản hóa” cho người chơi di động. Vì toàn bộ luật chơi của game chạy trên máy chủ, bạn chơi trong cùng một thế giới, theo cùng một luật, dù kết nối từ thiết bị nào. Tài khoản, nhân vật, túi đồ và bang hội của bạn không phụ thuộc vào thiết bị. Chúng tôi đã nói về phía máy chủ trong phần một của nhật ký phát triển.
Với client, quy tắc này có nghĩa là các nền tảng khác nhau có thể có cách điều khiển khác nhau, nhưng không thể có khả năng khác nhau.
Màn hình cảm ứng: nghĩ lại thay vì thu nhỏ
Thu nhỏ nguyên xi giao diện MMORPG kinh điển rồi đặt lên điện thoại là cách không hiệu quả; các nút trở nên quá nhỏ so với ngón tay và màn hình thì quá chật. Vì vậy chúng tôi thiết kế một lớp giao diện riêng cho di động:
- Joystick nổi: Bạn đặt ngón tay ở đâu trên nửa trái màn hình thì joystick đến đó; người chơi không phải bấm trúng một điểm cụ thể trên màn hình.
- Nút tấn công nhấn giữ với một vòng cung kỹ năng bao quanh.
- Chạm để chọn mục tiêu: Phiên bản cảm ứng của thói quen “nhấp vào quái vật” trên PC.
Cũng có một điều chúng tôi cố ý không làm: chạm để di chuyển. Joystick lo việc di chuyển. Nếu có hai hệ thống di chuyển, mỗi cú chạm trượt mục tiêu sẽ biến thành một pha chạy ngoài ý muốn, và giữa trận đánh thì điều đó không thể chấp nhận.
Thêm một quyết định nhỏ nhưng quan trọng: trên điện thoại, mỗi lúc chỉ nhìn thấy vài ô, nên việc chuyển giữa các trang kỹ năng diễn ra thường xuyên hơn nhiều so với trên máy tính. Chúng tôi làm cho các ô bình thuốc độc lập với các trang; khi bạn chuyển trang, bình thuốc vẫn ở nguyên chỗ cũ. Làm được điều này đòi hỏi nhiều hơn việc dời một ô trong giao diện: chúng tôi phải tách hẳn phần mã sử dụng các ô bình thuốc khỏi logic trang.
Camera và cảm ứng đa điểm
Trên điện thoại, camera xoay khi bạn kéo ngón tay trên một vùng trống. Làm việc này bằng cách đặt một “vùng camera” toàn màn hình phủ lên giao diện trông khá hấp dẫn, nhưng một lớp như vậy sẽ nuốt mất các thao tác chạm dành cho mọi nút bên dưới nó. Bằng cách xử lý thao tác kéo camera trong bộ điều khiển người chơi thay vì trong lớp giao diện, chúng tôi tránh được xung đột giữa các nút và camera. Chúng tôi cũng phân biệt việc chọn mục tiêu với việc kéo camera bằng một ngưỡng di chuyển nhỏ: cho đến khi vượt ngưỡng, camera không nhúc nhích, và một khi đã vượt ngưỡng, camera bắt đầu xoay mà không giật đột ngột.
Tay cầm: di chuyển cả trong menu
Chúng tôi thiết kế việc hỗ trợ tay cầm cho toàn bộ giao diện, không chỉ riêng chiến đấu. Để điều hướng túi đồ và menu bằng tay cầm, chúng tôi thêm cơ chế điều hướng tiêu điểm bằng D-pad. Ở đây cũng có một cái bẫy: D-pad và các nút xác nhận/quay lại cần cho cả việc điều hướng menu lẫn việc dùng các ô phím tắt. Giải pháp: khi một cửa sổ đang mở, các nút này điều hướng menu, và khi cửa sổ đóng, chúng trở lại với các ô phím tắt. Lặng lẽ trượt vào “chế độ menu” ngay giữa trận đánh sẽ là lỗi tệ nhất mà hệ thống này có thể mắc phải.
Game ghi nhớ thiết bị nhập liệu bạn dùng gần nhất: khi bạn chuyển sang tay cầm, các nút cảm ứng sẽ rút khỏi màn hình.
Cài đặt cũng đi theo nền tảng
Cửa sổ cài đặt thay đổi hình dạng theo thiết bị: các thẻ chuột và bàn phím chỉ xuất hiện trên PC, còn thẻ cảm ứng chỉ xuất hiện trên điện thoại. Những tùy chọn đồ họa chỉ có trên máy tính như Lumen, DLSS và FSR nhường chỗ trên di động cho các tùy chọn độ phân giải và khử răng cưa. Trên mỗi thiết bị, chúng tôi chỉ hiển thị những cài đặt thực sự có tác dụng ở đó.
30 ngôn ngữ và một giao diện được đo theo từng ngôn ngữ
Game và các trang web của chúng tôi hướng tới 30 ngôn ngữ. Cái khó ẩn giấu của một giao diện đa ngôn ngữ là độ dài văn bản: cùng một nhãn nút có thể ngắn ở ngôn ngữ này và dài gấp đôi ở ngôn ngữ khác. Chúng tôi tính chiều rộng của các thẻ trong cửa sổ cài đặt từ chiều rộng thực tế của từng nhãn trong ngôn ngữ đó thay vì chia đều; khi ngôn ngữ thay đổi, bố cục được tính lại. Trong bộ chọn ngôn ngữ, mỗi ngôn ngữ được viết bằng chính tên gọi của nó.
Dịch trò chuyện trên chính máy chủ của chúng tôi
Để người chơi đến từ các quốc gia khác nhau có thể hiểu nhau trong cùng một thế giới, tin nhắn trò chuyện được dịch sang ngôn ngữ của người đọc. Khi xây dựng hệ thống này, chúng tôi có hai nguyên tắc:
- Tin nhắn không rời khỏi máy chủ của chúng tôi. Việc dịch được thực hiện trên chính máy chủ của chúng tôi bằng một mô hình cục bộ, chỉ dùng CPU; không dùng API dịch thuật bên ngoài nào.
- Giữ gìn ngôn ngữ của game. Trò chuyện trong MMORPG đầy những chữ viết tắt, thuật ngữ game và emoji. Chúng tôi dùng một bảng thuật ngữ riêng cho game, và bảo vệ emoji riêng để chúng không bị mất trong lúc dịch.
Tiếp theo là gì
Công việc về hiệu năng trên di động và về các nền tảng khác mà chúng tôi hướng tới vẫn đang tiếp tục. Để xem danh sách đầy đủ các thao tác điều khiển ở phía người chơi, hãy xem hướng dẫn chơi đa nền tảng trên PC và di động trên trang web game. Để làm quen với studio của chúng tôi, hãy đọc bài Astronaut Entertainment là ai?.


