Mã nguồn VVVVVV được công khai
(github.com/TerryCavanagh)- Mã nguồn của game indie năm 2010 VVVVVV đã được công khai; game do Terry Cavanagh phát triển, phần âm nhạc do Magnus Pålsson đảm nhiệm
- Mã nguồn của phiên bản desktop nằm trong thư mục desktop_version của repository
- VVVVVV hiện vẫn đang được bán thương mại, nhưng bạn có thể tự do biên dịch các bản build cho mục đích sử dụng cá nhân
- Nếu muốn phân phối phiên bản đã biên dịch, cần kiểm tra LICENSE.md trong repository
- Thảo luận liên quan đến các bản cập nhật VVVVVV chủ yếu diễn ra trên kênh
vvvvvv-codecủa VVVVVV Discord không chính thức
Mã nguồn được công khai
- Repository này chứa mã nguồn của game indie năm 2010 VVVVVV của Terry Cavanagh
- Có thể xem thông báo công khai mã nguồn trong bài thông báo trên blog của Terry: announcement
- Mã nguồn phiên bản desktop nằm trong thư mục desktop_version
Điều kiện sử dụng và phân phối
- VVVVVV hiện vẫn có thể mua thương mại tại thelettervsixtim.es
- Nếu dùng cho mục đích cá nhân, bạn có thể tự biên dịch game
- Nếu muốn phân phối phiên bản game đã biên dịch, cần kiểm tra LICENSE.md
Kênh thảo luận về cập nhật
- Các thảo luận về cập nhật VVVVVV chủ yếu diễn ra trên VVVVVV discord không chính thức
- Kênh liên quan là
vvvvvv-code
1 bình luận
Các ý kiến trên Hacker News
Khi gần hết cấp ba, tôi cùng gia đình đến London. Vì muốn trở thành nhà phát triển game, tôi đã gửi email cho Terry Cavanagh, và thật bất ngờ là anh ấy vui vẻ đồng ý đi ăn trưa cùng tôi
Anh ấy thực sự rất tử tế và cho tôi nhiều lời khuyên về cuộc sống. Tôi nhớ anh ấy nói rằng phần lớn ý tưởng không đến từ một tầm nhìn to tát nào đó, mà đến từ việc mày mò và thử nghiệm với cơ chế game. Dù sao thì anh ấy là một người tuyệt vời, và tôi rất vui khi anh ấy mở mã nguồn VVVVVV, trò mà anh ấy gọi là V
Phải gặp vài người thật sự tệ thì mới nhận ra đúng những người thực sự tốt
Một game thật sự thú vị. Tôi không phải kiểu chơi quá nhiều game, nhưng tôi nhớ đã mua Humble Bundle để lấy trò này
Đây là một trong số ít game tôi chơi đến hết. Terry, cảm ơn vì tác phẩm tuyệt vời và những giờ phút vui vẻ. Nhân tiện, veni vidi vici đúng là khó đến phát bực và tôi đã mất rất lâu
https://www.youtube.com/watch?v=4CtiY5D6HCs
Bạn trai tôi lúc đó là người đã mua VVVVVV cho tôi, và anh ấy đang thử chạy no-death lấy toàn bộ trinket. Tôi không hiểu nổi sao anh ấy có thể chơi game giỏi đến thế. Và nhạc nền VVVVVV, PPPPPP, thì tôi vẫn nghe thường xuyên. Đặc biệt là các track stream osu! liên quan rất hay
Đây là các bài liên quan. Không biết còn bài nào khác không
Is opening up your source code worth it? Terry Cavanagh thinks it was for VVVVVV - https://news.ycombinator.com/item?id=25727963 - tháng 1 năm 2021
Many games are held together by duct tape - https://news.ycombinator.com/item?id=22043156 - tháng 1 năm 2020
VVVVVV Source Code Released - https://news.ycombinator.com/item?id=22011465 - tháng 1 năm 2020
VVVVVV’s source code is now public, 10 year anniversary jam happening now - https://news.ycombinator.com/item?id=22011358 - tháng 1 năm 2020
VVVVVV 60% Off On The Mac App Store This Weekend - https://news.ycombinator.com/item?id=2347676 - tháng 3 năm 2011
Trong chú thích của
Graphics::print_level_creator(...)có nói rằng thay vì “by {author}” thì hiển thị một khuôn mặtLý do là “by” có thể lệch với ngôn ngữ của tác giả nên trông kỳ, trong các ngôn ngữ khác có thể dài ra và phá vỡ giới hạn cấp độ hiện có, “by” và tên tác giả có thể cần các phông chữ không khớp nhau, cũng tránh được các vấn đề ngữ pháp như giới tính hay biến cách tên, hiển thị bằng khuôn mặt là hợp lý, và nếu quyết định này khiến ai đó buồn thì dù sao mặt cười cũng sẽ làm họ phấn chấn hơn. Khó mà phản bác
Trong bài được liên kết tại https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-..., có nói rằng phiên bản C++ có nhiều chỗ kỳ lạ mà phải nhớ rằng nó được làm trước bằng Flash rồi tự tay port sang, giữ nguyên cả các vết xước, thì mới hiểu được
Ví dụ, tác giả có thói quen khai báo các biến tạm như
i,j,klàm member của từng class để khỏi phải khai báo trong hàm, vì trong Flash việc khai báo trong hàm khá phiền vì những lý do nhàm chán. Kết quả là sinh ra các lỗi khó truy vết, đặc biệt trong xử lý va chạm entity, nơi nhiều hàm dùng chung cùng một biếni, thậm chí có thể gây vòng lặp vô hạn. Nghe thật tệ, và xác nhận định kiến rằng mã game là một mớ hỗn độnMã có thể tốt nhưng nhàm chán. Như một ứng dụng máy tính được viết tốt nhưng phần triển khai nhạt nhẽo. Mã cũng có thể vừa lộn xộn vừa nhàm chán. Như một sản phẩm B2B thiếu thiết kế, có hàng trăm điều kiện ngoại lệ và mỗi điều kiện lại có những bug tương tự nhưng khác nhau. Mã có thể vừa tốt vừa thú vị. Như Doom chẳng hạn
this.trước mọi member trong JavaScript trở nên ít khó chịu hơn nhiềuCũng muốn nhắc đến Super Hexagon của cùng nhà làm game này. Một trò chơi cực kỳ đơn giản nhưng thật sự vui và gây nghiện mạnh
Tôi nhớ đã đọc ở đâu đó rằng tác giả chỉ mất khoảng một ngày để làm ra nó. Và soundtrack PPPPPP của VVVVVV cũng rất tuyệt
Có khoảng sáu nhân vật riêng biệt, mỗi nhân vật có nhiều thử thách, và luật chơi liên tục thay đổi khiến bạn phải suy nghĩ lại về trò chơi. Cũng có nhiều yếu tố hài hước, cùng DLC miễn phí và nội dung mod mà tôi vẫn chưa thử
Việc một nhà phát triển indie sau thành công ban đầu lại rẽ sang một thể loại hoàn toàn mới lúc nào cũng thú vị, và đã có những viên ngọc tuyệt vời ra đời theo cách đó. Ví dụ như dòng chuyển từ Fallen London -> Sunless Sea -> Cultist Simulator
Lúc đầu trông có vẻ bất khả thi, nhưng não sẽ thích nghi. Cảm giác như nhìn xuyên qua Ma trận vậy
Tôi cũng chia sẻ nó cho nhiều người và làm họ phát cuồng theo. Tôi tin là mình vẫn còn khoảng 5–6 bản trong kho Steam. Biết đâu cần đến. V, SMB, Braid và nhiều game khác cũng vậy. Đôi khi chỉ cần một chút cảm hứng và đồ họa vụng về là đủ
Có một thời tôi vừa chuyển từ Canada đến California và rất cần việc làm, nên nhận công việc bán hàng tận nhà cho Comcast
Tôi ghét công việc đó, nên thường ngồi trong xe, né tránh trách nhiệm và chơi VVVVVV trên điện thoại. Nhờ Terry mà tôi có được chút thời gian để thở
Một game tuyệt vời. Đúng chất game indie thời đó, code thật sự là một mớ hỗn độn, nhìn mà thấy thích
Game::updatestate()dài 3300 dòng và một câu lệnh switch khổng lồTôi đã đóng gói nó cho Zig, và chỉ cần chạy
zig buildlà có thể chơi game trên Linux, macOS, Windowshttps://github.com/allyourcodebase/VVVVVV
Tác giả thú nhận rằng vì không muốn khai báo
i,j,kở từng chỗ dùng trong hàm, nên đã khai báo chúng trong mọi class, và đúng như dự đoán, điều đó tạo ra những bug bẩn và khó lần raThật đáng kinh ngạc là với kiểu code như vậy mà vẫn làm ra được một game ổn