Các tạo trò chơi nhiều người với lập trình Game bằng Unity

Ngày đăng: 24/04/2023   -    Cập nhật: 25/04/2023

Trong hướng dẫn lập trình Game bằng Unity này, chúng ta sẽ xây dựng một bản demo đơn giản để tìm hiểu cách sử dụng các tính năng nhiều người chơi của Unity. 


Để làm được theo hướng dẫn này, bạn phải làm quen với các khái niệm sau:

  • C# programming.
  • Sử dụng Unity Editor, chẳng hạn như nhập nội dung, tạo prefabs và thêm các thành phần.

Trước khi bắt đầu

Nếu đây là lần đầu tiên bạn bước vào thế giới Unity, NIIT-ICT Hà Nội khuyên bạn nên tìm hiểu qua một số hướng dẫn về Unity miễn phí qua một số khóa học trực tuyến, hoặc đọc tài liệu cho những người bắt đầu về game Unity trên Website của ICT Hà Nội.

Tạo dự án và nhập nội dung

Trước khi bắt đầu đọc hướng dẫn, bạn cần tạo một dự án Unity mới và nhập tất cả các họa tiết có sẵn thông qua mã nguồn. Để làm điều đó, hãy tạo một thư mục có tên Sprites và sao chép tất cả các sprite vào thư mục này. Unity Inspector sẽ tự động nhập chúng vào dự án của bạn.

 

 

Trong Sprite Editor (hiển thị bên dưới), bạn cần mở menu lát cắt và nhấp vào nút Slice với loại lát cắt là tự động. Cuối cùng, nhấn áp dụng trước khi đóng.


Chúng tôi cũng cần nhập nội dung Mirror. Truy cập Cửa hàng nội dung (Cửa sổ > Cửa hàng nội dung) và tải xuống “Mirror”.


Phông nền

Chúng ta có thể làm điều đó bằng cách tạo một Hình ảnh mới trong Hệ thống phân cấp và nó sẽ tự động tạo một Canvas mới (đổi tên nó thành BackgroundCanvas).


Trong BackgroundCanvas, chúng ta cần đặt Chế độ kết xuất của nó là Không gian màn hình. Sau đó, chúng ta sẽ đặt Chế độ tỷ lệ giao diện người dùng của nó thành Tỷ lệ theo kích thước màn hình. Bằng cách này, Canvas sẽ xuất hiện ở chế độ nền chứ không phải ở phía trước các đối tượng khác.


 

Trong Hình nền, chúng ta chỉ cần đặt Hình ảnh nguồn, đây sẽ là hình ảnh không gian.

Hãy thử chạy trò chơi ngay bây giờ và bạn sẽ thấy nền không gian trong trò chơi.


Quản lý mạng

Để có một trò chơi nhiều người chơi, chúng ta cần một GameObject với các thành phần NetworkManager và NetworkManagerHUD, vì vậy hãy tạo một cái.

 

Đối tượng này sẽ chịu trách nhiệm quản lý việc kết nối các client khác nhau trong một trò chơi và đồng bộ hóa các đối tượng trò chơi giữa tất cả các client. HUD của Trình quản lý mạng hiển thị một HUD đơn giản để người chơi kết nối với trò chơi.


Ví dụ: nếu bạn chơi trò chơi bây giờ, bạn sẽ thấy màn hình sau:

 

Trong hướng dẫn này, chúng ta sẽ sử dụng các tùy chọn LAN Host và LAN Client. Trò chơi nhiều người chơi Unity hoạt động theo cách sau: đầu tiên, người chơi bắt đầu trò chơi với tư cách là máy chủ (bằng cách chọn Máy chủ LAN). Máy chủ hoạt động như một máy khách và máy chủ cùng một lúc. Sau đó, những người chơi khác có thể kết nối với máy chủ này bằng cách làm khách hàng (bằng cách chọn LAN Client). Máy khách giao tiếp với máy chủ, nhưng không thực thi bất kỳ mã nào chỉ dành cho máy chủ. 


Sự chuyển động của tàu

Bây giờ chúng ta đã có Trình quản lý mạng, chúng ta có thể bắt đầu tạo các đối tượng trò chơi sẽ được quản lý bởi nó. Cái đầu tiên chúng ta sẽ tạo là con tàu của người chơi.


Hiện tại, con tàu sẽ chỉ di chuyển theo chiều ngang trên màn hình, với vị trí của nó được cập nhật bởi Trình quản lý mạng.Vì vậy, trước hết, hãy tạo một GameObject mới có tên là Ship và biến nó thành một nhà lắp ghép. Hình dưới đây cho thấy các thành phần nhà lắp ghép Ship, mà tôi sẽ giải thích ngay bây giờ.


 


Vị trí đẻ trứng

Trước tiên, chúng ta cần tạo một Đối tượng trò chơi mới để làm vị trí xuất hiện của chúng ta và đặt nó vào vị trí xuất hiện mong muốn. Sau đó, chúng ta thêm thành phần NetworkStartPosition vào nó. 

 

Bắn đạn

Trước hết, chúng ta cần tạo Bullet prefab. Vì vậy, hãy tạo một GameObject mới có tên là Bullet và biến nó thành một prefab. Để quản lý nó trong mạng, nó cần các thành phần NetworkIdentiy và NetworkTransform, giống như trong nhà lắp ghép của tàu. Tuy nhiên, sau khi một viên đạn được tạo, trò chơi không cần truyền vị trí của nó qua mạng, vì vị trí được cập nhật bởi công cụ vật lý. Vì vậy, chúng ta sẽ thay đổi Tốc độ gửi mạng trong Chuyển đổi mạng thành 0, để tránh quá tải mạng.

 

Kẻ thù sinh ra

Đầu tiên, chúng ta cần một nhà tiền chế của Kẻ thù. Vì vậy, hãy tạo một GameObject mới tên là Enemy và biến nó thành một prefab. Giống như tàu, kẻ thù sẽ có Rigidbody2D và BoxCollider2D để xử lý các chuyển động và va chạm. Ngoài ra, nó sẽ cần NetworkIdentity và NetworkTransform, để được xử lý bởi NetworkManager. Sau này, chúng tôi cũng sẽ thêm một tập lệnh vào đó, nhưng hiện tại chỉ có thế.


Bị sát thương

Tập lệnh chúng tôi sẽ sử dụng có tên là ReceiveDamage và nó được hiển thị bên dưới. Nó sẽ có các tham số có thể định cấu hình maxHealth, kẻ enemyTag và tiêu destroyOnDeath. Cái đầu tiên được sử dụng để xác định sức khỏe ban đầu của đối tượng. Cái thứ hai được sử dụng để phát hiện va chạm. 


Lời kết: bạn cũng có thể mở rộng kiến thức về Unity của mình bằng các khóa học trực tuyến lập trình Game bằng Unity khác như tạo game nhập vai, game FPS,... NIIT-ICT Hà Nội hy vọng bạn đã học được nhiều điều ở bài viết này.


Bình luận Facebook
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!