O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Tower defense game with Unity

1.290 visualizações

Publicada em

Tower defense game with Unity

Publicada em: Software
  • Login to see the comments

Tower defense game with Unity

  1. 1. Họ Tên SV:Hoàng Tất Đạt MSSV:09520497 GVHD: Ths Nguyễn Duy Khánh
  2. 2. I. GIỚI THIỆU VỀ UNITY3D Game Engine Unity được tạo ra bởi Unity Technologies năm 2005 với tiêu chí tối ưu hóa việc sản xuất game cho những nhà phát triển nhỏ với giá thành hợp lý. Có phiên bản miễn phí cho cá nhân và cả doanh nghiệp (có thu nhập < 100.000$) dùng.
  3. 3. I. GIỚI THIỆU VỀ UNITY3D Các tính năng nổi bật của Unity: Unity mạnh ở khả năng cross-platform - phát triển game cho nhiều nền tảng (Desktop như Windows, Mac, Linux, Hệ máy console: Xbox360, Nintendo Wii, PS3, Mobile: Android, IOS ... Web: Unity Web Player và gần đây là WebGL) với chung 1 source code. Unity tích hợp nhiều công cụ, công nghệ bao gồm Graphic Rendering( DirectX, OpenGL, ...), Physic( NVIDIA PhysX), audio( OpenAL) giúp cho quá trình phát triển game thuận lợi và đơn giản hơn nhờ có sự gắn kết liền mạch giữa nhiều mảng. Unity tương thích với nhiều phần mềm thiết kế chuyên biệt để tạo model, mesh, animation như: Blender, 3D Max, Photoshop, ...
  4. 4. I. GIỚI THIỆU VỀ UNITY3D Các tính năng nổi bật của Unity (tt): Được viết trên nền C++ nhưng người dùng Unity sẽ phát triển dựa trên 3 ngôn ngữ C#, Javascript hoặc Boo với hệ thống API đồ sộ. Unity có các công cụ, tính năng đầy trục quan, thân thiện, hỗ trợ thuận lợi cho designer.Sau khi import vào project Unity, những thành phần đó trở thành asset của Game. Asset game là tất cả những thành phần người dùng cần để tạo ra game: graphics file, script code file, sound file, ... Unity Technologies cho phép người dùng bán hoặc mua các asset game thông qua Asset Store( thông qua Unity IDE hay qua web). • Cộng đồng phát triển lớn mạnh và nhà phát triển cũng thường xuyên tổ chức hội nghị, hội thảo, công bố tài nguyên, kiến thức học tập.
  5. 5. I. GIỚI THIỆU VỀ UNITY3D Các platform Unity hiện nay đang hỗ trợ: Asset Store của Unity:
  6. 6. I. GIỚI THIỆU VỀ UNITY3D Màn hình Unity trong lúc phát triển dự án:
  7. 7. I. GIỚI THIỆU VỀ UNITY3D Các khái niệm, thành phần của Unity: Asset: những tài nguyên cần có để xây dựng nên 1 game trong Unity. Từ những graphic file cho đến file âm thanh hay file scritp code, ... Tất cả được lưu trữ trong folder Assets nằm trong folder project. Scenes: 1 màn chơi, 1 phân đoạn của game được tách biệt thành 1 file trong Unity. Một hay nhiều scene sẽ được build cùng nhau để tạo thành 1 game. GameObject: Một khái niệm trừu tượng quan trọng trong Unity. Mọi object trong game Unity đều là GameObject. Components: Một khái niệm trừu tường khác, quan trong trong Unity. Chúng giúp định hình hành vi, biểu thị,... để tạo nên 1 khía cạnh của GameObject khi được gắn( attach vào) Script: là một component. Script là thành phần thiết yếu trong game.
  8. 8. I. GIỚI THIỆU VỀ UNITY3D Sơ đồ thể hiện mối liên hệ giữa GameObject và Component trong Unity
  9. 9. II. PROJECT GAME Kết quả project:
  10. 10. II. PROJECT GAME Dựng mặt bàn chơi:
  11. 11. II. PROJECT GAME Dựng mặt bàn chơi (tt): Mặt bàn chơi gồm: 1 khối lập phương để tạo độ dày cho mặt bàn chơi 1 mặt phẳn ở phía trên khối lập phương Để tạo bề mặt cho mặt bàn ta dùng texture.
  12. 12. II. PROJECT GAME Dựng mặt bàn chơi (tt): Mặt bàn chơi là 1 hệ thống lưới 8x8 nên ta sẽ tạo ra 1 tile mẫu rồi tạo ra 8x8 tile tương tự và đặt theo tile theo vị trí hàng, cột được tính toán dựa theo kích thước bàn chơi Ta tạo tile mẫu từ 1 khối lập phương và cũng thêm material tương tự mặt bàn chơi + +
  13. 13. II. PROJECT GAME Dựng mặt bàn chơi (tt): Tile và mặt bàn sau khi lợp tile
  14. 14. II. PROJECT GAME Dựng mặt bàn chơi (tt): Tile được nâng lên và dao động điều hòa quanh mặt bàn chơi:
  15. 15. II. PROJECT GAME Ánh sáng: Thiết lập ánh sáng sử dụng Directional light (giống như ánh sáng ngoài thiên nhiên với các điểm trên cùng một mặt phẳng sẽ được chiếu sáng theo cùng 1 hướng, cường độ như nhau)
  16. 16. II. PROJECT GAME Ánh sáng (tt): Ta cũng cần bật chế độ nhận bóng (Cast Shadow) của vật thể cho mặt bàn chơi.
  17. 17. II. PROJECT GAME Camera: Thiết lập camera với góc để có thể quan sát toàn bộ bề mặt bàn chơi:
  18. 18. II. PROJECT GAME GUI: Hệ thống GUI gồm : Các button để mua tower Hệ thống chỉ số người chơi gồm số lượng tiền hiện có và số lượng mạng hiện có Ta sẽ sử dụng Canvas GameObject của Unity để xây dựng( hiện chỉ có trên Unity beta 4.6)
  19. 19. II. PROJECT GAME GUI( tt): Đăng ký sự kiện cho mỗi button mua tower để ta có thể thực hiện thao tác kiểm tra người mua có thể mua tower chỉ định hiện có được hay không. Có thể đăt tower đã mua lên vị trí chỉ định trên bàn chơi hay không?
  20. 20. II. PROJECT GAME GUI( tt): Luật khi mua và đặt tower lên mặt bàn chơi: Không cho phép người mua tower có giá > số tiền hiện tại. Không cho phép đặt tower lên bàn chơi mà khiến UFO không thể đi từ vị trí xuất phát đến vị trí đích. Không cho phép mua 1 vị trí > 1 tower. Phải chỉ định nơi đặt Tower trước khi mua.
  21. 21. II. PROJECT GAME Tạo Tower: Có 3 loại tower. Tất cả đều có chung 1 tập thuộc tính với các giá trị khác nhau để phân loại: Giá có thể mua Loại đạn Tầm bắn Tiếp theo sẽ là phương pháp tạo ra tower loại 1. Tower loại 2, 3 có thể tạo tương tự
  22. 22. II. PROJECT GAME Tạo Tower(tt): Model và Texutre của tower được tạo từ 1 chương trình 3D sau đó được import vào porject Unity
  23. 23. II. PROJECT GAME Tạo Tower(tt): Ta tạo vùng bắn cho tower bằng cách sử dụng collider sphere để chỉ định bán kính của vùng bắn. Bất kì UFO nào có khoảng cách đến tower < bán kính vùng bắn sẽ bị tấn công
  24. 24. II. PROJECT GAME Tạo Tower(tt): mRangeShoot là bán kính của vùng bắn
  25. 25. II. PROJECT GAME Tạo Tower(tt): mRangeShoot là bán kính của vùng bắn
  26. 26. II. PROJECT GAME Tạo Tower(tt): Các loại Tower trong Game:
  27. 27. II. PROJECT GAME Tạo Đạn: Giống như tower , ta sẽ có nhiều loại đạn khác nhau có chung thuộc tính nhưng phân biện bằng giá trị. 2 thuộc tính quan trọng: Lượng damage + Vận tốc đạn. Để có thể bắn đạn từ tower về phía UFO. Mỗi khi có UFO đi vào vùng bắn của 1 tower. Ta tạo ra 1 đạn ứng với tower đó. Đạn sẽ quay về hướng của UFO bị tấn công:
  28. 28. II. PROJECT GAME Tạo Đạn(tt): Để đạn chuyển động, ta sẽ tạo ra 1 rigidbody component cho Đạn GameObject. Ta tính vận tốc của đạn bằng công thức. Vector đơn vị của hướng nhìn của đạn vào UFO * vận tốc đạn.
  29. 29. II. PROJECT GAME Tạo Đạn(tt): Đạn cũng có collider componet nhằm phát hiện khi nào sẽ có object UFO bị va chạm với đạn. Nếu có ta sẽ thông báo cho object UFO bị trừ số lượng máu = số lượng damage của đạn. Sau đó đạn cần bị hủy. Ta cũng cần hủy đạn khi đạn đi ra khỏi phạm vi bàn chơi.
  30. 30. II. PROJECT GAME Tạo UFO: Giống như Tower, Đạn. Ta cũng sẽ tạo ra 1 loại UFO, các loại khác tương tự, chỉ khác chỉ số. Ta sử dụng chung 1 model cho tất cả 5 loại UFO, sau đó sẽ thay texture để tạo ra loại UFO mới. Yếu tố quan trọng nhất của 1 UFO là Số lượng máu( Health) của nó. Khi số lượng máu <= 0 thì UFO sẽ bị nổ và hủy đi. UFO cũng gây cho người chơi mất 1 mạng khi đi được đến hàng cuối cùng trong bàn chơi. UFO cần phải tự tìm đường: khi bắt đầu đi, khi bị chặn, khi bàn cờ có thay đổi.
  31. 31. II. PROJECT GAME Tạo UFO(tt): Model và Textures của UFO
  32. 32. II. PROJECT GAME Tạo UFO(tt): Ta dùng thuật toán A* để tìm đường đi cho UFO. Chỉ cần xét điểm đến là hàng cuối cùng. Đường đi cần phải tính lại khi UFO bị chặn bởi 1 tower mới đặt Sử dụng interpolate trong 1 khoảng thời gian để di chuyển UFO từ 1 ô sang ô kế tiếp trong đường đi Đi đến hàng cuối cùng sẽ trừ đi 1 mạng của người chơi.
  33. 33. II. PROJECT GAME Tạo UFO(tt): Các loại UFO trong game:
  34. 34. II. PROJECT GAME Tạo UFO(tt): Khi UFO hết máu, ta sẽ tạo ra 1 particle để thể hiện cảnh UFO bị nổ Particle sẽ cần phải tự hủy khi kết thúc life time của mình
  35. 35. III. KẾT THÚC CẢM ƠN ĐÃ LẮNG NGHE!

×