Chương 1. GIỚI THIỆU ĐỀ TÀI 1.1 Tổng quan: - Ngày nay số lượng người sở hữu thiết bị có thể chơi game ngày càng gia tăng, theo đó nhu cầu chơi game tăng theo. Tại Việt Nam số lượng người chơi game đạt mức 50 triệu người, khoảng 50% dân số - cao nhất trong khu vực Đông Nam Á. Tỷ lệ người chơi game sẵn sàng chi trả cũng đứng đầu khu vực.
Trong 10 studio game hàng đầu châu Á Thái Bình Dương và Úc, Việt Nam chiếm một nửa. Những con số này cho thấy tiềm năng thị trường game tại Việt Nam rất lớn, và chứng tỏ Việt Nam có vị thế quan trọng trên toàn cầu trong việc sản xuất game. - Hiện nay có nhiều game engine trên thị trường như Unity, Unreal, Godot, Armory, CryEngine, GameMaker,. được nhà phát triển và cộng đồng trang bị rất nhiều công cụ, giải pháp để hỗ trợ quá trình phát triển game nhanh và tốt hơn.
-Mục đích của đề tài này là phát triển trò chơi đa người chơi. Kèm theo áp dụng các nguyên lý thiết kế, mẫu thiết kế phù hợp nhằm quản lý vòng đời của game, triển khai mẫu thiết kế phù hợp cho các module, tăng khả năng mở rộng, giảm sự phụ thuộc vào engine, tái sử dụng cho dự án khác. Mặt khác, trong phát triển game thì hướng đối tượng (OOP) là kiến thức rất quan trọng và là yếu tố ảnh hưởng lớn đến dự án. Vì vậy phát triển game cũng là đề tài phù hợp để áp dụng các kiến thức OOP đã học trên trường.2 Mục tiêu thực hiện: - Tham khảo các game có nội dung tương tự trên thị trường, viết Game Design Document.
- Tìm hiểu cách triển khai co-op (Steamwork. - Tìm hiểu các mẫu thiết kế, nguyên lý thiết kế. - Tìm hiểu shader code để cải thiện đồ họa và tối ưu hiệu năng cho game. - Tìm hiểu cách tối ưu hiệu năng game.
- Thiết kế các model 3d, animation sử dụng Blender và Maya. - Xây dựng game và refactor thường xuyên để áp dụng các mẫu thiết kế, nguyên lý thiết kế, đảm bảo kiến trúc luôn có thể mở rộng dễ dàng.3 Phạm vi: Phạm vi môi trường: Ứng dụng chạy trên Microsoft Window. Phạm vi chức năng: - Đối với game: + Game 3D, góc nhìn nghiêng từ trên xuống. + Hình ảnh, đồ họa Low poly.
+ Có khả năng chơi co-op từ 1 đến 4 người. - Đối với gameplay: + Game tuyến tính, chơi theo màn, hoàn thành mục tiêu của từng màn chơi để qua màn tiếp theo. + Các màn chơi có thiết kế độ khó theo interest curve nhằm kích thích hứng thú qua từng màn game. + Một trò chơi hoàn chỉnh, đáp ứng được các chức năng mong muốn: Chức năng coop: người chơi có thể kết nối và chơi với nhau qua mạng (phạm vi là người dùng steam).
Người dùng có thể tạo phòng, mời bạn bè vào phòng, xem danh sách phòng đang mở, tham gia phòng. Hệ thống khối: map sẽ được xây dựng bởi các khối như minecraft. Hệ thống công thức khối: các khối sẽ được tạo ra từ sự kết hợp giữa các vật liệu khác nhau như nước, cát, đá,. Hệ thống vật liệu: các vật liệu sẽ được khai thác từ môi trường, hoặc được cung cấp từ sự chuẩn bị ở đầu màn chơi.
Các vật liệu đó ở môi 3 trường sẽ có hình dạng gì, vật liệu đó khi được khai thác sẽ có hình dạng gì, làm sao để tương tác. Hệ thống tương tác, thể loại game hợp tác thường được thiết kế đơn giản về hoạt động trong màn chơi, chỉ tập trung vào một số ít hoạt động cụ thể và phải lặp đi lặp lại với cường độ cao, các tương tác chính: o Tương tác giữa người chơi với người chơi, hợp tác nhưng vẫn phải có yếu tố cản trở lẫn nhau: Đẩy: khi người chơi lướt đụng trúng người khác sẽ làm cả 2 rơi đồ vật trên tay. Khiêng: người chơi này có thể khiêng người chơi kia và thẩy như đồ vật. Tương tác giữa người chơi với dụng cụ lao động: Cuốc: dùng để đập tất cả mọi thứ trong trò chơi: khối, gỗ, động vật,.
Xô: dùng để đựng các vật liệu. o Tương tác giữa người chơi với đồ khác trong màn chơi: Thùng hàng: mỗi thùng là 1 loại vật liệu, người chơi có thể dùng xô để lấy vật liệu hoặc thêm vật liệu vào thùng. Máy móc: máy để tổng hợp vật liệu từ các vật liệu, máy để tạo khối từ các vật liệu,. Bản vẽ, bảng công thức: người chơi sẽ phải luôn nhìn bản vẽ và bảng công thức liên tục để biết mình cần làm gì.
o Tương tác giữa người chơi với sinh vật, môi trường (tùy bối cảnh và bị động): Các môi trường tự nhiên nguy hiểm như nước, lửa, dung nham. sẽ làm người chơi biến mất và hồi sinh sau vài giây. Các môi 4 trường không tốt như tuyết, băng, rừng rậm sẽ ảnh hưởng đến các khả năng của người chơi (đi chậm, trượt,. Các sự kiện từ môi trường nguy hiểm: đá rơi từ trên cao, bão, sấm sét,.
sẽ làm người chơi biến mất và hồi sinh sau vài giây. Sinh vật gây cản trở như trâu, sư tử, ma,. sẽ làm ảnh hưởng đến người chơi như chặn đường, làm choáng,. Hệ thống sự kiện biến đổi map: sẽ có 2 sự kiện chính trong 1 màn chơi, sự kiện mở đầu, sự kiện giữa màn chơi.
Sự kiện mở đầu thường là sự kiện mà trực quan hóa việc map được tải lên thế nào hoặc là giới thiệu map. Sự kiện giữa màn chơi là sự kiện map thay đổi trong lúc chơi, ví dụ như: map bị chia làm đôi, cây đổ chắn đường,. Hệ thống chế độ chơi: chế độ chơi sẽ gồm chơi theo thời gian, chơi 2 đội đua thời gian,. Chỉ tập trung chế độ chơi theo thời gian, chế độ còn lại sẽ được cập nhật sau.
Hệ thống nhiệm vụ nhỏ trong màn chơi: màn chơi sẽ có nhiệm vụ nhỏ, nếu hoàn thành sẽ cộng thêm điểm khi kết thúc màn chơi. Ví dụ: 2 người chơi không được húc vào nhau, chặt 5 cây gỗ, chỉ 1 người được xem bản vẽ nhà,. Hệ thống đánh giá điểm: sau khi kết thúc màn chơi, hệ thống sẽ đánh giá sản phẩm của người chơi giống được bao nhiêu phần trăm so với yêu cầu, được bao nhiêu điểm vào bao nhiêu sao.4 Đối tượng sử dụng: - Người chơi muốn giải trí nhẹ nhàng một mình hoặc theo nhóm tối đa 4 người.5 Phương thức thực hiện: Phương pháp làm việc: - Làm việc 1 thành viên, dưới sự chỉ dẫn của giảng viên hướng dẫn. Phương pháp công nghệ: 5 - Tìm hiểu cách làm model và animation với Maya.Net, Mirror để triển khai tính năng Coop.
- Sử dụng Trello để quản lý tiến trình và tài liệu. - Sử dụng Github để quản lý source code.6 Các game trên thị trường: 1.1 Trò chơi Unrailed Unrailed là một game hợp tác nhiều người chơi nơi mà game thủ phải làm việc cùng bạn bè để xây dựng đường ray cho một đoàn tàu qua các thế giới được tạo ngẫu nhiên vô tận. Trên chuyến đi nhiệm vụ bạn phải đụng độ với các sinh vật sống khác, bạn phải nâng cấp đoàn tàu và ngăn nó không bị trật đường. Game có thể chơi trực tuyến hoặc trên cùng một máy với tối đa bốn người chơi trong một đội.
Game có nhiều chế độ khác nhau, như không giới hạn, cát bụi, hay đối đầu. Game cũng có nhiều loại toa xe khác nhau để bạn có thể tùy biến đoàn tàu của mình. Game có đồ họa dễ thương và hài hước, phù hợp cho những người muốn chơi game giải trí cùng bạn bè.2 Trò chơi Moving Out Moving Out là một game hợp tác nhiều người chơi nơi bạn phải làm việc cùng bạn bè để chuyển đồ đạc từ nhà ra xe tải trong thời gian giới hạn. Bạn phải đối phó tính toán nên khiêng các vật nặng nề theo cách nào, và các chướng ngại vật (như cái cào, lửa, băng, hay ma) trong quá trình chuyển hàng.
Bạn có thể ném đồ đạc, đập vỡ cửa sổ. Game có thể chơi 4 người qua mạng. Game có nhiều nhân vật với hình ảnh dễ thương khác nhau để người chơi tùy biến theo sở thích. Game có đồ họa sặc sỡ và hài hước, phù hợp cho những người muốn chơi game giải trí cùng bạn bè.3 Trò chơi Overcooked 2 Overcooked 2 là một game mô phỏng nấu ăn hợp tác.
Trong game này, bạn sẽ vào vai một đầu bếp sushi và phải làm việc cùng bạn bè để chuẩn bị, nấu và phục vụ các món ăn cho khách hàng trong thời gian giới hạn. Bạn phải chăm lo với các món ăn của bạn, và vượt qua các chướng ngại vật trong quá trình nấu ăn. Game có thể chơi trực tuyến tối đa bốn người. Game có đồ họa sặc sỡ và hài hước, phù hợp cho những người muốn chơi game giải trí cùng bạn bè.
8 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Unity - Unity là một công cụ phát triển game đa nền tảng được phát triển bởi Unity Technologies từ năm 2005. Unity hỗ trợ đồ họa 2D và 3D, ngôn ngữ lập trình được sử dụng chủ yếu là ngôn ngữ C#. - Đa nền tảng : Unity có thể được dùng để tạo game cho máy tính, điện thoại, console và web. Unity cũng hỗ trợ các nền tảng thực tế ảo và thực tế tăng cường.
Unity cung cấp một môi trường làm việc trực quan và linh hoạt hơn so với đa số các engine khác. - Công cụ: Unity cũng cung cấp nhiều công cụ cần thiết trong quá trình phát triển game Animator, Timeline, Cinemachine. Unity cũng có một Asset Store lớn, người dùng có thể mua hoặc tải về miễn phí các tài nguyên như mô hình 3D, âm thanh, vật lý, AI,… - Cộng đồng: Một điểm mạnh khác là Unity cũng có một cộng đồng lập trình viên rất đông đảo và nhiệt tình, nơi có thể học hỏi, trao đổi kinh nghiệm và giải quyết các vấn đề khi phát triển game một cách đa dạng và nhanh chóng. Unity cũng có tổ chức 9 những khóa học hay sự kiện và cuộc thi nâng cao kỹ năng cộng đồng và tạo môi trường giao lưu với các nhà phát triển khác.
- Bên cạnh đó Unity là một công cụ phát triển game rất mạnh mẽ và phổ biến, đã được dùng để tạo ra nhiều game nổi tiếng như Among Us, Fall Guys, Genshin Impact,… 2.2 Mirror Networking: Hình 2.2 Mirror Networking - Mirror là một chương trình mạng cho Unity, giúp xây dựng game nhiều người chơi với Unity.