VNR Content
Pearl
Mình gặp được câu hỏi khá thú vị như sau: Tôi đang tập tành viết game và điều đầu tiên tôi nghĩ đến là xem / tham khảo mã của một số trò chơi tôi đã mua hoặc chơi trên web/ di động. Vấn đề là tôi không biết chính xác tôi có thể tìm thấy mã game ở đâu? và không thực sự biết tôi đang tìm kiếm gì. Ai có thể giúp tôi hoặc cho tôi lời khuyên được không?
Đúng là kiểm tra mã nguồn website rất dễ, ở ngay trên trình duyệt và một người chẳng biết gì về IT cũng có thể làm được. Nhưng xem mã nguồn game lại khác.
Tôi đã tìm hiểu và có nhiều chỉ dẫn khác nhau, nhưng đều nói là phức tạp, chỉ những người có trí nhớ siêu phàm và siêu toán mới giải thích được, tốt nhất lên youtube, tìm một số kênh hướng dẫn và làm theo.
Tuy nhiên, trong số hàng vạn game đang lưu hành có một số game đã công bố mã nguồn, có thể xem miễn phí hoặc mất phí. Bạn có thể tìm thấy trên Google.
Bên cạnh đó, tôi thấy có câu trả lời trên diễn đàn nhà phát triển stackexchange là khá hợp lý, tạm dịch để anh em nắm được như sau:
Truy cập vào mã nguồn của trò chơi có thể là rất đơn giản đến không thể. Các yếu tố quyết định đó là:
- Công nghệ nào đã được sử dụng để tạo ra trò chơi? Việc biên dịch các tệp thực thi thành mã nguồn có thể đọc được có thể dễ dàng (như trong Java) đến khó (như C ++). Một số công nghệ thậm chí còn yêu cầu bao gồm mã nguồn với trò chơi, vì chúng diễn giải mã nguồn trong thời gian chạy (chẳng hạn như javascript dựa trên trình duyệt).
- Các nhà phát triển đã thực hiện các biện pháp để làm cho việc truy cập mã nguồn dễ dàng hơn hay khó hơn? Họ có thể chạy mã của họ qua một trình làm mờ để làm cho việc dịch ngược trở nên khó khăn hơn. Hoặc họ thậm chí có thể cung cấp các phần của mã nguồn trong một kho lưu trữ công khai để người chơi xem.
- Có các thành phần phía máy chủ không? Khi các phần của trò chơi chạy trên một máy chủ, thì người chơi không thể truy cập được mã của các thành phần đó, trừ khi bị nội gián hoặc tin tặc tiết lộ.
Nhưng nếu bạn muốn biết thêm về cách một người chơi sử dụng từ đồng nghĩa t0st giải quyết vấn đề thời gian tải trong GTA 5 và khắc phục nó, họ đã viết một bài luận về điều đó, nhưng tl; dr: (tức là quá dài, đừng đọc)
1, Họ sử dụng một trình biên dịch để tìm các phần của mã mất nhiều thời gian nhất để thực thi.
2, Họ đã tháo rời tệp thực thi của trò chơi bằng cách kết xuất bộ nhớ trong thời gian chạy và chạy nó thông qua trình dịch ngược C ++.
3, Họ đã đào qua mã nguồn C ++ khó đọc và phát hiện ra rằng các phần chậm phân tích cú pháp các chuỗi chứa dữ liệu JSON.
4, Họ phát hiện ra rằng dữ liệu JSON được đề cập chứa dữ liệu về các mục và chúng đã được phân tích cú pháp theo cách rất kém hiệu quả.
5, Họ đã tạo ra một triển khai hiệu quả hơn và đưa nó vào dưới dạng DLL, đây là một phương pháp phổ biến để sửa đổi các phần của trò chơi vốn không được thiết kế để sửa đổi.
Đúng là kiểm tra mã nguồn website rất dễ, ở ngay trên trình duyệt và một người chẳng biết gì về IT cũng có thể làm được. Nhưng xem mã nguồn game lại khác.
Tôi đã tìm hiểu và có nhiều chỉ dẫn khác nhau, nhưng đều nói là phức tạp, chỉ những người có trí nhớ siêu phàm và siêu toán mới giải thích được, tốt nhất lên youtube, tìm một số kênh hướng dẫn và làm theo.
Tuy nhiên, trong số hàng vạn game đang lưu hành có một số game đã công bố mã nguồn, có thể xem miễn phí hoặc mất phí. Bạn có thể tìm thấy trên Google.
Truy cập vào mã nguồn của trò chơi có thể là rất đơn giản đến không thể. Các yếu tố quyết định đó là:
- Công nghệ nào đã được sử dụng để tạo ra trò chơi? Việc biên dịch các tệp thực thi thành mã nguồn có thể đọc được có thể dễ dàng (như trong Java) đến khó (như C ++). Một số công nghệ thậm chí còn yêu cầu bao gồm mã nguồn với trò chơi, vì chúng diễn giải mã nguồn trong thời gian chạy (chẳng hạn như javascript dựa trên trình duyệt).
- Các nhà phát triển đã thực hiện các biện pháp để làm cho việc truy cập mã nguồn dễ dàng hơn hay khó hơn? Họ có thể chạy mã của họ qua một trình làm mờ để làm cho việc dịch ngược trở nên khó khăn hơn. Hoặc họ thậm chí có thể cung cấp các phần của mã nguồn trong một kho lưu trữ công khai để người chơi xem.
- Có các thành phần phía máy chủ không? Khi các phần của trò chơi chạy trên một máy chủ, thì người chơi không thể truy cập được mã của các thành phần đó, trừ khi bị nội gián hoặc tin tặc tiết lộ.
Nhưng nếu bạn muốn biết thêm về cách một người chơi sử dụng từ đồng nghĩa t0st giải quyết vấn đề thời gian tải trong GTA 5 và khắc phục nó, họ đã viết một bài luận về điều đó, nhưng tl; dr: (tức là quá dài, đừng đọc)
1, Họ sử dụng một trình biên dịch để tìm các phần của mã mất nhiều thời gian nhất để thực thi.
2, Họ đã tháo rời tệp thực thi của trò chơi bằng cách kết xuất bộ nhớ trong thời gian chạy và chạy nó thông qua trình dịch ngược C ++.
3, Họ đã đào qua mã nguồn C ++ khó đọc và phát hiện ra rằng các phần chậm phân tích cú pháp các chuỗi chứa dữ liệu JSON.
4, Họ phát hiện ra rằng dữ liệu JSON được đề cập chứa dữ liệu về các mục và chúng đã được phân tích cú pháp theo cách rất kém hiệu quả.
5, Họ đã tạo ra một triển khai hiệu quả hơn và đưa nó vào dưới dạng DLL, đây là một phương pháp phổ biến để sửa đổi các phần của trò chơi vốn không được thiết kế để sửa đổi.