Lập trình 3d so sánh unity và native năm 2024

Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại. Unity hỗ trợ đồ họa 2D và 3D, các chức năng được viết chủ yếu qua ngôn ngữ C#. Tài liệu dưới dây sẽ hướng dẫn bạn làm game 2D bằng Unity, hãy truy cập tài liệu để tìm hiểu thêm nhé

Lập trình Unity (bao gồm 2D và 3D) là nền tảng lập trình dựa trên 3 ngôn ngữ chính C#, UnityScript và Boo. Trong số đó, C# lại là ngôn ngữ được các Unity Developer sử dụng phổ biến nhất.

Phần mềm Unity cung cấp cho người dùng những tính năng lập trình vượt trội gồm:

- Tạo giao diện UI cho game, tạo drop bar hay textbox,…

- Hiển thị mô hình dạng 2D, 3D – hệ thống vật lý 2D, 3D.

- Hỗ trợ tạo ra các tựa game đa người chơi cùng lúc (networking).

- Trang bị các nền tảng công nghệ đặc biệt mới như công nghệ thực tế tăng cường – AR (Augmented reality) hay công nghệ thực tế ảo – VR (Virtual reality).

- Hỗ trợ bot AI – Trí tuệ nhân tạo trong màn hình game. Đồng thời, còn hỗ trợ package để tạo ra các bot trong game.

- Hỗ trợ hiển thị các font chữ đặc biệt.

Lập trình 3d so sánh unity và native năm 2024

Tài liệu này sẽ giúp các bạn nắm rõ được Unity 2D, và hướng dẫn bạn làm game 2D bằng Unity. Tài liệu giới thiệu về Thế giới 2D của Unity, trình bày những điều cơ bản để thiết lập Unity, chạy các trò chơi 2D và thiết lập một trò chơi đơn giản, hoạt hình, dựa trên sprite, nhân vật người chơi.

Để tải về tài liệu miễn phí này và tận hưởng nguồn tài nguyên quý báu này, bạn có thể truy cập trang web Devwork.vn và khám phá thêm nhiều tài liệu và tài nguyên hữu ích khác cho việc phát triển phần mềm.

Sau 1 thời gian tìm hiểu và có code thử vài game di động, mình tổng hợp 1 số engine game thông dụng

1. Unity 3D

– Website Unity3d

– 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ền thiết kế character tưng ứng thì mới dùng được (tức là dùng Maya có định dạng *.mb, *.ma thì muốn dùng được phải cài Maya)

Ngoài ra khi bạn design được một game thì bạn có thể xuất được ra một file.exe và có thể chạy và chơi được trên PC khá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 trongkhi design, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử các modulGame.

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ì mất phí.

Khi tải Unity về các bạn cài đặt bình thường, đến khi kết thúc cài đặt nền các bạn chọn phiên bản Pro thì cần phải mua, còn nếu là người dùng free thì các bạn chọn kích hoạt qua web, chỉ cần có kết nối mạng internet, sau đó chọn cài đặt thủ công và nhập mail, chọn free là bạn có thể sử dụng một bản Unity free.

– Tham khảo chi tiết hơn tại đây

2. Cocos2d-x – Website : http://www.cocos2d-x.org/ – Cocos2Dx là 1 Engine hỗ trợ lập trình Game đa nền tảng : Mobile ( IOS, ANDROID, Blackberry, TIZEN, WP) Window, MacOS, HTML5,.. đại loại là đủ cả. – Engine này do Các bạn lập trình viên Trung Quốc ( hay Korean? ) phát triển. Mình thật sự chưa thấy nói về nguồn gốc ở đâu.. Nhưng ko sao, có tiếng Anh để có thể đọc, và cũng không quan trong bởi ngôn ngữ vì chúng ta có thể hiểu được qua bộ Code của nó. – Ngôn ngữ để Code: Cocos2Dx hỗ trợ chủ yếu 3 ngôn ngữ: C++, Lua, Javascript. – Phiên bản mới nhất là Cocos2Dx – 3 RC0; (RC1 vừa ra lúc mình viết bài này) – Trang web Việt Nam có thể tham khảo: http://cocos2d-x.vn/ – Mã nguồn mở. – Hỗ trợ Window, Mac OS IDE.( môi trường lập trình). – Đã phát triển nhiều Game nằm TOP của Appstore, CHPlay (tìm lại đã). Đại loại là 1 Engine khá mạnh – Có 1 phiên bản khác là Cocos2d-iphone – dành riêng để phát triển Game cho Iphone ( dùng ngôn ngữ lập trình Object – C nhé) nhưng mà học cũng ko khó lắm đâu. Và 1 bản Cocos2d-JS, dành để phát triển ứng dụng nền Web, dùng ngôn ngữ Java Scrípt. Nhưng mình nghĩ dùng bản Cocos2d -x sẽ tốt hơn vì ĐA NỀN TẢNG cơ mà ( viết code 1 lần, chạy được cho nhiều hệ thống khác nhau ) chả sướng hơn à. Mình đoán trong tương lai sẽ hợp nhất 3 bản vào làm 1 cho mà xem. – Có 1 bộ CocosStudio đi kèm để hỗ trợ cho việc thiết kế giao diện, hiệu ứng chuyển động…

– Nguồn tham khảo chi tiết tại đây

3. Corona SDK – Website : http://coronalabs.com/ – Games, eBooks, utilities, business apps… Corona là lựa chọn số một cho các ứng dụng 2D chất lượng cao. Với Corona có 3 lựa chọn: – Corona SDK Starter: Xây dựng và xuất bản các ứng dụng miễn phí. – Corona SDK PRO: thêm các tính năng tiên tiến và được xây dựng hàng ngày. – Corona Enterprise: tích hợp thêm các thư viện địa phương, hỗ trợ linh hoạt tối đa. Tính năng: + Phát triển ứng dụng nhanh hơn 10 lần: Corona làm tăng đáng kể năng suất của bạn. Nhờ các API, các nhiệm vụ như đối tượng hoạt hình, giao diện người dùng, thêm tính chất vật lý mà chỉ mất vài dòng mã.

+ Qua các nền tảng một cách dễ dàng. Viết một lần và có thể xây dựng cho Android, iOS, Kindle Fire, và Nook. Corona làm việc với các thiết bị kích cỡ khác nhau và độ phân giải khác nhau một cách dễ dàng. + Tiêu chuẩn công nghiệp Corona xây dựng dựa trên tiêu chuẩn công nghiệp như OpenGL, OpenAL, Google Maps, Box2D, Facebook, Game Center. + Xuất bản và kiếm tiền + Download Corona SDK https://developer.coronalabs.com/downloads/corona-sdk

4. Game Salad

– Website : http://gamesalad.com/

– GameSalad là một nền tảng để phát triển trò chơi, hoàn toàn dựa trên giao diện thị giác và không cần kĩ năng lập trình. Chủ yếu nhắm tới đối tượng khách hàng là những thành phần có tiềm năng phát triển trò chơi nhưng lại thiếu đi kĩ năng lập trình. Ban đầu, chỉ phát triển trên hệ điều hành iOS, và sau đó thì mở rộng sang Android và HTML5. Hiện công ty có trên 300.000 nhà phát triển, tạo ra trên 60.000 trò chơi và khoảng 10.000 là dành cho iOS. Năm ngoái, khoảng 15% số trò chơi được bày bán trên iOS App Store được tạo ra từ GameSalad, khoảng 60 đã leo lên top 100 tại App Store Mỹ, 10 trong số đó leo lên top 20.

5. Libgdx

– Chúng ta cũng không thể quên libgdx 🙂

– Website : http://libgdx.badlogicgames.com/index.html

– LibGDX là một framework được sử dụng để phát triển các ứng dụng game và đồ họa cho Desktop, Android, iOS, HTML5.

– Một số ưu điểm của Libgdx như sau:

+) Đa nền tảng: chúng ta chỉ cần viết code 1 lần nhưng có thể chạy trên được nhiều nền tảng khác nhau. Một ứng dụng của tính năng này đó là phát triển các ứng dụng cho Android. Để phát triển một ứng dụng cho Android, khi chạy thử ứng dụng, chúng ta cần chạy ứng dụng trên Emulator hoặc trên thiết bị thật. Việc này rất mất thời gian do Emulator chạy rất chậm và quá trình cài đặt cũng như chạy ứng dụng trên thiết bị thật cũng không khá hơn. Với LibGDX, chúng ta có thể chạy ứng dụng trên PC, sau đó chỉ cần với vài dòng code, chúng ta có thể chạy ứng dụng này trên Android với hiệu năng tương đương. Điều này giúp chúng ta kiểm thử và tìm lỗi ứng dụng nhanh hơn và hiệu quả hơn.

+) Hiệu năng: Hiệu năng của LibGDX thực sự rất ấn tượng do LibGDX sử dụng cả Java và mã nguồn C để tạo nên ứng dụng.

+) Cộng đồng: cộng đồng sử dụng LibGDX rất tuyệt vời với số lượng người dùng lớn. Các lập trình viên luôn đóng góp và giúp đỡ cho cộng đồng. Việc sửa lỗi cũng được cập nhật rất thường xuyên.

+) Tài liệu và ví dụ: rất đầy đủ với Javadoc. LibGDX cũng cung cấp rất nhiều các ví dụ và demo với đầy đủ các chức năng từ đơn giản đến phức tạp.

+) Mã nguồn: mã nguồn mở với thiết kế rất rõ ràng và phù hợp với việc phát triển ứng dụng cho di động. LibGDX cho phép người lập trình khả năng sử dụng các API từ các lớp thấp đến cao, tùy theo yêu cầu của người sử dụng.

+) Tính năng: LibGDX có rất nhiều tính năng như tạo hình, xử lý đồ họa 2D, 3D, xử lý âm thanh, quản lý các thiết bị vào ra, quản lý file hệ thống. Cùng với đó là các công cụ đi kèm rất hữu ích như Texture Packer và Particle Editor.

– Nguồn tham khảo :

+ http://android.vn/threads/huong-dan-setup-project-libgdx-bang-tool.23337/

+ http://vietandroid.com/threads/lap-trinh-game-voi-libgdx.4742/

6. Andengine

– Đây là engineer phục vụ cho android

– Website : http://www.andengine.org/

– Andengine là một 2D Game Engine cho phép các lập trình viên có kinh nghiệm hoặc chưa có kinh nghiệm đều có khả năng phát triển các ứng dụng Android một cách dẽ dàng. Andengine bao gồm đầy đủ các thuộc tính quan trọng nhất của OpenGL giúp cho việc dựng hình và tạo vật thể, đồng thời cung cấp khả năng quản lý các thiết bị đầu vào (các sensor, màn hình cảm ứng) và âm thanh

– Một số đánh giá về Andengine:

+) Giá thành: Hoàn toàn free.

+) Hiệu năng: Tương đối tốt, tuy nhiên chậm hơn so với các Engine khác (như LibGDX ở phần trên)

+) Cộng đồng: tương đối tốt, số lượng người sử dụng khá nhiều.

+) Tài liệu và ví dụ: không có tài liệu cụ thể. Đây là một trong những khó khăn khi chúng ta làm quen với Andengine. Tuy nhiên có các ví dụ và các bài viết hướng dẫn của các lập trình viên (có thể tìm được qua Internet). Do đó nếu bạn muốn sử dụng Andengine hãy chuẩn bị tam lý là sẽ tìm hiểu bằng các ví dụ là chủ yếu.

+) Mã nguồn mở , thiết kế sử dụng nhiều phương thức abstract và kế thừa. Hướng đối tượng tốt, tuy nhiên chưa thật sự tốt với nền tảng di động Android.

+) Tính năng: Có đầy đủ hầu hết các tính năng cơ bản để xây dựng một ứng dụng game. Tuy nhiên vẫn chưa có nhiều tính năng giống như LibGDX.

Điểm cộng dành cho Andengine chính là ở việc dễ sử dụng và dễ học hơn các Engine khác, đồng thời các tính năng cơ bản cũng khá đầy đủ cho việc xây dựng một game 2D đơn giản. Hãy nhớ, Andengine chỉ thích hợp cho Game 2D. Nếu yêu cầu về hiệu năng của bạn thật sự cao và game co nhiều hình ảnh phức tạp, cũng như hình ảnh vật thể là 3D, hãy tìm một Engine khác.

7. Sprite Kit

– Công cụ giành cho IOS 7

– Ưu điểm: + Đây là một thư viện được xây dựng ngay trong IOS nên không cần phải tải thêm bất kì một thư viện số (Extra Libray) hay một mã nguồn nào bên ngoài nữa. Ngoài ra, nó được viết và phát triển bởi chính Apple nên chúng ta có thể biết được rằng nó sẽ được Apple hỗ trợ và cập nhật thường xuyên sớm nhất có thể. + Có sẵn các công cụ để cắt và thể hiện hiệu ứng ngay trong Xcode (particle) + Giúp bạn lập trình và quản lý game một cách dễ dàng do cấu trúc của Sprite Kit được thiết kế để làm chuyện đó. Hỗ trợ các dạng video và hiệu ứng hình ảnh đơn giản nhưng chắc chắn sẽ được cải thiện trong tương lai

– Nhược điểm: + Một khi sử dụng Sprite Kit nghĩa là cuộc sống của bạn sẽ gắn liền với hệ sinh thái của Apple. Nếu bạn muốn đưa game của bạn lên các hệ điều hành khác như Android thì nó gần như là viết lại từ đầu. + Sprite Kit đang ở thời kì đầu của nó, việc nó thành công hay thất bại là thứ hoàn toàn không chắc chắn. Thêm vào đó, Sprite Kit chưa hỗ trợ cho bạn tham gia vào việc tuỳ chỉnh các mã OpenGL nên đối với những lập trình viên có thâm niên cao thường không thích thú lắm. + Những thứ bạn đã viết được trên các engine khác như Corona, Cocos2D không phù hợp với Sprite Kit điều đó có nghĩa là bạn đang bắt đầu từ vạch xuất phát cùng với tất cả mọi người.

– Link Tham khảo :

+ http://www.sprite-kit.com/

+ https://www.codefellows.org/blogs/simple-sprite-kit-game-tutorial-part1

– Bạn có thể xem chi tiết tại đây

8. Gideros

– Website : http://giderosmobile.com/

– Gideros Studio là một game engine đa nền tảng dùng để phát triển game trên mobile. Hiện nay gideros đang hỗ trợ ios và android. Gideros sử dụng Lua làm ngôn ngữ chính để phát triển (giống như corona SDK..) đây là ngôn ngữ rất đơn giản, dể học và dể sử dụng, bạn chỉ cần viết code cho game bằng Lua và sau đó có thể build cho cả ios và android mà không có quá nhiều sự thay đổi. Gideros cung cấp cho chúng ta một bộ API đồ sộ và khá đầy đủ (đồ họa, âm thanh, vật lý, cảm ứng, network…) để có thể giúp cho các bạn phát triển một cách nhanh chóng bằng cách sử dụng các API có sẳn. Ngoàn ra gideros cũng hỗ trợ việt viết thêm plugin để chúng ta có thể phát triển thêm các chức năng mở rộng khác mà gideros không hỗ trợ sẳn

– Link tham khảo:

+ http://vietgamedev.net/blog/218/l%C3%A0m-game-mobile-v%E1%BB%9Bi-gideros-studio-part-2/

*) Trên đây là 1 số engineer phục vụ làm game mà mình biết , rất mong sự đóng góp phản hồi từ các bạn để mình bổ xung thêm, xin chân thành cảm ơn !