Game engine
Lịch sử

Trước khi có game engine, game thường được tạo ra từng phần nhỏ: ví dụ, một game cho hệ máy Atari 2600 phải được thiết kế từ mức cơ bản nhất để tối ưu việc hiển thị phần cứng (hay thiết kế hiển thị lõi - ngày nay người ta dùng từ nhân hệ điều hành). Các hệ máy khác thậm chí còn tiếp cận khó khăn hơn, nhưng kể cả khi việc hiển thị không phải là vấn đề thì việc bộ nhớ hạn chế thường hủy hoại các nỗ lực tạo ra một thiết kế dữ liệu lớn mà một engine yêu cầu. Kể cả trên các hệ thống có bộ nhớ lớn hơn, rất ít trong số chúng có thể sử dụng lại giữa các game. Các tiến bộ nhanh chóng của công nghệ phần cứng -khởi đầu thời kỳ thị trường hóa— có nghĩa là hầu hết các bộ mã nguồn tạo game trước đó sẽ bị quẳng đi sau đó, như các thế hệ game sau này sẽ sử dụng thiết kế khác hoàn toàn và đồng thời tận dụng cả các nguồn tài nguyên ngoài. Do đó phần lớn các game thiết kế trong thập kỷ 80 được tạo ra thông qua một bộ mã nguồn có quy tắc cố định với một lượng nhỏ cấp độ dữ liệu và dữ liệu hình ảnh.
Thế hệ đầu tiên của hãng phát triển engine đồ họa (kết xuất hình ảnh) thứ 3 (và tiền thân của game engine) đã thống trị bởi ba phần mềm ứng dụng: BRender từ Argonaut Software, Renderware từ Criterion Software Limited và Reality Lab của RenderMorphic. Reality Lab hoạt động nhanh nhất trong ba phần mềm này và là phần mềm đầu tiên được mua lại trong một động thái tích cực từ Microsoft. Đội ngũ phát triển của RenderMorphics: Servan Keondjian, Kate Seekings và Doug Rabson sau đó tham gia vào dự án của Microsoft và Reality Lab đổi tên thành Direct3D trước khi Keondjian và Rabson rời đi để lập một công ty viết phần mềm trung gian khác:Qube Software. Renderware về sau được EA mua lại nhưng lại bị bỏ mặc bởi "gã khổng lồ game" này.
Thuật ngữ "game engine" xuất hiện vào giữa những năm 90, đặc biệt là trong mối quan hệ với game 3D như game bắn súng góc nhìn người thứ nhất(FPS). Như các thương hiệu nổi tiếng của Id Sortware: Doom và Quake chẳng hạn, thay vì phải làm việc từ đầu, các nhà phát triển khác (nếu được cấp phép) sẽ có quyền truy nhập vào phần lõi (mã nguồn) của game và thiết kế các hình ảnh, nhân vật, vũ khí, và các màn chơi của riêng họ-gọi là game content(nội dung game) hay "game assets"(tài sản game).Sự tách biệt trong việc làm game - các quy định cụ thể và dữ liệu từ các khái niệm cơ bản như hệ thống vật lý và các thực thể trong game (như nhân vật phụ, đồ vật) có nghĩa rằng các nhóm phát triển có thể tăng lên và chuyên môn hóa dần.
Các game sau này, như Quake III Arena và sản phẩm năm 1998 của Epic Games: Unreal (không phải Unreal Tournament) được thiết kế với cách tiếp cận mới này, game engine và nội dung game được chia thành các phần riêng biệt để phát triển. Việc thực hiện cấp phép như cấp phép sử dụng công nghệ đã chứng minh là một nguồn doanh thu phụ trợ hữu dụng cho một số nhà phát triển, như thỏa thuận cấp phép cho một game engine cao cấp có thể nằm trong khoảng 10.000 tới 10 triệu USD, và số lượng các hãng phát triển được cấp phép sử dụng engine có thể lên tới hàng tá (như đã thấy ở Unreal Engine). Và điều cuối cùng, vì engine có thể tái sử dụng khiến việc phát triển game tiếp theo nhanh hơn và dễ dàng hơn, một thuận lợi to lớn trong ngành công nghiệp cạnh tranh này.
Game engine hiện đại là một trong những ứng dụng được viết ra (bằng các ngôn ngữ lập trình) phức tạp nhất, thường xuyên phải có rất nhiều tinh chỉnh trong hệ thống để đảm bảo kiểm soát chính xác trải nghiệm người dùng. Sự phát triển liên tục của game engine đã tạo ra một sự phân chia mạnh mẽ giữa dựng hình, kịch bản, thiết kế hình ảnh, và thiết kế cấp độ(các màn chơi...). Bây giờ thông thường nhất là: một đội ngũ phát triển game điển hình phải có số lượng họa sĩ gấp vài lần số lượng lập trình viên.
Các game bắn súng góc nhìn người thứ nhất thường chiếm ưu thế về việc sử dụng engine của các hãng thứ 3, nhưng chúng cũng được sử dụng để tạo các game thể loại khác. Ví dụ, game nhập vai: The Elder Scrolls III: Morrowind (của studio Bethesda Softworks) và game MMORPG: Dark Age of Camelot đều được làm trên engine Gamebryo, game MMORPG khác Lineage II đều dựa trên Unreal Engine. Game engines cũng thường được sử dụng để chuyển game sang các hệ máy khác nhau; ví dụ, engine RenderWare được sử dụng trong các thương hiệu như Grand Theft Auto và Burnout.
Phân luồng dữ liệu giờ đây hết sức quan trọng do các hệ thống đa nhân hiện đại và để tăng cường tính hiện thực trong game. Một luồng điển hình bao gồm dựng hình, tạo dòng, xử lý âm thanh, và xử lý vật lý(phát hiện va chạm). Game đua xe là điển hình đi đầu trong việc xử lý luồng với hệ thống vật lý chạy với một luồng tách biệt trước khi các hệ thống con khác hoạt động, phải tách riêng vì dựng hình và các nhiệm vụ xử lý liên quan chỉ cần tần số cập nhật khoảng 30–60 Hz trong khi xử lý vật lý lại cần một tần số cao hơn nhiều. Ví dụ, Need For Speed trên hệ máy PlayStation chạy với tần số vật lý cỡ 100 Hz so sánh với Forza Motorsport 2 (hệ máy Xbox 360) có tần số vật lý là 360 Hz.
Mặc dù thuật ngữ lần đầu được sử dụng vào những năm 90, nhưng vẫn có một vài hệ thống trước đó trong thập niên 80 cũng được coi như là game engine, như là 2 hệ thống AGI và SCI của Sierra, SCUMM của LucasArts và Freescape engine của Incentive Software. Không như hầu hết các game engine ngày nay, các engine này chưa bao giờ được sử dụng bởi bất kỳ một hãng thứ 3 nào(trừ trường hợp hê thống SCUMM đã được cấp phép và sử dụng bởi Humongous Entertainment).