1. Sơ lƣợc về 3D Game Engine
a) Khái niệm:
Một Game Engine là một phần mềm đƣợc viết cho mục đích thiết kế và phát triển video Game. Chức năng cốt lõi của Game Engine phần lớn nằm trong công cụ dựng hình (kết xuất đồ họa) cho các hình ảnh 2 chiều (2D) hay 3 chiều (3D), công cụ vật lý (hay công cụ tính toán và phát hiện va chạm), âm thanh, mã nguồn, chuyển động(Animation), trí tuệ nhân tạo, phân luồng, tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị, và kết nối mạng. Quá trình phát triển Game tiết kiệm đƣợc rất nhiều thời gian và kinh phí vào việc tái sử dụng và tái thích ứng một Engine để tạo nhiều Game khác nhau.
Game engine cung cấp một bộ các công cụ phát triển trực quan và có thể tái sử dụng từng thành phần trong đó. Nói chung các bộ công cụ này cung cấp một môi trƣờng phát triển tích hợp đƣợc đơn giản hóa. Phát triển ứng dụng nhanh (rapid application development) cho game theo cách lập trình hƣớng đối tƣợng. Những game engine này đôi khi còn đƣợc gọi là các phần mềm trung gian cho game (game middleware), nhƣ ý nghĩa của thật ngữ, chúng cung cấp một nền tảng phần mềm linh hoạt và dễ dàng sử dụng lại với mọi chức năng cốt lõi cần thiết ngay trong nó để có thể phát triển một ứng dụng game đồng thời giảm giá thành, độ phức tạp, và kịp thời hạn phát hành - tất cả các yếu tố quan trọng trong ngành công nghiệp game đầy cạnh tranh.
b) So sánh Unity và các Game Engine khác:
Chúng ta thử hình dung một dây chuyền sản xuất máy tính, chúng ta sẽ hình dung đƣợc một 3D Game Engine theo cách tƣơng tự. 3D Game Engine giúp các chúng ta tạo ra nhân vật, xe cộ, nhà cửa, các yếu tố môi trƣờng (nƣớc, bầu trời, gió, trọng lực…) và liên kết chúng lại với nhau theo ý muốn một cách dễ dàng hơn. Vấn đề là chúng ta chọn Engine nào hay chọn nồi cơm nào tốt nhất cho mình?
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 6
Hiện nay có các engine nhƣ: Cry engine, Unreal engine, Source engine, Id Tech engine, Unity engine và những cái tên khác nhƣ RenderWare engine, Game Bryo engine. Các engine mã nguồn mở bao gồm: Orge engine, Panda3D engine, Irrlicht engine…
Vì sao chọn Unity Engine?
Nếu chúng ta có tiền, có nhiều kinh nghiệm, có một nhóm thật sự giỏi, lúc đó chúng ta mới nên nghĩ đến Unreal engine hay Cry engine… Nếu chúng ta muốn xài mã nguồn mở cho tiết kiệm thì chúng ta phải bù lại nhiều thời gian và sức lực hơn để tìm hiểu Orge engine, hay Panda engine,… Lựa chọn sáng giá nhất cho các tân binh trong lĩnh vực 3D, có ít kinh nghiệm, ít tiền, nhƣng không muốn phải bỏ quá nhiều công sức tìm hiểu lại những gì ngƣời ta đã làm là Unity engine.
Unity3D là một engine khá mạnh và tƣơng đối dễ sử dụng, mặc dù sinh sau đẻ muộn nhƣng cũng đã chứng tỏ đƣợc khả năng và bản lĩnh của mình qua rất nhiều tựa game nổi tiếng đã đƣợc phát hành trên nhiều hệ máy (Samurai II: Vengeance, BeGone, Cordy, Max and the Magic Marker, Muffin Knight, Shadow Era, Zombie Wonderland, Zombieville USA,...).
Về mặt đồ họa, Unity không so sánh đƣợc với Cry engine nhƣng nhƣ những gì chúng ta thấy trong hình bên cũng quá đủ để thuyết phục cho những mục tiêu sắp tới của chúng ta. Unity không đòi hỏi máy cấu hình cao, thêm nữa Unity đặc biệt chú ý đến sự tiện dụng. Việc làm game, làm phim 3D sử dụng Unity engine so với các engine còn lại dễ dàng hơn rất nhiều vì phƣơng châm của Unity engine là engine dành cho các ngƣời dùng không chuyên. Chúng ta có thể kéo thả, kế thừa, viết scripts, tổ chức các thành phần, import – export các tài nguyên (model, texture, mesh, …) đóng gói các đối tƣợng hoàn chỉnh và chia sẻ nó một cách dễ dàng với Unity engine.
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 7
2. Sơ lƣợc về Unity 3D
Hình II.1: Logo của Unity Engine.
Nhà phát triển: Unity Technologies
Phiên bản mới nhất: 4.6 / 26/11/2014.
Ngôn ngữ sử dụng: C#, JavaScript, Boo.
Phát triển Game cho các hệ điều hành: Windows, Mac OS X (tạo và đóng gói), Wii, iPhone/iPad, Xbox 360, Android, PS3 (chỉ đóng gói, cần giấy phép bổ sung cho từng nền tảng).
Giấy phép: Độc quyền.
Website: www.unity3d.com
Unity là một 3D Game Engine, là một công cụ thiết kế Game đa nền bởi ngoài web, Engine này còn có khả năng hỗ trợ gần nhƣ toàn bộ các nền tảng hiện có nhƣ Playstation 3, Xbox 360, iOS, Android, Windows…
Các Engine làm game phổ biến hiện nay có thể kể đến gồm CryEngine, Frostbite 3, Unreal Engine… Chất lƣợng game làm từ các Engine này thì khỏi phải bàn cãi. Dĩ nhiên, giá thành của chúng không hề rẻ. Ngoài ra, những Engine này đều đòi hỏi cấu hình máy tính cao ngất ngƣỡng. Vì thế, Unity 3D hiển nhiên trở thành Engine đƣợc ƣa chuộng nhất hiện nay.
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 8
Unity đƣợc sự hỗ trợ của Just-In-Time Compilation (JIT), sử dụng thƣ viện mã nguồn mở C++ Mono. Bằng việc sử dụng JIT, những Engine nhƣ Unity có thể tận dụng lợi thế của tốc độ biên dịch. Những đoạn mã (code) do chúng ta viết sẽ đƣợc Unity biên dịch ra Mono trƣớc khi nó đƣợc thực thi. Điều này rất quan trọng cho Game để thực thi code vào những thời điểm cần thiết trong suốt thời gian chạy (Runtime). Ngoài thƣ viện Mono, Unity cũng tận dụng chức năng của những thƣ viện phần mềm khác vào chức năng của nó, nhƣ Engine mô phỏng vật lý PhysicX của Nvidia, OpenGL và DirectX cho kết xuất hình ảnh 3D, OpenAL cho âm thanh. Tất cả các thƣ viện này đƣợc xây dựng thành những tính năng tự động hoặc công cụ trực quan vào Unity, vì thế chúng ta không cần lo lắng về việc phải học thế nào để sử dụng chúng một cách riêng lẽ.
Unity có một cộng đồng ngƣời dùng rất lớn luôn chia sẻ những Plugin, công cụ của họ dƣới hình thức gói phần mềm bổ sung.
Có thể sản xuất các trò chơi theo tiêu chuẩn chuyên nghiệp, xuất bản 3D cho cả máy tính và các thiết bị di động cũng nhƣ sở hữu riêng một Web Player của riêng mình, Unity là một trong những Game Engine có tốc độ phát triển nhanh nhất. Unity cũng có phiên bản phát triển Game cho hệ máy Wii của Nintendo và Iphone của Apple, có nghĩa là một khi chúng ta làm chủ đƣợc những vấn đề cơ bản, không chỉ phát triển Game cho máy tính cá nhân mà chúng ta còn có thể phát triển Game cho các hệ máy console và thiết bị di động.
Unity3D là phần mềm làm games trực tiếp theo thời gian thực, mà không cần render, cho phép ngƣời design game có thể thiết kế InterfaceGraphic, map hay character … từ một phần mềm thứ 2 (thƣờng là các phần mềm thiết kế đồ họa chuyên nghiệp nhƣ 3Dsmax, Blender, Maya, XSL, Cinema4D, Cheetah3D, Modo, Autodesk FBX, LightWave…) sau đó chỉ việc import nó vào trong Unity với định dạng của tập tin là *.FBX hay *.dae, *.3DS, *.dxf và *.obj, nhƣng định dạng *.FBX hay đƣợc dùng vì đƣợc tối ƣu hóa hơn, còn dùng các định dạng khác ngoài FBX thì phải cài phần mềm thiết kế character tƣng ứng thì mới dùng đƣợc.
Một thế mạnh nữa của Unity là bạn có thể chạy demo game của bạn ngay trong khi design, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử các module Game.
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 9
Unity3D có 2 loại phiên bản, một cho ngƣời dùng free, và một phiên bản pro thì đóng phí.
Unity 3D không phải là Engine có đồ họa đỉnh nhất hiện nay nhƣng chất lƣợng hình ảnh, độ mƣợt mà, tiện lợi hỗ trợ đa nền tảng… chắc chắn giúp những sản phẩm sử dụng Engine này sẽ nhận đƣợc nhiều sự ủng hộ.