Nwfc Engine được triển khai dưới dạng module (mỗi module được bao bọc trong 1 DLL), gồm nhiều module liên kết lại với nhau. Tổng quát toàn bộ hệ thống Engine gồm 1 module chính và nhiều module vệ tinh. Toàn bộ Engine được thiết kế theo mô hình plug-in nên hoàn toàn có thểđược phát triển mở rộng và nâng cấp.
Hình 3-1 Mô hình module của Engine
¾ Module chính (nwfc.dll). Đảm nhận trách nhiệm chính của toàn bộ Engine. Các trách nhiệm chính:
Đây là module chính và cũng là module duy nhất giao tiếp với ứng dụng đầu cuối. Ứng dụng đầu cuối truy xuất các hàm trong module thông qua giao diện hàm (interface) mà module này cung cấp ra ngoài.
Cung cấp các khai báo giao diện hàm (interface) thống nhất cho các module vệ tinh, các module vệ tinh sẽ căn cứ vào các giao diện này mà triển khai cài đặt cho phù hợp.
Đảm bảo sự kết dính của các module vệ tinh với module chính hay giữa các module vệ tinh với nhau (gồm kết dính dữ liệu và kết dính hàm).
Trong Nwfc hệ thống truy xuất tập tin là duy nhất, do đó hệ thống này sẽđược chia xẻ cho toàn bộ các module vệ tinh để sử dụng. Đó là một trong các ví dụ về vai trò đảm bảo tính kết dính của module chính.
¾ Các module vệ tinh. Gồm nhiều module đảm nhận các chức năng khác nhau có thể hoàn toàn độc lập với nhau hay phụ thuộc lẫn nhau. Các module này có
nhiệm vụ phải hiện thực hóa các giao diện (interface) do module chính cung cấp. Ví dụ module đảm nhận chức năng dựng hình 3D bằng Direct3D, module đảm nhận chức năng truy xuất tập tin. Các module này hoàn toàn trong suốt (transparent) với ứng dụng đầu cuối, vì chúng chỉ được sử dụng nội bộ bởi module chính mà thôi. Giới thiệu sơ lược về các module sử dụng trong Engine.
Module renderer: là tập các module phụ thuộc vào thư viện đồ họa dựng hình 3D. Hiện nay trên thế giới chỉ có 2 thư viện đồ họa 3D phổ biến được nhiều người sử dụng là OpenGL và Direct3D (1 phần trong tập hợp thư viện multimedia DirectX của Microsoft), dù trong Engine chỉ được cài đặt sẵn module renderer cho thư viện Direct3D mà thôi (cụ thể là phiên bản 9.0c) nhưng ta hoàn toàn có thể thêm module dựng hình cho OpenGL bằng cách phát triển thêm module mới mà hoàn toàn không phải thông báo gì cho module chính hay compile lại code. Nhiệm vụ của module này phải hiện thực hóa các giao diện vềđồ họa 3D của module chính.
Module quản lý và truy xuất tập tin (file system): Đảm nhận vai trò thao tác, tìm kiếm trên tập tin cũng như đọc hay ghi tập tin, phụ thuộc vào thư viện tập tin như Standard FileIO, IOStream, hay WIN32 File System. Mọi module khác muốn truy xuất tập tin đều thông qua module này. Module này được tích hợp trong module chính mà không phải là module rời. Ta có thể tách rời module này khi ta muốn sử dụng các thư viện truy xuất tập tin khác nhau (thư viện tập tin được sử dụng trong Engine là Standard FileIO).
Các module khác như module vật lý, module ngôn ngữ kịch bản (Scripting) … sẽđược phát triển khi mở rộng Engine sau này.