1 điểm bởi GN⁺ 2024-11-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Diễn đàn TIGSource

    • TIGSource đã mở máy chủ Discord chính thức.
    • Diễn đàn có nhiều chủ đề và thảo luận đa dạng, với sự tham gia của nhiều thành viên.
  • Return of the Obra Dinn

    • Đang có thảo luận về phong cách đồ họa của trò chơi và vấn đề dithering.
    • Có những thử nghiệm nhằm giải quyết hiện tượng nhấp nháy bằng cách render ở độ phân giải cao rồi downscale.
    • Cũng bàn về cách cố định mẫu dithering để tạo sự ổn định khi chuyển động.
  • Quy trình dithering

    • Obra Dinn được render ở thang độ xám 8-bit rồi chuyển đổi sang 1-bit.
    • Trò chơi sử dụng hai mẫu dithering để tạo ra nhiều hiệu ứng thị giác khác nhau.
    • Với hình ảnh chuyển động, mẫu dithering có thể gây ra vấn đề.
  • Ổn định hóa dithering

    • Đã có nghiên cứu về cách cố định mẫu dithering vào hình học để tăng độ ổn định.
    • Nhiều phương pháp ánh xạ đã được thử nghiệm nhằm tìm ra kết quả tối ưu.
  • Kết luận

    • Việc giải quyết vấn đề dithering tốn khá nhiều thời gian, nhưng cuối cùng đã khắc phục được mà vẫn giữ nguyên phong cách hình ảnh của trò chơi.
    • Phiên bản game cuối cùng sẽ cung cấp hai chế độ hiển thị.

1 bình luận

 
GN⁺ 2024-11-09
Ý kiến trên Hacker News
  • Tôi đã làm lập trình đồ họa hơn 10 năm mà vẫn không nhận ra điều đó khi chơi game. Xét về ngôn ngữ thị giác tổng thể của game, tôi nghĩ 100 giờ đó đã được dùng rất xứng đáng
    Cỡ này thì có lẽ đã có thể gửi lên SIGGRAPH với chủ đề tính nhất quán theo thời gian trong kết xuất phi hiện thực

    • Độ ổn định của dithering chắc chắn là thứ tôi nhận thấy khi quan sát quanh cảnh, nhưng tôi hoàn toàn không ngờ lại có nhiều công sức đến vậy được bỏ vào đó. Đọc bài này xong, chắc từ giờ tôi sẽ càng thán phục hơn
  • Nói thêm cho ai chưa biết, Return of the Obra DinnPapers, Please đều là game của Lucas Pope, và được xem là những tác phẩm kinh điển thực thụ, đã giành nhiều giải thưởng
    Ngay cả nếu bình thường bạn không hay chơi game, chúng vẫn rất đáng thử. Cả hai đều không phải kiểu game điển hình

    • Papers, Please là một kiệt tác. Với Obra Dinn thì có lẽ tôi đã làm sai gì đó; sau khi chỉ hé lộ quá ít câu chuyện để đối chiếu với các manh mối khác, game không cho thêm manh mối nào nữa
    • Papers, Please là một trong những game yêu thích nhất mọi thời của tôi. Tôi còn làm cả flashcard để ghi nhớ thông tin cốt lõi, rồi luyện đi luyện lại để nâng kỹ năng xét duyệt
      Không có nhiều game khiến tôi làm đến mức đó. Tôi chưa chơi Obra Dinn vì không bị phong cách mỹ thuật của nó thu hút, nhưng nếu thích game suy luận thì Curse of the Golden Idol cũng đáng xem qua. Về mặt sáng tạo, nó khá gần với những game này và cũng khá thú vị
    • Trên website của ông ấy có rất nhiều dự án tuyệt vời làm trong các game jam. Chúng thật sự vui và sáng tạo, và vài dự án trong số đó đã trở thành game chính thức
    • Tôi đã chơi game bắn súng góc nhìn thứ nhất từ thời Wolfenstein 3D, nhưng Return of the Obra Dinn là game duy nhất khiến tôi bị say
      Dù vậy tôi vẫn phá đảo
  • Dithering 1-bit mạnh là một chủ đề thật sự thú vị. Ngay cả trong 2D cũng có nhiều cách làm, mỗi cách có ưu nhược điểm và đánh đổi riêng
    Thật đáng ngạc nhiên là thứ từng là cốt lõi của trải nghiệm máy tính thập niên 80 lại trở nên khá khó nhằn trên phần cứng hiện đại. Trong dự án của tôi[0], tôi nhận ra gần như không thể ánh xạ 1:1 giữa pixel offscreen và canvas do trình duyệt cung cấp
    [0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...

    • Vẫn buồn cười là một card nVidia khá mới mất vài giây để đổi độ phân giải, trong khi một chiếc Atari 35 năm tuổi có thể đổi độ phân giải nhiều lần ngay trong một lần làm tươi màn hình
      Một game đơn giản tôi từng làm dùng hiển thị màu độ phân giải thấp cho 3/4 màn hình, còn phần dưới dùng 4 màu với độ phân giải ngang gấp đôi để nhét được nhiều chữ hơn. Vì vậy nó đổi độ phân giải 120 lần mỗi giây mà CPU cũng không bị chậm đi đáng kể
  • Có vẻ không cách tiếp cận nào được đề xuất hoạt động tốt, và vấn đề này trông phức tạp hơn nhiều so với vẻ ngoài
    Những thứ có khả năng hoạt động đúng có lẽ là dùng mẫu dithering “fractal” để việc phóng to/thu nhỏ mượt và bất biến theo tỉ lệ, xử lý trong không gian texel để cả chuyển động camera lẫn chuyển động vật thể đều đúng, hoặc dùng lọc song tuyến hay render siêu mẫu mẫu dithering rồi chạy một pass kiểu khuếch tán lỗi bằng compute shader trong không gian màn hình
    Tuy nhiên tôi không chắc thực tế có chạy tốt không. Nếu vẫn chưa đủ, có thể có một phương án khác: xử lý đơn giản trong không gian màn hình, rồi ánh xạ ngược kết quả về không gian texel theo cách bảo toàn độ phân giải; ở khung hình tiếp theo dùng thông tin không gian texel để tạo một nghiệm không gian màn hình tương thích rồi lại ánh xạ về không gian texel, từ đó dần xây dựng mẫu fractal theo từng texel lúc runtime. Đây có thể là cách tốt nhất, nhưng có vẻ rất đắt về bộ nhớ, khối lượng tính toán và độ phức tạp

    • Tính đến tuần trước, tôi đã khiến cách tiếp cận fractal hoạt động khá tốt
      https://x.com/dgant/status/1851840125065453894
      https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...
      Cách hoạt động là dùng dithering trong không gian thế giới, áp dụng dithering 2D lên bề mặt được ánh xạ tam phẳng, chọn tỉ lệ tọa độ theo độ sâu để mẫu dithering nằm trong khoảng [1px, 2px), và tô các bề mặt đủ xa bằng tọa độ cầu. Ở các ngưỡng độ sâu có một số phần bị tô lại, nhưng thực tế không quá khó chịu
  • Đào sâu thêm cho những ai quan tâm, tôi tìm thấy các devlog trước đây của ông ấy về chủ đề này [1] [2]
    Đặc biệt phần nói về thuật toán upscale tên Scale2X rất đáng chú ý và khá hay [3]
    [1] https://forums.tigsource.com/index.php?topic=40832.260
    [2] https://forums.tigsource.com/index.php?topic=40832.msg121719...
    [3] https://www.scale2x.it

  • Tôi thật sự thích việc người này chia sẻ mọi thứ trên diễn đàn
    Tôi nhớ mình từng xem những công việc ban đầu của Papers, Please; có điều gì đó rất hay ở việc chia sẻ quá trình làm và để nó tiếp xúc với phản hồi

    • Có lẽ khi làm việc cần có một mức khán giả nào đó. Nếu không sẽ có cảm giác như đang hét vào hư không
    • Tigsource là một kho báu về thông tin và tài liệu thiết kế. Nhiều game nổi tiếng như Spelunky và Dead Cells cũng ra đời từ đó
  • Thảo luận khi đó: https://news.ycombinator.com/item?id=15766249

  • Đây là một trong những bài viết về dithering hay nhất tôi từng thấy. Tôi từng làm phần dithering đen trắng cho Return to Dark Castle
    Tôi muốn dùng Atkinson dithering, nhưng do cách các giá trị pixel lân cận lan sang nhau nên khó triển khai trong shader, và lúc đó tôi cũng rất căng thẳng, mệt mỏi. Tôi nghĩ mình đã không nghĩ đến ý tưởng cố định mẫu theo offset của cảnh, nên ở các màn cuộn như hầm mộ hay gói trực thăng chắc sẽ có hiện tượng nhấp nháy. Có thể tôi đã làm rồi cũng nên, nhưng không nhớ. Dù sao thì cũng rất tuyệt

  • Gần đây tôi tải từ GOG và thử chơi trên 5K Studio Display, nhưng không thể có được kết quả mà các pixel đẹp đẽ không bị mờ. Thật đáng tiếc
    Tôi đã vào hết mọi mục trong menu cài đặt

    • Bạn cần tìm cách hiển thị với letterbox ở một độ phân giải là bội số nguyên của độ phân giải game
  • Nói thêm cho vui, soundtrack của game này ở đây
    https://www.youtube.com/watch?v=8qvdAWLcPyU