Những bước bạn đề cập nhiều khả năng được thực hiện trong các động cơ riêng biệt. Nó chỉ là các công cụ trò chơi đơn giản thường có chúng trong một lần. Trình tự của bạn
for each object
do physics
do game logic
draw
trở thành
call physics subsystem
call game logic subsystem
call drawing subsystem
Engine Engine đảm nhiệm các vị trí và kích cỡ.
Game Logic Engine đảm nhiệm việc diễn giải những gì Engine Engine đã thay đổi (anh ta có thể cản trở một số điểm ...), mục tiêu của các nhân vật và hành vi họ nên làm là gì , anh ta chạy các kịch bản theo lịch trình ( chức năng suy nghĩ này ).
Công cụ Vẽ vẽ ra những vật thể có thể nhìn thấy và anh ta biết những vật thể nào có thể nhìn thấy được vì loại động cơ Quake ở đây (xem phần Vẽ).
Lời khuyên của tôi cho Bạn là nghiên cứu cách mô phỏng được thực hiện thay vì các công cụ trò chơi. Có một nền văn hóa đại chúng liên quan đến phát triển trò chơi và công cụ trò chơi được thực hiện bằng các ngôn ngữ bắt buộc (vì truyền thống & tốc độ); Vì vậy, tôi đã giác ngộ hơn khi có được sách giáo khoa tốt (đúng hơn là lý thuyết) và THEN nhìn vào động cơ (thực hành) thay vì nhìn vào động cơ và giải đố hàng giờ họ đã làm như thế nào.
Vật lý
Toàn bộ khái niệm lặp lại tất cả các thực thể và làm {think, draw} có thể sẽ dẫn đến các vấn đề. Sẽ có xung đột và như vậy. Tôi tin rằng Valve có Havok và tôi đoán Havok chăm sóc vật lý đủ chính xác.
Suy nghĩ
Chức năng Think được chạy khi một thời gian trong trò chơi bằng với thời gian trong nextthink . Nó hoạt động theo cách này trong công cụ Quake và công cụ Quake là cơ sở cho công cụ Half Life. Nó KHÔNG được chạy mọi lúc.
Trong nội bộ, nó phải là một bước lặp đơn giản thông qua một danh sách các thực thể và kiểm tra xem thời gian đã trôi qua để gọi hàm think. Độ phức tạp thời gian sẽ là O (N), trong đó N là số lượng thực thể.
Nếu có một số lượng lớn các thực thể Bạn nên đo xem nó sẽ cải thiện bao nhiêu khung hình / giây. Lưu ý rằng vì luật của Amdahl nên nó có khả năng tăng tốc vô hình. Ý tôi là, Bạn chỉ cần lặp lại máng tất cả các mục và giảm và kiểm tra một số.
Tôi sẽ tăng tốc nó bằng cách sắp xếp các thực thể theo nextthink (tạo danh sách các con trỏ tới các thực thể và sắp xếp nó mỗi lần; không phải mảng các thực thể, bởi vì các thực thể có thể thay đổi nextthink của chúng bất cứ lúc nào, do đó, việc sắp xếp lại chúng trong mảng sẽ thay O (N) thay vì O (N) 1) trong danh sách).
Bạn cũng nên xem lịch trình O (1) trong Linux .
Vẽ tranh
Động cơ vẽ những gì có thể nhìn thấy từ khu vực mà camera. Cấp trò chơi được phân vùng thành một cây và một khu vực là lá của cây đó. Tôi sẽ không làm phiền bạn với các chi tiết về nó ... Vì vậy, nếu một thực thể được nhìn thấy, nó sẽ được đưa vào một tập hợp các thực thể có thể nhìn thấy và chúng được rút ra.
Họ lưu trữ những khu vực có khả năng nhìn thấy khu vực. Nó được gọi là "tập hợp tiềm năng có thể nhìn thấy", viết tắt là PVS . Có hình dung về PVS , viên nang màu xanh lá cây là người chơi và xung quanh anh ta được hiển thị những gì PVS của anh ta chứa.
<some commercial engine>
?