Valve công bố mã nguồn game Team Fortress 2
(github.com/ValveSoftware)- Commit
Add Team Fortress 2 SDKtrongValveSoftware/source-sdk-2013là một thay đổi lớn bổ sung Team Fortress 2 SDK vào kho Source SDK 2013, bao gồm rộng rãi các tệp game, client và shader - Cây tệp xuất hiện các cấu hình và tệp dự án dành riêng cho TF như
game/mod_tf,src/game/client/tf,client_tf.vpc,game_shader_generic_*_tf.vpc - Phạm vi mã client được chia rộng theo từng hệ thống game như HUD, vũ khí, vật thể phóng, bot NPC, Halloween, Mann vs. Machine, PASS Time, replay, giao diện econ và cửa hàng
- Đi kèm còn có binary Steam API, cấu hình task cho VS Code, script build, cấu hình VPC·Xcode·make, DLL tiện ích DirectX SDK và công cụ build shader
- Nội dung có thể xác nhận chủ yếu là danh sách tệp và một phần diff trên trang commit lớn của GitHub, nên phần lớn khó xác định thay đổi triển khai thực tế trong từng tệp hoặc việc tệp được thêm/sửa ra sao
Phạm vi được đưa vào commit TF2 SDK
- Đối tượng là commit
Add Team Fortress 2 SDKtrong kho công khaiValveSoftware/source-sdk-2013- Tiêu đề trang GitHub là
Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub - Chỉ số kho hiển thị là Fork 3k, Star 9.8k
- Tiêu đề trang GitHub là
- Ở thư mục gốc và phía
gamecó các tệp cơ bản và cấu hình mod cần cho bản phân phối SDK- Ở cấp gốc thấy các tệp
.gitattributes,.gitignore,CONTRIBUTING,LICENSE,README.md,README game/binchứa binary Steam API nhưlinux64/libsteam_api.so,x64/steam_api64.dllgame/mod_tfchứa tài nguyên cấu hình và UI nhưgameinfo.txt,steam.inf, logo TF2,resource/mod_tf_english.txt,MatchMakingDashboard.res
- Ở cấp gốc thấy các tệp
- Bên dưới
src/game/client/tfcó lượng lớn tệp trông như mã client Team Fortress 2- Người chơi·đội:
c_tf_player.cpp/.h,c_tf_team.cpp/.h,c_tf_playerresource.cpp/.h - Vũ khí·vật thể phóng:
c_tf_projectile_arrow,c_tf_projectile_rocket,c_tf_stickybolt,c_tf_weapon_builder - Công trình Engineer:
c_obj_dispenser,c_obj_sentrygun,c_obj_teleporter,c_obj_sapper - Chế độ·sự kiện: bao gồm các tệp liên quan đến PASS Time, Halloween, Mann vs. Machine, PvE
- Người chơi·đội:
- Các thành phần UI và game dạng dịch vụ cũng được đưa vào rộng rãi trong danh sách tệp
- Thư mục
econcó các tệp UI cho kho đồ, trang bị, giao dịch, chợ và vật phẩm econ/storecó các tệp liên quan đến màn hình cửa hàng- Các tệp HUD được chia theo tài khoản, thành tích, thông báo, đạn, chat, tâm ngắm, hiển thị sát thương, máu boss, trạng thái Mann vs. Machine, v.v.
- Thư mục
Shader và công cụ build
- Danh sách thay đổi liên quan đến shader rất lớn
- Bao gồm nhiều định dạng như
.fxc,.psh,.vsh,.inc,.cpp,.h,.bat,.vpc,.pl - Lặp lại các biến thể theo hồ sơ shader như
ps11,ps14,ps20,ps20b,ps30,vs11,vs20,vs30 - Bao gồm các tệp liên quan đến nước, hậu kỳ, bloom, motion blur, cloak, eye, flashlight, lightmapped generic, HDR·tone mapping, particle
- Bao gồm nhiều định dạng như
- Môi trường phát triển và build cũng được đưa vào cùng
src/.vscode/tasks.json,src/buildallprojectscreateallprojects,creategameprojects- Cấu hình Xcode, POSIX makefile, định nghĩa make của Source SDK trong
src/devtools ShaderCompile2.exe,vpc.exe,vpc_linux,vpc_osxvà các script Perl/Python/PowerShell trongsrc/devtools/bin
Giới hạn có thể xác nhận và ghi chú diff
- Dữ liệu đầu vào hiện tại là phần tóm tắt cây tệp và một phần thông tin diff trên trang commit, phần lớn là danh sách tệp thay đổi chứ không phải nội dung mã thực tế
- Vì đây là trang commit lớn của GitHub nên một số nội dung mặc định bị ẩn, và có hướng dẫn có thể dùng ô tìm kiếm để tìm nội dung bị ẩn
- Trang cũng hiển thị thông báo lỗi “There was an error while loading. Please reload this page.”
- Diff của
.gitattributeshiển thị 5 dòng thêm và 11 dòng xóaREADME textbị xóa vàREADME.md textđược thêm*.dll binary,buildallprojects text,vpc binaryđược thêmmod_*_english.txt binarybị xóa và*_english.txt binaryđược thêm- Một số mục như
creategameprojects,createallprojects,vpc_linux,vpc_osxhiển thị là đã bị xóa
- Bình luận commit hiển thị là 0
Phạm vi chưa được phản ánh
- Theo ghi chú đầu vào, một số chunk của nguyên văn đã bị lược bỏ do giới hạn độ dài và chi phí
- Vì vậy, bản tóm tắt này chỉ phản ánh danh sách tệp commit và một phần diff trong phạm vi ghi chú nguồn được cung cấp, không bao quát mọi tệp và thay đổi của toàn bộ commit
2 bình luận
Valve đúng là rất ngầu.
Ý kiến trên Hacker News
Đây là tin tốt cho modding, nhưng đừng nhầm lẫn rằng đây vẫn chỉ là mã riêng cho TF2 đặt bên trên Source engine vốn vẫn đóng
Ví dụ, bạn không thể dùng thứ này để port TF2 sang nền tảng mới; ít nhất phải tái triển khai Source hoặc cố gắng khớp nó với một trong các codebase Source từng bị rò rỉ rồi chấp nhận hệ quả pháp lý
Có một cộng đồng năng động hiểu rõ các nhược điểm trong workflow của Source, nên nếu công bố theo GPL như Carmack từng làm với id tech, các dự án sáng tạo của indie có thể bùng nổ. Họ cũng không còn phải bị ràng buộc bởi các hợp đồng mập mờ nữa
Liệu một ngày nào đó họ có công bố không? Có thể có vấn đề giấy phép khiến họ không thể dễ dàng mở nguồn vì không nắm toàn bộ quyền, hoặc có lẽ vẫn còn nhiều công nghệ bí mật đáng giữ lại
https://www.youtube.com/watch?v=09CvpQrnTEY
Với tư cách người từng làm mod TF2 phía server, chuyện này thật tuyệt vời. Tôi đã mất vô số giờ phân tích binary bằng IDA, giờ thì chỉ cần mở GitHub là xong
Cộng đồng sẽ có thể tạo tính năng mới và sửa lỗi nhanh hơn nhiều. Thực ra đáng lẽ việc này nên diễn ra từ lâu rồi; mã nguồn TF2 đã bị rò rỉ hai lần, và một nhóm thậm chí đã làm cả bản clone của game trên một phiên bản engine cũ hơn. Sự hỗ trợ của cộng đồng dành cho game này đến giờ vẫn rất lớn
Hy vọng đây là tin tốt cho TF2 Classic
Theo thông báo trên Discord của TF2C, do bản cập nhật SDK quy mô lớn và việc công bố mã Team Fortress 2, có thể trong một thời gian sẽ không chạy được TF2 Classic. Họ nói rằng đã chuẩn bị cho công việc port và khả năng phát hành trên Steam, và giờ có thể tiến hành một cách hợp pháp. Nếu muốn tiếp tục chơi trong thời gian này, cần đổi Source SDK Base 2013 Multiplayer sang nhánh beta
previous2021, nơi vẫn còn các file SDK cũCó vẻ tên game đã được đổi thành Frog Fortress 2
https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...
Ếch và lập trình đồ họa là bạn tốt của nhau
Bài blog chính thức: https://www.teamfortress.com/post.php?id=238809
Cũng bao gồm các liên kết tới những bản cập nhật gần đây của các game dùng Source engine khác
Ôi… ôi, wow. Không ngờ lại thấy chuyện này trên HN. Tôi đã mong đợi từ lâu, nhưng nếu là Valve thì tôi đã tung một bản cập nhật nội dung kỷ niệm “cuối cùng” từ lâu rồi, port game sang Vulkan, giữ những thứ như server vật phẩm gắn với server của Valve, rồi mở nguồn codebase
Không biết đây là khởi đầu của hồi kết TF2, hay là kết thúc của phần mở đầu. Trước đây đã từng có rò rỉ, nhưng lần này là tin cực lớn
Đội TF2 giờ có lẽ nhiều lắm cũng chỉ tầm hơn chục người, còn game thì gần 18 năm tuổi rồi, nên đã đến lúc giao việc phát triển tiếp cho cộng đồng bên ngoài
Giờ Valve đang tiếp nối một truyền thống đã kéo dài hơn 25 năm. Người ta đến nay vẫn tạo và chơi các bản đồ Doom mới. Nếu lịch sử là chuẩn tham chiếu, thì sau thập niên 2050 chúng ta vẫn có thể đang chơi TF2 dưới một hình thức nào đó
Việc họ làm điều này ngay cả trước khi biên dịch lại cho Mac 64-bit nói lên rất nhiều. Rõ ràng Valve không xem Apple là một đối tác dễ làm ăn
Nhìn cách Apple cố nhốt các nhà phát triển game trong App Store thì cũng dễ hiểu
Việc Apple tự hào công bố đồ họa tầm trung kiểu Tomb Raider 2 cũng không tạo nhiều kỳ vọng cho các nhà phát triển game không được chiến dịch PR của Apple hỗ trợ. Hơn nữa, xét theo số lượng người chơi thì đây còn là nền tảng nhỏ hơn cả Linux
Trừ khi chắc chắn sẽ có một cộng đồng người chơi đủ tốt, việc một công ty game tối ưu cho Mac dường như không có nhiều ý nghĩa về mặt kinh doanh. Người dùng đủ tiền mua Mac nhiều khả năng cũng mua được console
Có thể ép game chạy bằng các wrapper và cách đi đường vòng như khi chơi game trên Linux, nhưng trên Mac các công cụ kém trưởng thành hơn nên phải tự tối ưu trực tiếp. Game trên Linux vốn đã gặp nhiều vấn đề tương thích DRM/chống gian lận, dùng công cụ kém trưởng thành hơn chỉ làm mọi thứ tệ thêm
Apple dường như cũng không mấy quan tâm đến tương thích ngược. Họ loại bỏ 32-bit mà không có lý do rõ ràng nào ngoài “không muốn duy trì tương thích”, và cũng không ai biết họ sẽ giữ các API thay thế hiện tại trong bao lâu. Linux cũng có vấn đề tương tự, nên cách cơ bản để chơi game trên Linux là chạy trong môi trường Windows được giả lập
Các công ty game có lẽ sẽ biên dịch lại game cho Snapdragon trước cả Mac. Đến lúc làm cho các thư viện x86 32-bit chạy được trên ARM mà không cần giả lập, Apple hẳn đã đổi API và yêu cầu thêm vài lần nữa, nên chẳng có lý do gì để làm
Người ta chế giễu câu “devs devs devs” của Ballmer, nhưng ông ấy nói khá đúng. Microsoft đã chi rất nhiều tiền để thu hút nhà phát triển, và kết quả là họ giành được vị thế độc tôn trong mảng game PC
Ít nhất thì có vẻ nó sẽ đến, theo nghĩa x86-64 được Apple Silicon hỗ trợ tốt hơn qua Rosetta 2
Nhiều hơn tôi nghĩ, nhưng nếu không có game tương thích thì cũng gần như không có lý do để cài Steam. Việc Apple chỉ mới bắt đầu trở nên thân thiện với game gần đây cũng khiến chuyện họ muốn port một game 20 năm tuổi không có gì đáng ngạc nhiên
Phát biểu năm 2007 của Gabe là thứ gần giống nhất. Ông nói rằng mỗi khi gặp Apple, phía họ bảo “game thật sự rất quan trọng nên chúng ta phải làm gì đó”, rồi khi Valve nói “vậy nếu làm ba việc này thì sẽ tốt hơn”, họ bảo đã hiểu rồi sau đó biến mất không bao giờ thấy nữa. Sau đó khi người trong nội bộ Apple thay đổi, cùng một chu kỳ lại bắt đầu
Trong lịch sử thay đổi cũng có vài file HL3 nhỏ: https://github.com/ValveSoftware/source-sdk-2013/commit/0759...
Valve vẫn đang tiếp tục thắng
Tôi sợ ngày Gaben qua đời hoặc rút lui. Hy vọng Valve tìm được người kế nhiệm xuất sắc, nhưng chuyện một công ty mất phương hướng sau khi thế hệ sáng lập biến mất không hề hiếm
Dù vậy, tôi sẽ mãi biết ơn Steam vì nhờ nó tôi có thể chạy game Windows trên Linux một cách ít đau đớn, để trong đời sống cá nhân không phải quay lại đối mặt với Microsoft. Với tư cách nhà phân phối game thì họ rất tuyệt, và phân phối game cũng là việc Valve làm tốt nhất
Chu kỳ phát hành của Valve gần như đã dừng lại, và họ đang dựa vào những con bò sữa hái ra tiền. Gabe đã 62 tuổi và có vẻ quan tâm hơn đến công ty cạnh tranh với Neuralink
Mọi người quên rằng TF2 là một trong những ví dụ sớm ở phương Tây đưa loot box vào game, từ rất lâu trước khi Overwatch ra mắt. Portal 2 cũng không cần thiết mà vẫn nhét thứ đó vào chế độ co-op. Đó là lý do họ ngừng phát hành trải nghiệm chơi đơn. Dù có thể xem Half-Life: Alyx là ngoại lệ
CS:GO là tệ nhất. Có các trang bên thứ ba cho phép đánh bạc bằng skin súng, và chúng nhắm thẳng vào trẻ em. Thực tế gần như toàn bộ scene chuyên nghiệp CS:GO đều được những trang này tài trợ
Các trang đánh bạc skin không được Valve chính thức phê duyệt, nhưng họ hầu như không nỗ lực ngăn chặn
Giờ thì tò mò liệu họ có bắt đầu nhận pull request không. Có rất nhiều bug mình muốn được sửa trong game
Mình đã bực bội gần 10 năm vì vấn đề tia của Medigun không khớp với model
Repo Half-Life cũng vậy. Ngay cả khi phần việc liên quan đến kỷ niệm 25 năm được công khai, nó cũng được push dưới dạng một patch khổng lồ