Tuyên bố miễn trừ trách nhiệm: Loại trò chơi yêu thích mọi thời đại của tôi là dựa trên văn bản và tôi viết đây là một lập trình viên lâu năm của một MUD cũ.
Tôi nghĩ một câu hỏi quan trọng bạn cần tự hỏi mình là: Bạn thậm chí có cần chủ đề không? Tôi hiểu rằng một trò chơi đồ họa có thể sử dụng nhiều MT hơn nhưng tôi nghĩ nó cũng phụ thuộc vào cơ chế của trò chơi. . Nó cũng phụ thuộc vào cách bạn xác định 'tất cả các ký tự cùng một lúc'. Bạn có nghĩa là cùng một lúc? Bạn sẽ không có được điều đó vì Peter đã chỉ ra một cách chính đáng nên tất cả cùng một lúc là không liên quan theo nghĩa đen; nó chỉ xuất hiện theo cách này
Giả sử bạn sẽ đi với các luồng: Bạn chắc chắn không nên xem xét 100 luồng (và tôi thậm chí sẽ không biết liệu nó có quá nhiều cho CPU của bạn hay không; tôi chỉ đề cập đến các biến chứng và tính thực tế của nó).
Nhưng hãy nhớ điều này: đa luồng không dễ dàng (như Philipp chỉ ra) và có nhiều vấn đề. Những người khác có nhiều kinh nghiệm hơn (rất nhiều) so với tôi làm với MT nhưng tôi sẽ nói họ cũng sẽ đề xuất điều tương tự (mặc dù họ sẽ có khả năng hơn tôi - đặc biệt là không có phần thực hành của tôi).
Một số ý kiến cho rằng họ không đồng ý rằng các chủ đề không có lợi và một số cho rằng mỗi đối tượng nên có một chủ đề. Nhưng (và một lần nữa đây là tất cả văn bản nhưng ngay cả khi bạn xem xét nhiều hơn một chủ đề bạn không cần - và không nên - xem xét nó cho từng đối tượng) khi Philipp chỉ ra các trò chơi có xu hướng lặp qua các danh sách. Nhưng nó không chỉ (như anh ấy gợi ý mặc dù tôi nhận ra anh ấy chỉ đáp ứng với các thông số của bạn về rất ít đối tượng) cho rất ít đối tượng. Trong MUD tôi là một lập trình viên cho chúng tôi có những điều sau đây (và đây không phải là tất cả các hoạt động xảy ra trong thời gian thực vì vậy hãy ghi nhớ điều đó):
(Số lượng phiên bản khác nhau tất nhiên - cao hơn và thấp hơn)
Điện thoại di động (NPC tức là nhân vật không phải người chơi): 2614; nguyên mẫu: 1360 Đối tượng: 4457; nguyên mẫu: 2281 Phòng: 7983; nguyên mẫu: 7983. Mỗi phòng thường có một ví dụ riêng nhưng chúng tôi cũng có các phòng năng động, nghĩa là các phòng trong một phòng; hoặc các phòng bên trong điện thoại di động, ví dụ như dạ dày của rồng; hoặc các phòng trong các vật thể, ví dụ như bạn nhập một vật thể ma thuật). Hãy nhớ rằng các phòng động này tồn tại trên mỗi đối tượng / phòng / điện thoại di động thực sự đã xác định chúng. Vâng, điều này rất giống với World of Warcraft (Tôi không chơi nó nhưng một người bạn đã cho tôi chơi nó khi tôi có một máy Windows, trong một thời gian) ý tưởng về các trường hợp ngoại trừ chúng ta đã có nó từ lâu trước khi World of Warcraft tồn tại.
Tập lệnh: 868 (hiện tại) (thật kỳ lạ, lệnh thống kê của chúng tôi không hiển thị số lượng nguyên mẫu chúng tôi có nên tôi sẽ thêm vào đó). Tất cả những thứ này được tổ chức ở các khu vực / khu vực và chúng tôi có 103 trong số đó. Chúng tôi cũng có các thủ tục đặc biệt mà Proc tại các thời điểm khác nhau. Chúng tôi cũng có những sự kiện khác. Sau đó, chúng tôi cũng có ổ cắm kết nối. Điện thoại di động di chuyển xung quanh, thực hiện các hoạt động khác nhau (ngoài chiến đấu), có tương tác với người chơi, v.v. (Các loại thực thể khác cũng vậy).
Làm thế nào để chúng tôi xử lý tất cả điều này mà không có bất kỳ sự chậm trễ?
socket: select (), hàng đợi (đầu vào, đầu ra, sự kiện, những thứ khác), bộ đệm (đầu vào, đầu ra, những thứ khác), v.v ... Chúng được thăm dò 10 lần một giây.
nhân vật, đồ vật, phòng, chiến đấu, tất cả mọi thứ: tất cả trong một vòng lặp trung tâm trên các xung khác nhau.
Chúng tôi cũng (triển khai của tôi dựa trên cuộc thảo luận giữa người sáng lập / lập trình viên khác và bản thân tôi) có kiểm tra tính hợp lệ của danh sách liên kết và kiểm tra con trỏ và chúng tôi có quá nhiều tài nguyên miễn phí nếu chúng tôi thực sự cần nó. Tất cả những điều này (ngoại trừ chúng tôi đã mở rộng thế giới) đã tồn tại từ nhiều năm trước khi có ít RAM, sức mạnh CPU, dung lượng ổ cứng, v.v. Và thực sự ngay cả khi đó chúng tôi không gặp vấn đề gì. Trong các vòng lặp được mô tả (các kịch bản gây ra điều này cũng như đặt lại khu vực / lặp lại cũng như các thứ khác) quái vật, vật thể (vật phẩm) và những thứ khác đang được tạo ra, giải phóng, v.v. Các kết nối cũng được chấp nhận, bỏ phiếu và mọi thứ khác bạn mong đợi.