LỜI CẢM ƠN Trân trọng gửi lời cảm ơn thầy Đinh Nguyễn Anh Dũng giúp đỡ hướng dẫn tận tình, cung cấp kiến thức cần thiết đưa phản hồi để cải thiện trình thực dự án Cảm ơn khoa Công Nghệ Phần mềm tạo điều kiện cho chúng em có hội thực đồ án báo cáo Và cuối chúng em xin gửi lời cảm ơn tới bạn tester chơi thử đưa nhận xét thiết kế hiệu phần mềm trình phát triển MỤC LỤC CHƯƠNG GIỚI THIỆU VỀ PLATFORMER GAME 1.1 Khái niệm Platformer game 1.2 Một số game tiêu biểu 1.3 Một số phong cách thiết kế 1.3.1 Tuyến tính 1.3.2 Phi tuyến tính 1.3.3 Metroidvania 10 Phân rã: Metroid Castlevania 10 CHƯƠNG GIỚI THIỆU VỀ THIẾT KẾ GAME 12 2.1 Khái niệm Thiết kế game (Game Design) 12 2.2 Mechanics-Dynamics-Aesthetics (MDA) Framework 12 2.2.1 Game Mechanics 12 2.2.2 Game Dynamics 13 2.2.3 Game Aesthetics 14 CHƯƠNG MÔ TẢ THIẾT KẾ SẢN PHẨM GAME 3.1 Tổng quan 14 14 3.1.1 Tên game: Cecilius 14 3.1.2 Bối cảnh 14 3.1.3 Tóm tắt cốt truyện 15 3.2 Các đối tượng tương tác game 15 3.2.1 Nhân vật 15 3.3 Phong cách đồ họa 17 3.4 Gameflow 19 3.5 Mockup hình giao diện 20 3.5.1 Splash screen 20 3.5.2 Main menu 21 3.6 Mechanics, Dynamics Aesthetics 22 3.6.1 Mechanics 22 3.6.2 Dynamics 24 3.6.3 Aesthetics 26 3.7 Thiết kế chơi (Level Design) CHƯƠNG HIỆN THỰC HĨA 29 30 4.1 Quy trình làm việc 30 4.2 Các công cụ hỗ trợ 31 4.2.1 Quản lý: Notion 31 4.2.2 Quản lý source code: Git 33 4.2.3 Trao đổi: Messenger 33 4.3 Kiến trúc hệ thống cơng nghệ 4.3.1 Mơ hình Model-View-Controller 34 34 4.3.1.1 Ngun thể mơ hình MVC 34 4.3.1.2 Biến thể MVC – Passive View MVC 35 4.3.2 Service Locator 36 4.3.3 Unity Game Engine 37 4.3.3.1 Giới thiệu Unity Game Engine 37 4.3.3.2 Mơ hình Component-based Unity 40 4.3.3.3 Kết hợp MVC vào Unity 41 4.3.4 Tổ chức hệ thống cho game 43 4.4 Kế hoạch triển khai dự tính 44 4.5 Kết thu 47 4.5.1 Màn hình Menu 47 4.5.2 Màn hình cốt truyện 48 4.5.3 Màn hình gameplay 49 Thay đổi địa hình, thu phóng camera 49 Giải đố: mê cung (puzzle 1) 50 Giải đố: công tắc (puzzle 2) 51 Hố đen: thay đổi trọng lực 52 CHƯƠNG KẾT LUẬN 5.1 Đánh giá sản phẩm 57 57 5.1.1 Ưu điểm 57 5.1.2 Hạn chế 58 5.2 Hướng phát triển 58 5.2.1 Tương lai gần 58 5.2.2 Thương mại hóa 58 NGUỒN THAM KHẢO 59 DANH MỤC HÌNH Hình 1.1 Game Super Mario Bros Hình 1.2 Game Castlevania: Symphony of the Night Hình 1.3 Minh họa chế locks and keys game Hollow Knight 10 Hình 3.1 Bản phác thảo trạng thái đứng yên (idle) 14 Hình 3.2 Bản phối màu trạng thái đứng yên (idle) 16 Hình 3.3 Bản artwork nhân vật 16 Hình 3.4 Một phối cảnh vector cho gameplay 17 Hình 3.5.Một artwork theo phong cách digital 17 Hình 3.6 Gameflow 18 Hình 3.7 Mockup: hình chờ Menu 19 Hình 3.8 Mockup: hình Menu 20 Hình 3.9 Minh họa thử thách giải đố 22 Hình 3.10 Minh họa thử thách hố đen 22 Hình 3.11 Sơ đồ trạng thái cho diễn hoạt nhân vật 23 Hình 3.12 Tạo aesthetics từ yếu tố đồ họa cho gameplay 26 Hình 4.1 Quy trình làm việc nhóm 28 Hình 4.2 Tổ chức workspace Notion 29 Hình 4.3 Khu vực lưu trữ assets Notion 30 Hình 4.4 Game Super Mario Bros 30 Hình 4.5 Khu vực Task List 31 Hình 4.6 Mơ hình Supervising MVC 33 Hình 4.7 Mơ hình Passive View MVC 34 Hình 4.8 Service Locator Pattern 35 Hình 4.9 Giao diện Unity 36 Hình 4.10 Asset Store tích hợp trực tiếp bên engine 37 Hình 4.11 Giao diện quản lý projects Unity Hub 38 Hình 4.12 Giao diện thể component game object 39 Hình 4.13 Minh họa mơ hình AMVC 40 Hình 4.14 Sơ đồ lớp thể mơ hình AMVC 40 Hình 4.15 Cấu trúc đối tượng Unity 41 Hình 4.16 Màn hình chờ Menu 44 Hình 4.17 Màn hình hiển thị Menu 45 Hình 4.18 Một khung hình đoạn cutscene đầu game 45 Hình 4.19 Gameplay: thay đổi địa hình 46 Hình 4.20 Gameplay: tương tác với giải đố mê cung 47 Hình 4.21 Gameplay: hình giải đố 47 Hình 4.22 Gameplay: mở đường sau giải đố mê cung 47 Hình 4.23 Gameplay: giải đố cơng tắc 48 Hình 4.24 Gameplay: mở đường sau giải đố cơng tắc 48 Hình 4.25 Gameplay: hố đen hút nhân vật 49 Hình 4.26 Gameplay: vượt qua vực thẳm dài với dãy hố đen 49 Hình 4.27 Map phân nhánh: khu bắt đầu 49 Hình 4.28 Một phần khu trung tâm (hub) 50 Hình 4.29 Một phần khu trung tâm (hub) (t.t) 50 Hình 4.30 Nhánh 51 Hình 4.31 Nhánh 51 Hình 4.32 Nhánh (cồng vào bị chặn) 52 Hình 4.33 Nhánh (giải đố để mở cổng vào) 52 Hình 4.34 Nhánh 53 CHƯƠNG GIỚI THIỆU VỀ PLATFORMER GAME 1.1 Khái niệm Platformer game Từ lâu, khái niệm game nhập vai hay Role-Playing Game (RPG) khơng cịn xa lạ nhiều người RPG đồng thời đại diện cho nhiều dòng game nhỏ bên nó, RPG đóng vai trị yếu tố game thể loại cụ thể Platformer game số nhiều nhánh RPG game hành động với có số quy luật như: ● Nhập vai vào nhân vật chính, có cốt truyện, bối cảnh xảy ● Thế giới platformer game thường chịu ảnh hưởng định luật vật lý như: trọng lực, va chạm cơ, … không đơn game dạng top-down (góc nhìn từ xuống) ● Nhân vật thường có kỹ nhảy, di chuyển, chạy, … mô lại thao tác đời thực Dùng chuyển động để vượt qua địa hình (platform) khác 1.2 Một số game tiêu biểu Nói đến platformer game từ xưa khơng thể khơng kể đến số game kinh điển Super Mario Bros quen thuộc hay Castlevania Thậm chí số platformer game cịn đóng vai trị đặt móng cho thể loại sau Với Mario, người chơi thấy rõ yếu tố vật lý đặt vào nhiều Việc chuyển động Mario cịn trở nên phong phú có yếu tố gia tốc Ngoài hành động chạy Mario cịn có trường hợp quay đầu sang hướng ngược lại chạy (skid) Với hành động nhảy Mario cịn điều khiển độ cao cú nhảy Về yếu tố nhập vai có câu chuyện phía sau mà biết người chơi nhập vai vào Mario để vượt qua địa hình hiểm trở (platform), sử dụng kỹ bay nhảy để tiêu diệt lũ Koopa cứu lấy cơng chúa Hình 1.1 Game Super Mario Bros Một game tiêu biểu khác Castlevania thuộc dòng platformer game Tuy chuyển động đơn giản Mario phần thiết kế map chuỗi game Castlevania để lại dấu ấn lịch sử ngành game sinh dòng game gọi Metroidvania kết hợp với chế platformer game khác tên Super Metroid X: ● Super Metroid X mang đến chế locks and keys ● Castlevania mang đến phong cách thiết kế map interconnection Cơ chế locks and keys phong cách thiết kế map interconnection trình bày phần sau Hình 1.2 Game Castlevania: Symphony of the Night 1.3 Một số phong cách thiết kế Có nhiều phong cách thiết kế game thuộc thể loại platformer Phạm vi báo cáo trình bày vài phong cách thiết kế phổ biến tìm hiểu 1.3.1 Tuyến tính Một cách thiết kế cổ điển thiết kế game với cốt truyện có diễn biến đường thẳng có trình tự Người chơi đưa vào cốt truyện chơi để cốt truyện diễn biến theo trình tự ban đầu nhà phát triển đưa Một ví dụ game Mario có cốt truyện đơn giản Mario giải cứu công chúa Toadstool phải vượt qua thử thách đường Điều đặc biệt phiên Mario trước nằm việc thiết kế map để Mario từ trái sang phải để qua Điều thể rõ tính chất tuyến tính thiết kế 1.3.2 Phi tuyến tính Khác với cách thiết kế tuyến tính, thiết kế phi tuyến tính cốt truyện hay gameplay thường rẽ nhánh không ép người chơi vào đường thẳng định Chính tạo phong phú mặt trải nghiệm, đồng thời khó để triển khai 4.4 Kế hoạch triển khai dự tính Giai đoạn Thời gian Cơng việc Chuẩn bị 19/3 - 24/3 Hiếu + Bách: ● Họp lên kế hoạch triển khai design document ● Lên ý tưởng cho prototype ● Tìm hiểu khả thành viên nhóm Phác thảo 25/3 - 3/4 Hiếu: ● Thực prototype chức game ● Phác thảo cảnh gameplay (hình tĩnh) Bách: ● Tìm hiểu cấu trúc code project ● Phác thảo tạo hình diễn hoạt nhân vật ● Ghép phác thảo đồ họa vào prototype Lặp 3/4 - 18/4 Hiếu + Bách: họp bàn thiết kế thử thách cho game, cập nhật design document Bách: ● Dựng cảnh ghép art cho gameplay ● Lên màu cho diễn hoạt nhân vật ● Dựng camera Hiếu: ● Đề xuất nháp thiết kế thử thách cho game ● Cải tiến chuyển động điều khiển nhân vật Cụ thể hóa thiết kế 22/4 - 1/5 Hiếu + Bách: cụ thể hóa cốt truyện mở đầu game, đặt tên game Bách: cập nhật design document Lặp 10/5 - 30/5 Hiếu + Bách: chốt thiết kế thử thách game Hiếu: bắt đầu triển khai thiết kế thử thách Bách: tạo cutscene, vẽ artwork cho cốt truyện mở đầu game Lặp 15/6 - 25/6 Bách: ● Dựng hình Menu, ghép flow hình ● Bổ sung, làm đẹp cho gameplay (hiệu ứng) Hiếu: ● Hoàn chỉnh chức câu đố, thử thách ● Thêm art cho đối tượng thử thách Kết thúc đồ án 26/6 - 28/6 Bách: tổng hợp document, lên cấu trúc viết báo cáo Họp thay đổi thiết kế chơi 5/10 - 27/10 Hiếu + Bách: ● Thay đổi chế “khơng có chết” sang chế “checkpoint quay checkpoint chết” ● Lên bố cục map (phân nhánh tập trung) ● Đặt chơi theo bố cục Lặp 1/11 - 29/11 Hiếu: ● Tiếp tục thiết kế map theo bố cục phân nhánh tập trung Bách: ● Nghiên cứu phối cảnh ghép art cho map Lặp 30/11 - 20/12 Hiếu + Bách: ● Cải thiện art map, chỉnh số nhân vật cho phù hợp với map ● Tạo hiệu ứng chuyển cảnh ● Ghép map vào gameplay build chơi thử Kết thúc đồ án 21/12 - 25/12 Hiếu + Bách: ● Bổ sung báo cáo document 4.5 Kết thu Phiên hoàn chỉnh gameplay gồm thử thách đề phần thiết kế hình tương ứng Ngồi ra, nhóm release thử tảng itch.io cho phép chơi trực tiếp web 4.5.1 Màn hình Menu Hình 4.16 Màn hình chờ Menu Hình 4.17 Màn hình hiển thị Menu 4.5.2 Màn hình cốt truyện Hình 4.18 Một khung hình đoạn cutscene đầu game 4.5.3 Màn hình gameplay Thay đổi địa hình, thu phóng camera Hình 4.19 Gameplay: thay đổi địa hình Giải đố: mê cung (puzzle 1) Hình 4.20 Gameplay: tương tác với giải đố mê cung Hình 4.21 Gameplay: hình giải đố Hình 4.22 Gameplay: mở đường sau giải đố mê cung Giải đố: cơng tắc (puzzle 2) Hình 4.23 Gameplay: giải đố cơng tắc Hình 4.24 Gameplay: mở đường sau giải đố công tắc Hố đen: thay đổi trọng lực Hình 4.25 Gameplay: hố đen hút nhân vật Hình 4.26 Gameplay: vượt qua vực thẳm dài với dãy hố đen Hình 4.27 Map phân nhánh: khu bắt đầu Hình 4.28 Một phần khu trung tâm (hub) Hình 4.29 Một phần khu trung tâm (hub) Hình 4.30 Nhánh Hình 4.31 Nhánh Hình 4.32 Nhánh (cổng vào bị chặn) Hình 4.33 Nhánh (giải đố mở cổng vào) Hình 4.34 Nhánh CHƯƠNG KẾT LUẬN 5.1 Đánh giá sản phẩm 5.1.1 Ưu điểm Về phần sản phẩm, nhóm tự đánh giá ưu điểm sau: ● Độ hoàn thiện chức tương đối cao phần đồ họa, âm phối cảnh ● Gameplay có kết hợp nhiều chế chơi khác ● Tạo cảm xúc cho người chơi không gian thông qua việc đầu tư âm hình ảnh ● Có thể cốt truyện qua cutscene Về phần kỹ thuật thực hóa: ● Có nghiên cứu kỹ thuật tổ chức code Unity sử dụng design pattern Service Locator mô hình MVC ● Thống quy trình làm việc phù hợp cho hai người ● Có tổ chức quản lý tasks theo dõi tiến độ 5.1.2 Hạn chế Về phần sản phẩm, nhóm tự thấy cịn có số hạn chế sau: ● Nội dung game hạn chế, chưa đủ nhiều dự định ban đầu ● Còn số bugs ảnh hưởng đến trải nghiệm người chơi Về phần kỹ thuật thực hóa: ● Chưa áp dụng triệt để mơ hình MVC ● Ước lượng thời gian chưa hiệu ● Tối ưu hiệu suất chưa triệt để 5.2 Hướng phát triển 5.2.1 Tương lai gần Trong tương lai gần, game mở rộng nội dung gameplay đầy đủ với dự tính ban đầu: ● Map có zones ứng với phần cốt truyện ● Có thêm nhiều chế ● Cố gắng đưa thiết kế map theo phong cách metroidvania ● Bổ sung đoạn escape run (đuổi bắt) ● Tối ưu hiệu suất game 5.2.2 Thương mại hóa Triển khai hồn thiện chi tiết, tinh chỉnh cho game hoàn chỉnh yếu tố cần thiết game như: ● Map: hiển thị địa hình map Zone ● Cơ chế locks and keys thiết kế hiệu ● Kết hợp thêm kỹ thuật diễn hoạt cho nhân vật uyển chuyển Nếu có điều kiện, nhóm thử việc phát hành game tảng game PC như: Steam hay itch.io tích hợp API thu liệu người dùng để có phân tích xác cho việc tối ưu trải nghiệm chơi game NGUỒN THAM KHẢO [1] Wikipedia, MDA Framework https://en.wikipedia.org/wiki/MDA_framework [2] EDUARDO DIAS DA COSTA, Unity with MVC: How to Level Up Your Game Development https://www.toptal.com/unity-unity3d/unity-with-mvc-how-to-level-up-your-gamedevelopment https://bitbucket.org/eduardo_costa/thelab-unity-mvc/overview [3] Robert Nystrom, Game Programming Patterns https://gameprogrammingpatterns.com/ ... mới) CHƯƠNG GIỚI THIỆU VỀ THIẾT KẾ GAME 2.1 Khái niệm Thiết kế game (Game Design) Thiết kế game công việc tạo ý tưởng game đặt luật lệ cho chúng Một người thiết kế game cần thực công việc như:... nhiều phong cách thiết kế game thuộc thể loại platformer Phạm vi báo cáo trình bày vài phong cách thiết kế phổ biến tìm hiểu 1.3.1 Tuyến tính Một cách thiết kế cổ điển thiết kế game với cốt truyện... đưa nhận xét thiết kế hiệu phần mềm trình phát triển MỤC LỤC CHƯƠNG GIỚI THIỆU VỀ PLATFORMER GAME 1.1 Khái niệm Platformer game 1.2 Một số game tiêu biểu 1.3 Một số phong cách thiết kế 1.3.1 Tuyến