★AppGiaiTri Đăng nhập
Hậu trường AppGiaiTri

Rượt Đuổi mất đường ở vòng hai: bài học luôn thử tới lần lặp thứ hai

Vòng một hoàn hảo, sang vòng hai con đường biến mất và xe như đứng yên. Lỗi một dòng trong cách tính vị trí máy quay, ba lý do nó lọt qua mọi lượt kiểm tra, và thói quen kiểm thử mới cho mọi ứng dụng.

Rượt Đuổi mất đường ở vòng hai: bài học luôn thử tới lần lặp thứ hai

Có một câu giờ được ghi ngay trong tài liệu làm việc của chúng tôi, in đậm: luôn thử qua vòng thứ hai. Câu đó có mặt vì một lỗi trong Rượt Đuổi — ứng dụng đua xe của AppGiaiTri. Vòng một chạy hoàn hảo. Sang vòng hai, con đường biến mất, xe như đứng yên giữa khoảng trống. Bài này kể lỗi đó sinh ra thế nào, vì sao mọi lượt kiểm tra đều bỏ sót nó, và thói quen kiểm tra mà chúng tôi rút ra — thói quen giờ áp cho mọi ứng dụng, không riêng đua xe.

Đường đua “giả 3D” được vẽ như thế nào

Để hiểu lỗi, cần biết con đường trong Rượt Đuổi không phải một mô hình ba chiều thật. Nó dùng kỹ thuật cổ điển của các máy đua xe thùng ngày xưa: đường đua là một chuỗi rất nhiều đoạn ngắn nối tiếp nhau, mỗi đoạn có độ cong và độ cao riêng. Mỗi khung hình, chương trình lấy vị trí của máy quay (camera), tìm đoạn đường đang ở ngay trước mặt, rồi chiếu từng đoạn phía trước lên màn hình — đoạn càng xa càng nhỏ, càng gần đường chân trời.

Cách này nhẹ đến mức chạy mượt trên cả điện thoại đời cũ, và cho cảm giác tốc độ rất rõ. Nhưng nó có một điểm tinh tế: đường đua là một vòng khép kín. Đi hết đoạn cuối cùng thì quay về đoạn đầu tiên. Máy quay phải luôn biết mình đang ở đâu trong vòng hiện tại, chứ không phải đã đi tổng cộng bao xa.

Lỗi: dùng tổng quãng đường thay cho vị trí trong vòng

Xe trong Rượt Đuổi có một con số lưu quãng đường đã đi, cộng dồn từ vạch xuất phát. Con số này rất hữu ích: tính thứ hạng, tính khoảng cách với xe khác, biết khi nào hoàn thành cuộc đua. Và trong bản đầu, máy quay cũng dùng luôn con số đó để định vị.

Trong vòng một, tổng quãng đường và vị trí trong vòng là một. Mọi thứ khớp. Khi xe băng qua vạch đích lần đầu, tổng quãng đường tiếp tục tăng — lớn hơn chiều dài một vòng — còn đường đua thì quay về đoạn đầu. Phần tìm đoạn đường vẫn tìm ra đúng đoạn, vì nó tự quay vòng. Nhưng phép chiếu thì dùng tổng quãng đường để tính khoảng cách từ máy quay tới từng đoạn phía trước. Với nó, máy quay đã ở rất xa phía trước mọi đoạn đường. Mọi đoạn đều bị coi là nằm sau lưng máy quay, nên bị bỏ qua, không đoạn nào được vẽ.

Kết quả người dùng thấy: bầu trời, cảnh nền, chiếc xe — và không có đường. Vì vạch kẻ, lề đường, cây ven đường đều không hiện, mắt không còn điểm tựa nào để cảm nhận tốc độ, nên chiếc xe trông như đứng yên, dù đồng hồ vẫn chạy và xe đối thủ vẫn vượt lên.

Bản sửa chỉ là một dòng: lấy phần dư của tổng quãng đường chia cho chiều dài vòng, tức vị trí trong vòng hiện tại, và dùng con số đó cho máy quay. Tổng quãng đường vẫn giữ nguyên cho những việc nó làm đúng. Một dòng mã, kèm một chú thích để người sau không “dọn” nó đi.

Câu hỏi thật sự: vì sao không ai thấy?

Lỗi một dòng không đáng viết thành bài. Cái đáng viết là nó đã lọt qua bao nhiêu lượt kiểm tra. Nhìn lại, có ba lý do, và cả ba đều là lỗi cách làm của chúng tôi:

  1. Người chơi ảo chỉ chạy đoạn đầu. Chúng tôi có một chương trình tự lái để kiểm tra ứng dụng: nó bấm trái, phải, drift như người thật, và chụp màn hình giữa đường. Nhưng nó chụp ở vòng một, vì vòng một có đủ mọi thứ cần xem — khúc cua, xe đối thủ, hiệu ứng drift. Chưa ai nghĩ vòng hai có gì khác.
  2. Chế độ thử nhanh chỉ có một vòng. Để tiết kiệm thời gian, nhiều lượt thử dùng chế độ chạy một vòng. Chế độ này không bao giờ đi qua vạch đích lần thứ hai, nên không thể lộ lỗi.
  3. Không có dòng lỗi nào. Chương trình không sập, không báo gì. Kiểm tra tự động nhìn vào nhật ký lỗi và thấy sạch. Chỉ có mắt người nhìn vào màn hình ở vòng hai mới thấy.

Mẫu số chung: chúng tôi kiểm tra những gì dễ kiểm tra, ở những chỗ dễ đến. Còn người dùng thì chơi trọn cuộc đua.

Loại lỗi “chỉ lộ ở lần thứ hai”

Sau vụ này, chúng tôi rà lại cả năm ứng dụng với một câu hỏi: có con số nào cộng dồn mãi mà lại được dùng như thể nó chỉ tính trong một lượt? Loại lỗi này có hình dạng giống nhau dù ở ứng dụng nào:

Chỗ dễ dínhLần đầuLần thứ hai trở đi
Đường đua khép vòngTổng quãng đường bằng vị trí trong vòngTổng quãng đường vượt chiều dài vòng, phép tính lệch
Đợt kẻ địch nối tiếpĐợt một sinh đúng số lượngDanh sách cũ chưa dọn, đợt hai sinh chồng lên
Bản lưu tiến độBản lưu mới tinh, đúng cấu trúcBản lưu của phiên bản trước phải đọc được ở phiên bản mới
Ngày, mùa, thử thách ngàyThử trong cùng một ngày thì đúngQua nửa đêm, múi giờ tính lệch là “ngày” đổi sai lúc

Dòng cuối không phải giả định. Chúng tôi từng tính thời lượng một lượt bằng đồng hồ ở hai nơi khác múi giờ, và con số lệch đúng bảy tiếng. Cách sửa cũng cùng tinh thần: để một nơi duy nhất tính thời gian, và mọi ngày, mọi mùa đều theo giờ Việt Nam. Với Thỏ Dâu, khi thêm cảnh mới, chúng tôi cố ý mở một bản lưu cũ ở phiên bản mới để chắc bé không mất ngôi nhà đã bày biện.

Thói quen kiểm tra mới

“Luôn thử qua vòng hai” nghe như một mẹo cho ứng dụng đua xe, nhưng thật ra nó là một quy tắc chung: mọi thứ có lặp lại phải được thử ở lần lặp thứ hai. Cụ thể, trước mỗi lần phát hành, chúng tôi:

  • Cho người chơi ảo chạy trọn cuộc đua nhiều vòng, và chụp màn hình giữa vòng hai, không phải vòng một.
  • Với ứng dụng có nhiều đợt hay nhiều màn, chạy tới đợt hai và chuyển màn ít nhất một lần.
  • So số liệu cuối lượt — thời gian từng vòng, số lần va chạm, thứ hạng — với khoảng hợp lý. Một vòng hai nhanh bất thường hay chậm bất thường là dấu hiệu có gì đó sai, kể cả khi hình ảnh trông ổn.
  • Nhìn bằng mắt ít nhất một lượt đầy đủ trên điện thoại thật. Máy không thay được câu hỏi “trông có đúng không?”.

Những gì vẫn còn dang dở ở Rượt Đuổi

Kể chuyện đã sửa mà giấu chuyện chưa sửa thì không công bằng. Hai việc dưới đây vẫn đang nằm trong danh sách của chúng tôi:

  • Hỗ trợ điều khiển đang bật sẵn. Chế độ này giúp xe bám đường hơn ở khúc cua, rất hợp với người mới. Để bảng xếp hạng công bằng, lượt chạy có bật hỗ trợ không được ghi tên. Vấn đề là nó bật sẵn, nên nhiều người chạy thời gian rất tốt mà không hiểu vì sao tên mình không lên bảng. Chúng tôi đang cân nhắc báo rõ ngay trên màn kết quả.
  • Bảng xếp hạng cho xe máy, cano và rượt đuổi. Ba thể loại mới đã chơi được, nhưng bảng tính giờ riêng cho từng loại chưa mở. Hiện kết quả được ghi nhận nhưng chưa có bảng riêng.

Độ khó của các thể loại mới cũng mới được chỉnh bằng người chơi ảo. Chúng tôi biết người chơi ảo lái khác người thật, và đang chờ phản hồi từ những người đầu tiên chơi trọn cuộc đua — tới vòng hai, và xa hơn.

Câu hỏi thường gặp

Vì sao sang vòng hai trong Rượt Đuổi đường đua biến mất?

Đó là lỗi của bản đầu: máy quay dùng tổng quãng đường đã đi thay vì vị trí trong vòng hiện tại, nên từ vòng hai mọi đoạn đường bị coi là nằm sau lưng và không được vẽ. Lỗi đã được sửa; nếu vẫn gặp, hãy đóng hẳn ứng dụng rồi mở lại để nhận bản mới.

Đường đua giả 3D trong ứng dụng đua xe hoạt động thế nào?

Đường được chia thành rất nhiều đoạn ngắn có độ cong và độ cao riêng. Mỗi khung hình, chương trình chiếu các đoạn phía trước lên màn hình theo khoảng cách tới máy quay, đoạn xa nhỏ dần về chân trời. Cách này nhẹ nên chạy mượt cả trên điện thoại đời cũ.

Vì sao chạy nhanh mà tên không lên bảng xếp hạng Rượt Đuổi?

Nhiều khả năng bạn đang bật hỗ trợ điều khiển, chế độ giúp xe bám đường hơn ở khúc cua. Để công bằng, lượt chạy có bật hỗ trợ không được xếp hạng. Tắt nó trong phần cài đặt rồi chạy lại để có tên trên bảng.

Hỗ trợ điều khiển trong Rượt Đuổi là gì?

Đó là chế độ giảm lực văng ra ngoài ở khúc cua, giúp người mới giữ xe trên đường dễ hơn. Nó hợp để làm quen, nhưng lượt chạy có bật sẽ không lên bảng xếp hạng tính giờ.

Người chơi ảo dùng để kiểm tra ứng dụng là gì?

Là một chương trình tự điều khiển ứng dụng như người thật: bấm lái, drift, tăng tốc, rồi ghi lại số liệu và chụp màn hình. Nó giúp chạy thử nhiều lượt rất nhanh, nhưng chỉ tìm ra lỗi ở những chỗ nó được cho đi tới.

Vì sao lỗi ứng dụng thường chỉ xuất hiện sau một lúc chơi?

Vì nhiều con số cộng dồn theo thời gian, như quãng đường, số đợt, số ngày, và chỉ gây sai khi vượt qua một mốc như hết vòng đầu hay qua nửa đêm. Kiểm tra ngắn dừng trước mốc đó sẽ không bao giờ thấy lỗi.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.