Game Engine 1
Giới thiệu về Game Engine: Game Engine gồm một tập hợp các thành phần khác nhau làm nền tảng tạo nên một Game (trò chơi) trên máy tính.theo từ điển bách khoa toàn thư Wikipedia, game engine là một bộ công cụ phần mềm, tập hợp của nhiều yếu tố như: cơ chế dựng hình (2D hoặc 3D), hệ thống vật lý, AI, âm thanh... cho phép trò chơi chạy trên nhiều nền tảng khác nhau, với việc sử dụng được đơn giản hóa, tiết kiệm chi phí. Khái niệm về game engine được đưa ra vào những năm 1990s. Đặc biệt trong việc xây dựng các game 3D như game bắn súng góc nhìn thứ nhất Vào đầu thập niên 90 (và trước đó nữa), việc thực hiện trò chơi rất dễ dàng, mau chóng bởi yêu cầu về hình họa và lối chơi vô cùng giản đơn. Cũng chính vì quá đơn giản, nên phần lớn những nhà phát triển game thời bấy giờ chưa có được một khái niệm hay định hình về game engine. Tại sao phải phức tạp hóa một dự án game vốn chỉ cần vài người đảm trách cùng lúc nhiều vai trò khác nhau? Trò chơi nhập vai lừng danh một thuở của Interplay, Stonekeep, là điển hình của sự tư duy kiểu cũ này. Theo dự tính, game chỉ cần 9 tháng là hoàn thành, với ngân quỹ vào khoảng 50.000 USD và chỉ mất có... hai người để thực hiện. Tuy nhiên, không ai ngờ tới khi công nghệ máy tính đột ngột chuyển mình mạnh mẽ trong giai đoạn 1992-1995, thị hiếu thị trường cũng thay đổi theo và điều tất yếu là sự phức tạp trong việc phát triển trò chơi tăng nhanh khó đoán. Stonekeep, một nạn nhân của việc không phòng bị trước chỉ có độc mỗi engine đồ họa thô sơ, đã phải loay hoay nâng cấp dự án của mình: rót thêm 5 triệu USD kinh phí, nâng số nhân viên lên hơn 200 người và mất 5 năm mới ra mắt (vào năm 1995). Trong khi đó ở cùng thời điểm, id Software với khả năng nhìn thấu tương lai đã chuẩn bị trước cho mình một bộ công cụ tích hợp đủ tính năng, đáp ứng được nhu cầu thị trường lúc bấy giờ là Wolfenstein 3D engine, và lẽ tất yếu thành công không nằm quá tầm tay họ. Điều quan trọng nhất thời điểm đó là id Software đã đặt nền tảng cho khái niệm một game engine đúng nghĩa: tập hợp nhiều thành phần cần thiết cho việc xây dựng một trò chơi, giảm tải chi phí, thời gian và nhân lực phát sinh. Sau Wolfenstein 3D (1992), một kỷ nguyên FPS ra mắt, thúc đẩy thêm nhiều cải tiến vượt trội đối với game engine và bắt đầu lấn sân sang các thể loại game 2
khác. Giờ đây, tuy có nhiều kiểu game engine khác nhau, nhưng tựu trung khi nhắc đến cụm từ này, người ta vẫn xem thể loại FPS là một biểu tượng đặc trưng, thể hiện rõ nét nhất hai chữ: game engine. Các thành phần cơ bản bao gồm: Hệ thống toán học (Math system). Hệ thống xử lý tập tin dữ liệu (File system). Hệ thống hiển thị đồ hoạ (Render system). Hệ thống quản lý hoạt họa (Animation system). Hệ thống xử lý nhập và xuất (Input and Output system). Hệ thống xử lý các tương tác vật lý (Physics system). Hệ thống xử lý trí tuệ nhân tạo (Artificial intelligence system). Hệ thống xử lý mạng (Network system). Hệ thống tạo hiệu ứng khác như khói lửa, âm thanh, (Effect system). Trong các Game khác nhau thì vai trò của các thành phần trên sẽ khác nhau. Thông thường xây dựng Game ta chỉ cần một số trong các thành phần trên mà thôi. Việc xây dựng và quản lý tất cả các thành phần trên của một Game Engine đòi hỏi một lượng lớn thời gian cũng như công sức và đôi khi đòi hỏi nhiều kĩ thuật và kiến thức của nhiều lĩnh vực khác nhau. Phân loại Game Engine Game Engine chính là thành phần cốt lõi làm nền móng xây dựng nên Game. Sự khác biệt giữa Game Engine và bản thân Game tương tự như sự khác biệt giữa động cơ và chiếc xe. Chúng ta có thể đem động cơ ra khỏi xe, chỉnh sửa và dùng lại. Một Game Engine có thể được xem như là một phần không phụ thuộc vào Game, nó cũng có thể được thay đổi độc lập với Game mà không làm thay đổi cấu trúc logic của Game. Isometric Engine Game Engine dùng trong các trò chơi 2D Các Game Engine này thường được sử dụng trong các Game chiến lược (strategy) và trong các thể loại Game nhập vai Vd: Baldur s Gate 2, Diablo 2 và Warlords Battle Cry 2 3D FPS (First Person Shooter) Engine Game Engine dùng phổ biến trong các 3D Game hiện nay 3
Game Engine này là nó hỗ trợ nhiều chức năng như tô bóng điểm (pixel shader), quản lý diễn hoạt (animation), mô phỏng vật lý, mô phỏng chuyển động của các hạt nhỏ (như bụi, lửa, khói), mô phỏng chất lỏng, áo quần, và các hiệu ứng khác Vd: Doom, Quake, Half Life, Counter Strike, Unreal, Duke Nuke m, MMOG (Massive Multiplayer Online Game) Engine Game Engine này dựa trên việc lập trình trên mạng và quản lý dữ liệu thông qua mạng, xử lý cho một số lượng lớn người chơi trong cùng lúc Vd: Ever Quest, Asheron s Call và Anarchy Online Một số GameEngine Unreal 3 Scripting (Lập trình mã) Unreal 3 sử dụng bộ mã riêng của mình để lập trình có tên là UnrealScript. Bộ mã này được xem là gần gũi do được viết trên ngôn ngữ C++, dễ dàng tương thích với các bộ mã nguồn khác nhau. Có thể tương tác với trình UnrealEd có sẵn để tạo nên lối chơi, thiết kế màn chơi của game một cách dễ dàng. Ngoài ra, công cụ Visual AI Scripting Tool còn giúp cho lập trình viên rất nhiều trong việc thiết kế nhiệm vụ, các sự kiện đặc biệt trong game và trí thông minh của máy... Physics (Các hiệu ứng vật lý) Engine hỗ trợ 4 cơ chế vật lý là Basic Physics (hiệu ứng vật lý cơ bản), Collision Detection (Phụ trách mảng va chạm, cháy nổ sẽ xảy ra trong game), Rigid Body (Vật lý từng phần, phụ trách các hiệu ứng như rag-doll, tháo rời từng mảnh...-) và Vehicle Physics (Tương tác giữa nhân vật và các phương tiện cơ giới khác, A.I...) Lighting (Hiệu ứng ánh sáng) Hỗ trợ các cơ chế thời thượng nhất hiện nay như: Per-vertex, Per-pixel, Volumetric, Lightmapping, Gloss maps và Anisotropic... Shadows (Hiệu ứng đổ bóng) 4
Hỗ trợ ba cơ chế Shadow Mapping, Projected Planar và Shadow Volume với chất lượng ở mức cao nhất. Người lập trình có thể sử dụng những bộ công cụ riêng biệt của các hãng thứ ba để kết hợp với những hiệu ứng có sẵn, tạo ra những hiệu ứng đặc sắc khác. Texturing (Vân bề mặt) Hỗ trợ hầu hết các cơ chế phủ vân bề mặt tiên tiến như Basic, Multi-texturing, Bumpmapping (tạo hiệu ứng bề mặt sần sùi), Mipmapping, Volumetric, Projected, Procedural. Shaders (Tô bóng) Hỗ trợ các cơ chế như Vertex, Pixel, High Level với độ tích hợp cao. Scene Management (Dựng và quản lý cảnh) Dựng cảnh, môi trường ngoài trời hay trong nhà, được hỗ trợ tốt với đầy đủ các hiệu ứng ánh sáng, đổ bóng nhờ những bộ công cụ General, BSP, Portals và LOD. Animation (Chuyển động vật thể) Với các cơ chế Inverse Kinematics, Keyframe Animation, Skeletal Animation, Facial Animation, Animation Blending. Đặc biệt, cơ chế dựng Skeletal Animation (chuyển động khung xương) được hỗ trợ tốt với bốn khớp xương được thể hiện trong một vertex (đỉnh). Ngoài ra, engine còn tương thích với nhiều chương trình dựng hình nổi tiếng như 3D Studio Max, Maya... Meshes (Mô hình lưới) Để dựng được một mô hình, bạn phải bắt đầu từ việc vẽ các điểm ảnh, sau đó nối các điểm ảnh này với nhau để tạo thành những mắt lưới. Càng nhiều mắt lưới thì mô hình càng chi tiết. Unreal 3 hỗ trợ các hiệu ứng như Mesh Loading, Skinning, Progressive, Tessellation, Deformation. 5
Các mô hình thường được dựng trên hai lớp lưới: Đó là realtime mesh (mô hình lưới thực), với hàng ngàn đa giác ảnh trên đó và detail mesh (mô hình lưới chi tiết) với hàng triệu đa giác. Các hiệu ứng đặc biệt Tập trung đủ các hiệu ứng thời thượng hiện nay như Environment Mapping, Lens Flares, Billboarding, Particle System, Depth of Field (tạo hiệu ứng chiều sâu tầm nhìn), Motion Blur (hiệu ứng nhòe hình khi vật chuyển động), Sky, Water, Fire, Explosion, Decals (vết đạn dính trên vật thể), Fog, Weather, Mirror (gương). Terrain (Địa hình) Người sử dụng có thể dựng địa hình với nhiều lớp (layer) riêng biệt được xếp lên nhau, dễ dàng tạo nên những khung cảnh, môi trường rộng lớn với độ chi tiết cao. Ngoài ra, engine còn cho phép thêm các hiệu ứng thời tiết, mùa màng vào địa hình như: cỏ cây, hoa lá dính trên đá, cánh đồng tuyết trắng xóa... Hệ thống mạng Hỗ trợ trên nhiều hệ máy, nhiều hệ điều hành với số lượng người chơi ở mức 64. Dễ dàng cho người dùng chỉnh sửa và thêm thắt nhiều tiện ích khác nhau cho mục chơi mạng của game. Âm thanh Âm thanh nổi, vòm, 3D chất lượng cao, có sẵn bộ công cụ để biên tập và chỉnh sửa. Trí thông minh nhân tạo Với bốn cơ chế hỗ trợ là Pathfinding (khả năng nhận biết đường đi), Decision Making (xử lý tình huống), Finite State Machines, Scripted (tự chỉnh sửa và lập trình cho A.I). Rendering (Kết xuất đồ họa dựng hình) 6
Hỗ trợ dựng hình High Dynamic Range trên cơ chế 64 bit với độ phân giải cao, hỗ trợ luôn cả các hiệu ứng post processing như: light blooms, lenticular halos, hay depth-of-field. Dễ biên tập theo ý thích của người sử dụng. 7