Công bố mã nguồn Descent 3
(github.com/kevinbentley)- 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.5do 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.5do 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
Ý 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
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/
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
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
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 đã 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
Đã 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 đó
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
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ỉ bọn tôi mới chơi kiểu đó thôi sao?
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
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ì đó
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 đó :)
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...
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
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
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
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();
}
Đ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
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
“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ự.