3 điểm bởi GN⁺ 2024-04-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Engine mã nguồn mở Descent 3 đã được công bố theo giấy phép GPL-3.0, và để sử dụng thì người dùng phải tự chuẩn bị các tệp trò chơi riêng
  • Bản phát hành này bao gồm bản vá 1.5 do Kevin Bentley và Jeff Slutter viết trước đây
  • Bản vá này đã được cộng đồng Descent đưa về trạng thái ổn định
  • Chi tiết cài đặt được hướng dẫn trong USAGE.md, quy trình build thì làm theo BUILD.md
  • Các vấn đề khi build hoặc chạy nên được báo cáo lên GitHub tracker, và các bản vá đóng góp cũng được gửi qua GitHub

Engine được công bố và giấy phép

  • Engine mã nguồn mở Descent 3 đã được công bố
  • Giấy phép là GPL-3.0
  • Engine này bao gồm bản vá 1.5 do Kevin Bentley và Jeff Slutter viết từ vài năm trước
  • Bản vá này đã được cộng đồng Descent đưa về trạng thái ổn định

Sử dụng và build

  • Để sử dụng engine, người dùng phải tự cung cấp các tệp trò chơi của riêng mình
  • Chi tiết liên quan đến cài đặt có trong USAGE.md
  • Quy trình build trò chơi được hướng dẫn làm theo hướng dẫn build trong BUILD.md

Báo lỗi và đóng góp

  • Các vấn đề phát sinh trong lúc build hoặc chạy được báo cáo tại GitHub tracker
  • Bất kỳ ai cũng có thể đóng góp
  • Cộng đồng phát triển hoạt động trên Discord tại Descent Developer Network
  • Các bản vá phải được gửi trên GitHub

1 bình luận

 
GN⁺ 2024-04-17
Ý kiến Hacker News
  • Tôi thực sự rất yêu trò chơi này. Tôi chưa bao giờ hiểu vì sao ý tưởng này lại không thể trở thành hẳn một thể loại
    Không có khái niệm phía trên cố định, có thể di chuyển tự do 360 độ, và kẻ địch đủ thông minh để thậm chí còn bắn tỉa. Tôi đã đổ vào đó vô số thời gian ngày trước, và lần này cũng rất muốn chơi lại

    • Không ai hỏi, nhưng trong các game hiện đại thì gần như chỉ có Outer Wilds là dùng hệ thống điều khiển tương tự. Không phải game bắn súng, nhưng là một game phiêu lưu cực kỳ xuất sắc
      https://store.steampowered.com/app/753640/Outer_Wilds/
      Tuy vậy, nếu nói về hậu duệ trực tiếp của tiểu thể loại này thì có Overload
      https://store.steampowered.com/app/448850/Overload/
    • Elite Dangerous mang lại trọn vẹn niềm vui của điều khiển 6 bậc tự do
      https://youtu.be/T2-IHgNYaKA
      https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
      https://youtu.be/9U0KNVQmlcM
      Tôi nhớ trò này quá
      Về ý "không hiểu vì sao ý tưởng này không trở thành một thể loại", tôi nghĩ là vì game mô phỏng bay trong không gian đáng tiếc thay luôn là một thể loại ngách. Nó còn ngách hơn cả game mô phỏng bay thông thường
    • Từng có một game bắn súng nhiều người chơi không trọng lực tên là Shattered Horizon ra mắt năm 2009: https://www.youtube.com/watch?v=xWsHxTFPxSE
      Một tính năng thú vị là bạn có thể tắt nguồn bộ đồ để vào chế độ ẩn mình; khi đó toàn bộ HUD sẽ tắt, và hầu hết âm thanh gameplay như tiếng nổ hay tiếng đạn sượt qua cũng biến mất
      Theo bối cảnh thế giới trong game, tất cả những âm thanh đó đều do máy tính của bộ đồ tạo ra, còn ngoài không gian thì im lặng
    • Freespace là thứ gần với hậu duệ nhất, dù chính thức hay không. Freespace 2 thật sự tuyệt vời và tôi nghĩ đến giờ vẫn còn chơi tốt
      Giờ thì có phiên bản hiện đại của Elite Dangerous, nhưng cơ chế bay của nó quá giống cơ chế bay máy bay nên khó mà so với Descent
    • Tôi nhớ đoạn "kẻ địch đủ thông minh để còn bắn tỉa"
      Tôi đã chơi Descent 1 trên PS1, và nhớ trên hộp có ghi rằng kẻ địch sẽ thích nghi với phong cách chơi của người chơi. Lớn lên rồi học về machine learning và một vài kỹ thuật AI, tôi luôn tò mò chính xác điều đó nghĩa là gì
      Chắc PS1 của tôi không chạy gradient descent đâu, vậy phía sau lời khẳng định rằng kẻ địch học hỏi và thích nghi với người chơi là trò kỹ thuật nào?
  • Vợ tôi và tôi gặp nhau trên diễn đàn Descent, và tên của ba cậu con trai chúng tôi được đặt theo những người bạn trong Descent: KoolBear, Jediluke, Mark392. Chúng tôi đã đi dự đám cưới của bạn bè trong Descent, và đáng buồn là cả đám tang nữa, mong JinX yên nghỉ
    Tôi xem D3 là phần yếu nhất trong loạt Descent, nhưng tin này thật sự khiến tôi vui. Cảm ơn Kevin

    • Tôi đã lurk suốt nhiều năm, cuối cùng cũng tạo tài khoản chỉ để viết điều này. Tôi nhớ lúc bạn và Drakona kết hôn. Xin chúc mừng lại một lần nữa
      Đã hơn 15 năm rồi tôi không còn hoạt động trong cộng đồng Descent. Khi email PlanetDescent biến mất, tôi cũng mất quyền truy cập tài khoản ICQ, và giờ cũng không còn dùng cái tên DCrazy trên mạng nữa. Một phần cũng vì muốn tách mình khỏi con người đầu tuổi teen ngày đó
      Dù vậy, Descent, đặc biệt là D3, đã ảnh hưởng rất lớn đến việc tôi bước vào ngành kỹ sư phần mềm, và tôi luôn biết ơn những ký ức đó
    • KoolBear, Jediluke, Mark392 á, đó là tên của bọn trẻ luôn à?
    • Tôi nhớ KoolBear từ thời chơi trên Kali. Gợi lại bao kỷ niệm đẹp
    • Tôi cực kỳ thích ý nghĩ rằng một trong những đứa trẻ thực sự tên là “koolbear”
  • Năm 12 tuổi tôi đọc FAQ của Descent rồi biết đến IRC, và đã thiết lập IHHD bằng modem 14.4k để chơi. Tôi cũng từng làm màn chơi bằng DEVIL
    Giờ tôi là kỹ sư và nhà phát triển game. Cảm ơn vì đã mang Descent đến với thế giới. Nó đã ảnh hưởng cực lớn đến cá nhân tôi

    • Tôi hay nghĩ rằng ngày xưa chỉ riêng quá trình loay hoay để chạy được game cũng đã giúp mình học được rất nhiều. Việc sửa lỗi để game chạy được là động lực cực lớn, và nếu game cần thêm bộ nhớ thì còn phải làm cả mấy việc như tối ưu bộ nhớ MS-DOS nữa
      Bản thân việc có được game thường đã là cả một hành trình
      Trẻ con bây giờ có vô số game trên điện thoại. Chúng gần như không bao giờ phải kết nối với hệ thống bên dưới, cũng chẳng cần nỗ lực gì. Chỉ việc tải xuống rồi chơi cái nào thấy ổn tiếp theo
      Tôi nghĩ thế hệ này đang bỏ lỡ một điều gì đó
  • Hệ thống điều khiển của Descent là thứ đã khiến tôi vĩnh viễn chốt luôn đảo trục Y trong game góc nhìn thứ nhất
    Não tôi hoàn toàn khớp với kiểu tư duy 6 bậc tự do đó, và từ sau đó mọi game FPS, dù không dựa trên cơ chế bay, cũng đều phải chỉnh theo kiểu ấy

    • Chơi Descent bằng chuột á? Bọn tôi chơi bằng cách đặt cả hai tay lên bàn phím. Dùng cụm numpad để điều khiển hướng nhìn, di chuyển ngang và xoay, còn các phím bên trái để di chuyển và bắn
      Chỉ bọn tôi mới chơi kiểu đó thôi sao?
    • Hỡi những người chơi đảo trục Y, hãy đoàn kết lại!
      Descent cùng với Flight Simulator 95 cũng góp phần làm hỏng não tôi. Không có đảo trục Y là tôi không chơi nổi
    • Tôi quen đảo trục Y đến mức không thể chơi bất kỳ game FPS nào ở thiết lập mặc định, nên đó luôn là thứ đầu tiên tôi đổi trong phần cài đặt game
      Giá mà mặc định của mọi game đều là đảo trục Y thì tốt biết mấy. Tôi cũng không rõ mình quen từ khi nào, chắc là lúc chơi X-Wing hoặc Quake gì đó
    • Mấy game ngày xưa đều mặc định kiểu đảo trục Y như người ta đang nói bây giờ
      Có lẽ nó được mang sang từ cách điều khiển máy bay, nơi kéo xuống thì mũi máy bay ngẩng lên. Cần lái, joystick, yoke đều như vậy cả. Counter-Strike đã phá hỏng điều đó :)
    • Không biết có mình tôi là người từng muốn đảo cả hai trục khi chơi game góc nhìn thứ ba bằng tay cầm hay không
      Cuối cùng thì tôi cảm thấy cả hai kiểu điều khiển đều không thực sự trực quan như nhau, và chắc phải chờ đến khi ai đó làm cho Zelda hiện đại hoạt động tử tế với chuột mới được
  • Tôi có vài người bạn từng chơi Descent rất cạnh tranh, và đã rất ngạc nhiên khi biết tới cái gọi là tricording. Để tối đa hóa tốc độ, bạn phải nhấn nhiều phím cùng lúc để di chuyển trên cả ba trục một lượt. Ví dụ như tổ hợp tiến/phải/lên
    Mấy cao thủ hàng đầu lướt quanh bản đồ theo đường chéo nhanh như tên bắn
    Tôi luôn nghĩ đây là kiểu bug trở thành tính năng giống như ski trong Tribes. Vừa xem kho mã để tìm manh mối, nhưng rốt cuộc tôi không thấy chú thích nào liên quan quanh dòng code nơi chuyện này xảy ra
    https://github.com/kevinbentley/Descent3/blob/142052a67d4318...

    • Theo tôi biết thì hiện tượng tương tự có thể xảy ra trong rất nhiều game bắn súng. Nếu vừa di chuyển ngang vừa tiến lên để chạy chéo, có lẽ do thiết kế sơ suất nên tốc độ trở thành sqrt(x^2 + y^2), trong khi tốc độ theo từng hướng lại bằng nhau
      Trong Descent, cộng thêm cả trục lên/xuống nên nó đạt khoảng 1,7 lần tốc độ so với chỉ bay tiến
      Descent 2 và 3 còn có afterburner tăng tốc về phía trước nữa, năng lượng có hạn nhưng hồi lại khá nhanh, và hiệu ứng boost mạnh nhất khi năng lượng ở mức 100%, sau đó hiệu suất giảm dần khi năng lượng tụt về 0%
      Vì vậy người ta học cách bật tắt nhanh nhiều lần mỗi giây để nó hồi lại trong những quãng dùng cực ngắn, giữ mức khoảng 95% thay vì tụt sâu xuống thấp
      Muốn đi thật nhanh thì phải vừa di chuyển chéo trong không gian 3D vừa nhấn afterburner kiểu xung nhiều lần mỗi giây
    • Ban đầu các nhà thiết kế không hẳn xem đó là bug hay tính năng, mà gần như chỉ là họ không nghĩ nhiều đến nó
      Sau khi được phát hiện, có người trong đội xem nó theo hướng tiêu cực, có người lại thích, và cả nhiều năm sau khi rời Descent, khi cả nhóm tụ họp lại để làm Overload, nó vẫn còn là chủ đề tranh cãi
      Tôi và vợ đã chỉnh D1 bằng mod để thử vài phương án khác nhau, rồi bay demo trước Mike/Matt/Luke/Dan và những người có mặt trong studio hôm đó. Cuối cùng bọn tôi đi đến kết luận rằng “tính độc lập của vector đơn giản là tạo cảm giác tốt hơn”, nên Overload được thêm tùy chọn chuyển giữa chế độ bay chuẩn có chuyển động 1 chiều nhanh hơn và chế độ tricording
    • Trong 2D, đường chéo của một hình vuông 1x1 dài hơn cạnh của nó
      Một cách triển khai ngây thơ chỉ cộng vector x và y lại sẽ tạo ra vector tổng, khiến tốc độ theo đường chéo tăng theo đúng độ dài đường chéo, tức nhanh hơn 1,41 lần. Trong 3D thì còn lớn hơn nữa
      Đây là bug kiêm tính năng cực kỳ phổ biến trong nhiều game cũ
      Quake có tính đến bug này khi đi bộ nhưng lại không tính khi đang nhảy, và kết quả là sinh ra kỹ thuật phức tạp hơn để tăng tốc gọi là strafe jump
    • Nếu nhìn vào phép tính thì có vẻ họ cộng các input thành phần lại rồi không chuẩn hóa lại vector lực đẩy cuối cùng. Nếu đơn giản hóa thành game 2D thì sẽ kiểu như thế này
      var playerX_input = Input.GetHorizontal(); // float in range -1 to 1
      var playerY_input = Input.GetVertical(); // float in range -1 to 1
      var playerVelocity = new Vector2(playerX_input, playerY_input);
      Giờ người chơi có thể di chuyển 1 đơn vị/khung hình theo X và 1 đơn vị/khung hình theo Y, và nếu di chuyển chéo thì độ dài vector vận tốc sẽ là độ dài của vector (1,1), tức sqrt(2), xấp xỉ 1,41
      Để sửa thì đại khái có thể làm thế này
      if(playerVelocity.length > 1)
      {
      playerVelocity = playerVelocity.normalized();
      }
    • Trong ladder thi đấu, một số cao thủ còn dùng xoay khi tricording để “đánh lái” theo quỹ đạo cong
      Điều đó khiến việc bắn trúng họ từ phía sau trở nên cực kỳ khó
      Tôi từng đấu với vài người chơi ladder và đã choáng vì đó hoàn toàn là một đẳng cấp khác
      Một trong những lý do những game đời đầu như thế hấp dẫn tôi đến vậy là vì về cơ bản không có trần kỹ năng
      Nếu ngày đó có thể xem những trận như vậy trên các nền tảng stream thì hẳn đã rất tuyệt
  • Link tham khảo cho đoạn “gần đây có người hỏi liệu mã nguồn của Descent 3 có được công khai hay không”: https://news.ycombinator.com/item?id=40009248
    Quá tuyệt, cảm ơn rất nhiều

  • Ở đoạn nói rằng “một phần thư viện âm thanh và video độc quyền của Interplay đã bị gỡ bỏ. Đó là các định dạng ACM và MVE. Nếu ai muốn giúp làm bộ chuyển đổi để các đoạn cắt cảnh cũ hoạt động lại thì tôi có đoạn mã đó. Sẽ cần bỏ chút công sức để stub đoạn mã ấy cho biên dịch được”, thì nhân tiện, có vẻ FFMPEG hỗ trợ các định dạng này

  • Tôi tò mò không biết cần những gì để được phê duyệt từ phía sau hậu trường. Bạn có thể giải thích đôi chút về quá trình ra quyết định không? Đây là một việc tốt, nhưng dạo này quá hiếm

    • Tôi vẫn giữ đoạn mã đó suốt thời gian qua, và khoảng 15 năm trước đã từng làm việc để sửa vài lỗi cũ
      Khi đó cũng đã có nói đến chuyện công khai mã nguồn, nhưng trước tiên tôi muốn phát hành bản vá và tìm một thứ thay thế cho bộ giải mã MVE
      Vài ngày trước, sau khi thấy bình luận ở một bài khác trên đây, tôi đã gửi email cho chủ sở hữu để hỏi liệu có thể gỡ phần mã không được phép công khai rồi cứ thế tiến hành hay không, và họ trả lời là “cứ làm đi”
  • Tôi tìm thấy một chi tiết quý giá thế này trên trang Wikipedia[0]
    “Một nghiên cứu công bố năm 2002 đã sử dụng Descent 3 để nghiên cứu hoạt động bay của bướm đầu diều hâu. Bằng cách dùng mô-đun biên tập của trò chơi, các nhà nghiên cứu đã tạo ra một môi trường ảo gồm một mặt phẳng phẳng với các cột hình hộp chữ nhật, và con vật đã điều hướng thành công trong đó”
    [0] https://en.wikipedia.org/wiki/Descent_3#Other_uses

    • Đúng là một công trình khá điên rồ. Cảnh tượng như trong Clockwork Orange khi cố định con bướm vào một cỗ máy VR, lại còn gắn cả bộ phun pheromone và điện cực
      “Bài báo này mô tả thiết kế của một trình mô phỏng bay côn trùng mới, kết hợp môi trường thị giác chân thực và có tính tương tác với các kích thích cơ học cảm giác và khứu giác, đồng thời sử dụng cùng những kỹ thuật ghi thần kinh sinh lý đa kênh hiện đại. Hệ thống này tận dụng công nghệ máy tính hiện có và các kỹ thuật chế tạo MEMS để khảo sát song song hoạt động của nhiều nơ-ron trong hệ thần kinh trung ương trong quá trình bay vòng kín thực tế của loài bướm đầu diều hâu Manduca sexta”
      https://www.sciencedirect.com/science/article/abs/pii/S01650...
  • Tôi từng nghe nhiều người thích Descent, và nhìn qua thì nó cũng có vẻ rất tuyệt. Nó giống như sự pha trộn giữa X-Wing và Quake
    Nhưng tôi không thể chơi quá vài phút, và trong cả quãng đời chơi game dài của mình, có lẽ đó là trò đầu tiên tôi bỏ cuộc nhanh đến vậy. Nó tạo ra một cảm giác gì đó bất an, như thể đang đeo găng tay đấm bốc để xử lý nam châm. Chỉ xem video gameplay thôi tôi cũng có cảm giác tương tự.