TL; DR: Một động cơ chỉ là một tập hợp các thành phần có thể tái sử dụng.
Bức tường văn bản: Các trò chơi lưu trữ một đại diện của thế giới, ví dụ: bạn có một thực thể như một ngôi nhà, trong đó có một lưới xác định hình dạng của nó trông như thế nào và một vị trí.
Bây giờ, bạn có thể có nhiều hơn một thực thể. Giả sử chúng ta có một nhân vật do người chơi điều khiển và một số hộp. Khi người chơi muốn di chuyển, bạn sẽ di chuyển nhân vật và kiểm tra xem anh ta có va chạm với bất kỳ hộp nào không. Đó là nơi vật lý phát huy tác dụng. Tùy thuộc vào cách vật lý được mô hình hóa, nhân vật có thể chỉ cần đi qua các hộp, dừng lại trước các hộp hoặc đẩy các hộp.
Tâm trí bạn, điều này chỉ thay đổi trạng thái nội bộ của thế giới trò chơi.
Sau đó, sau khi tính toán chuyển động và vật lý, bạn sẽ hiển thị một khung, ví dụ: vẽ trạng thái hiện tại của thế giới trên màn hình.
OpenGL và DirectX là các API đồ họa, chúng chỉ được sử dụng để hiển thị nội dung (ví dụ: ký tự) lên màn hình.
Vì vậy, về cơ bản, bạn đang nói với OpenGL / DirectX 'Tôi muốn vẽ ký tự ở vị trí 1 và một hộp ở vị trí 2 và ...'.
Tất nhiên, đây là một sự đơn giản hóa quá mức.
Dù sao, vì chúng tôi không muốn thực hiện từng bước thủ tục đó, chúng tôi đặt công cụ đó vào các chức năng và các lớp. Vì vậy, chúng ta có thể có một lớp vật lý chứa tất cả các chức năng cần thiết cho mô phỏng vật lý hoặc một lớp đồ họa có giao diện với api đồ họa và vẽ các thực thể của chúng ta. Et voila, chúng tôi đã có một động cơ.