Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
2,44 MB
Nội dung
LỜI CẢM ƠN Em xin chân thành cảm ơn môn Côngnghệ thông tin, khoa Côngnghệ thông tin, Trường Đại học Côngnghệ thông tin truyền thông Thái nguyên tạo điều kiện thuận lợi cho em thực báo cáo Em xin chân thành cảm ơn thầy Nguyễn Hải Minh người tận tình hướng dẫn, bảo cho em suốt thời gian thực báo cáo tốt nghiệp Em xin gửi lời cảm ơn sâu sắc đến quý thầy cô Khoa Bộ mơn tận tình giảng dạy, trang bị cho em kiến thức quý báu năm học vừa qua Mặc dù em cố gắng hoàn thành báo cáo phạm vi khả cho phép, chắn không tránh khỏi thiếu sót, kính mong cảm thơng tận tình bảo q thầy bạn Sinh viên thực Cao Tiến Cường LỜI CAM ĐOAN Em xin cam đoan đồ án em, có hỗ trợ từ giáo viên hướng dẫn T.s.Nguyễn Hải Minh – mơn lập trình ứng dụng, trường Đại Học Côngnghệ thông tin truyền thông Thái Nguyên, Đại Học Thái Nguyên Em xin cam đoan nội dung nghiên cứu kết đề tài trung thực không chép từ báo cáo thực tập đồ án khác trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá thân thu thập từ nguồn khác Nếu có gian lận em xin hoàn toàn chịu trách nhiệm trước Hội đồng Thái Nguyên, tháng 05 năm 2017 Sinh viên Cao Tiến Cường MỤC LỤC LỜI NÓI ĐẦU Ở Việt Nam nay, việc lập trình game cho thiết bị di động thơng minh (viết tắt game mobile) khơng xa lạ với nhiều lập trình viên, đặc biệt sau thành cơng lập trình viên Nguyễn Hà Đông với ứngdụng “Flapy Bird” làm hàng triệu người giới vừa chơi vừa ức chế Với thị trường Việt Nam rộng lớn với 90 triệu đa phần dân số trẻ nên thị trường game mobile rộng lớn, với thị trường rộng lớn doanh thu mang lại lớn, năm 2014 500 tỷ tăng dần theo thời gian [1], với số vốn đầu tư ban đầu không cần nhiều, chút kiến thức đồ họa kinh nghiệm lập trình bạn tự tạo sản phầm cho riêng mang dấu ấn riêng Ở Việt Nam có số lượng khơng nhỏ startup làm game, kể đến : Joy Entertainment, Divmob, ColorBox, ME Corp, MC Corp, Goya Studio, Senspark, Bưởi Studio v.v , ngồi có Indie Developer - lập trình viên độc lập Với suy nghĩ có kiến thức nên vận dụng cách triệt để cộng thêm việc yêu thích tựa game tiếng giới, em bắt đầu tìm hiểu nghiên cứu cách lập trình game cách thực nghiêm túc có số kinh nghiệm định Khi nhận đồ án, em nhận thấy việc phát triển game mobile với công cụ hỗ trợ - gameengine - trường ĐH CNTT & TT Thái Nguyên chưa phát triển phổ biến em nhận đề tài: “ỨNG DỤNGCÔNGNGHỆĐANỀNTẢNGUNITY3DENGINEGAME–XÂYDỰNGGAMERAMBO CHIBI” Bố cục báo cáo gồm chương: Chương 1: Cơ sở lý thuyết Chương 2: Khảo sát số game mobile có thị trường Chương 3: Phân tích thiết kế Chương 4: XâydựnggameRamboChibi CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái Niệm Trò Chơi 1.1.1 Khái niệm - Trò chơi hoạt động tự nhiên cần thiết nhằm thỏa mãn nhu cầu giải trí đa dạng người - Trò chơi phương pháp giáo dục thực hành hiệu nghiệm việc hình thành nhân cách, trí lực trẻ em - Trò chơi hình thức dưỡng sinh người lớn tuổi, giúp họ hăng hái, thư giãn, vui vẻ, trẻ tính 1.1.2 Mục đích trò chơi - Với người lớn, trò chơi giải trí, thư giãn, giúp cho đầu óc bớt căng thẳng sau làm việc mệt nhọc Với trẻ em, ngồi giải trí, trò chơi nhu cầu cần thiết cho phát triển Trí, Đức, Thể Nhân Cách người Đối với phong trào thiếu niên, trò chơi lợi khí yếu phương pháp giáo dục, giúp trẻ em rèn luyện phát triển tồn mỹ giác quan chính, làm cho trẻ khéo léo hơn, trí tưởng tượng phong phú Trò chơi giúp trẻ biết quan sát phản ứng nhanh, biết tơn trọng kỷ luật, biết tự chủ, từ nảy nở tình đồng đội, đồn kết thương u 1.1.3 Ích lợi trò chơi - Phản xạ nhanh hơn, tay mắt phối hợp tốt - Luyện giác quan Cải thiện tư duy, tốt cho người làm hay lên kế hoạch, chiến lược - Luyện ý chí ý thức: Hăng say đua tranh để giành chiến thắng Tự chủ, không rụt rè, sợ hãi, khơng bị lơi nhiệt tình bồng bột Chấp hành kỷ luật trò chơi Kiên nhẫn chơi Biết sáng tạo, linh động - Luyện tính tình: Các em trở nên vui vẻ, sôi động Rèn luyện tính đồng đội, biết đồn kết gắn bó với để giành chiến thắng, phát triển khiếu tốt, can đảm, gan dạ, lòng vị tha 1.2 GameEngine Unity3D GameEngine phần mềm viết cho mục đích thiết kế phát triển video game Chức cốt lõi GameEngine phần lớn nằm cơng cụ dựng hình (kết xuất đồ họa) cho hình ảnh chiều (2D) hay chiều (3D), cơng cụ vật lý (hay cơng cụ tính tốn phát va chạm), âm thanh, mã nguồn, hình ảnh động (Animation), trí tuệ nhân tạo, phân luồng, tạo dòng liệu xử lý, quản lý nhớ, dựng ảnh đồ thị, kết nối mạng Các Enginedùng cho làm game có nhiều, kể đến CryEngine, Unreal Engine, Havok Engine, Unity Engine… 1.2.1 Lý chọn UnityEngine Hiện nay, có nhiều Engine như: Cry Engine, Unreal Engine, Source Engine, ID Tech Engine, UnityEngine tên khác RenderWare Engine, Game Bryo Engine Engnie mã nguồn mở: Orge Engine, Panda3D Engnine, jMonkey Engine, Trong Source Engine ID Tech Engine lão làng ngành công nghiệp Game, Cry Engine Unreal Engine hai tân binh đáng ý thành công đáng kể họ năm gần Về mặt đồ họa, Cry Engine đánh giá cao khơng có đối thủ, hình ảnh 3D Cry Engine cho chất lượng chân thực minh chứng qua tựa game Far Cry hay Crysis, Tuy nhiên, Cry Engine kén chọn máy cấu hình thật cao đáp ứng Bên cạnh đó, Unreal Engine cho chất lượng đồ họa không kém, mà không đòi hỏi cấu hình q cao Các hệ máy laptop mua cách 45 năm trở lại đa số dùng Các Engine khác kể tên thay vị trí top 10 sau Cry Engnine Unreal Engine Nếu có tiền, có nhiều kinh nghiệm có nhóm làm việc chuyên nghiệp, lúc ta nên nghĩ tới Cry Engine hay Unreal Engnie Còn muốn sử dụng mã nguồn mở cho tiết kiệm ta phải cần nhiều thời gian sức lực để tìm hiểu Orge Engine hay Panda Engine, Vì lựa chọn sáng giá cho tân binh lĩnh vực làm game, có kinh nghiệm, tiền, khơng muốn phải bỏ q nhiều cơng sức tìm hiểu lại người khác làm UnityEngine Về mặt đồ họa, Unity không so sánh với Cry Engine đủ làm hài lòng người dùng phổ thơng Unity khơng đòi hỏi máy cấu hình cao, thêm Unity đặc biệt ý đến tiện dụng Việc làm game, làm phim sử dụngUnityEngine so với Engine lại dễ dàng nhiều đối tượng mà Unity hướng đến chủ yếu người dùng khơng chun sâu Chúng ta kéo thả, kế thừa, viết Script, tổ chức thành phần, import – export tài nguyên (model, texture, mesh, ) đóng gói đối tượng hồn chỉnh chia sẻ cách dễ dàng với Unity Vấn đề thương mại, Unity cung cấp miễn phí cho người dùng cá nhân cơng ty có thu nhập 100.000 USD Chúng ta tạo ứng dụng, mơ hình, Game cho riêng bán Unity Store mà không lo vấn đề vi phạm quyền Nếu muốn bán sản phẩm Unity Store phải trả 30% hoa hồng Nếu có nhu cầu cao hơn, sử dụng Pro, phải trả 1.500 USD, tương đương khoảng 32 triệu VNĐ với nhiều tính cao cấp tiện dụng Cuối cùng, Unity có cộng đồng rộng lớn thân thiện, với nhiều tài nguyên miễn phí tutorial hướng dẫn cho người bắt đầu học sử dụngUnity Những tài liệu tìm kiếm forum Unity Google.[5] 1.2.2 EngineUnity Hình 1.5 Logo Unity3D Unity3DGame Engine, công cụ thiết kế Game dành cho PC, Mac nhiều hệ máy di động khác + Nhà phát triển: Unity Technologies + Phiên nhất: 5.5f + Được viết ngôn ngữ C++, C# + Phát triển Game cho hệ điều hành: Windows, Mac OS X (tạo đóng gói), Nintendo Wii, iPhone/iPad, Xbox 360, Android, Sony PlayStation (chỉ đóng gói; cần giấy phép bổ sung cho tảng) + Giấy phép: Độc quyền + Website: www.unity3d.com Unity hỗ trợ Just-In-Time Compilation (JIT), sử dụng thư viện mã nguồn mở C++ Mono Bằng việc sử dụng JIT, EngineUnity tận dụng lợi tốc độ biên dịch Ngoài thư viện Mono, Unity tận dụng chức thư viện phần mềm khác vào chức nó, Engine mơ vật lý PhysicX Nvidia, OpenGL DirectX cho kết xuất hình ảnh 3D, OpenAL cho âm Tất thư viện xâydựng thành tính tự động cơng cụ trực quan vào Unity, khơng cần phải lo lắng việc học để sử dụng chúng cách riêng lẻ.Unity có cộng đồng người dùng lớn mạnh, chia sẻ Plugins, cơng cụ họ phần mềm gói bổ sung Sơ lược hình thành phát triển Unity Hình thành: Phần lõi Unity ban đầu viết Joachim Ante vào năm 2001 Sau cơng ty hình thành vào năm 2005 bắt đầu với phiên 1.0 Đến năm 2007, Unity nâng lên phiên 2.0 Unity bắt đầu hỗ trợ iPhone vào năm 2008 Vào tháng 6/2010, Unity thức hỗ trợ Android cho đời phiên 3.0 có hỗ trợ Android vào tháng 9/2010 Có thể thấy tốc độ phát triển Unity nhanh Phiên phiên 5.5 Giải thưởng: Unity đoạt nhiều giải lớn với giải sau: + Năm 2006, Unity đạt "Best Use of Mac OS X Graphics" Apple's WWDC Đây lần công cụ phát triển game đạt chất lượng giải thưởng uy tín đưa + Năm 2009, Unity Technologies có tên "Top cơng ty game năm" Gamasutra tổ chức + Năm 2010, Unity đoạt giải Best Engine Finalist Develop Magazine bình chọn, giải Technology Innovation Award Wall Street Journal thể loại phần mềm Khách hàng: Unity 250.000 người đăng ký sử dụng gồm Bigpoint, Cartoon Network, Coca-Cola, Disney, Electronic Arts, LEGO, Microsoft, NASA, Ubisoft, Warner Bros, hãng phim lớn nhỏ, chuyên gia độc lập, sinh viên người đam mê Sơ nét giao diện Unity Giao diện Unity, giống nhiều mơi trường làm việc khác, layout tùy chỉnh Layout Unity bao gồm nhiều tab khác bật tắt Chúng ta xem xét cách bố trí giao diện Unity điển hình: Hình 1.6 Giao diện Editor Unity3d Như hình thấy có khung khác nhau: Scene – nơi xâydựng trò chơi Hierarchy – danh sách đối tượng cảnh game Inspector – hình cài đặt cho tài nguyên/đối tượng chọn Game– cửa sổ xem trước game, hoạt động chế độ chơi (khi nhấn Play) Project– danh sách tài nguyên project, đóng vai trò thư viện Cửa sổ Scene Hierarchy: Cửa sổ Scene nơi xâydựng toàn đối tượng game Cửa sổ cung cấp nhiều góc nhìn khác nhau, nhìn dạng phối cảnh dạng song song Chúng ta kéo thả đối tượng cửa sổ này, di chuyển, xoay… Hình 1.7 Các nút điều khiển 10 lính tuần dựa theo hai đầu điểm đánh dấu, waypoint1 waypoint2 Nếu khoảng từ lính đến người chơi lớn 5f monster tiếp tục tuần, lớn 2.5f đuổi theo nhân vật, đến khoảng cách nhỏ 2,5f cơng Hình 2.23 Đường lính Hành vi lính quy định sau if (eh.realHealth > 0) { if (distance > 7f) { // khoảng cách lớn 7f Patrol();// tuần enemy.Resume (); }else { enemy.Stop (); if (distance > 2.5f) { Chase ();// đuổi theo }else { 50 Attack();// công } transform.LookAt(player); } } bots mai phục tương tự, với loại AI với lính tuần, khác giữ nguyễn chỗ, người chơi đến gần xuất Hình 2.24 Địa điểm phục kích bot gun Hàm xác định người chơi vào vùng phục kích hay chưa void OnTriggerEnter (Collider col) { if (col.tag == "Player") { Instantiate(effect,enemyInstantPoint.transform.position,enemyInstantPoint.transform.rotation); audio.PlayOneShot(windSound); StartCoroutine(EnemyInstant()); Destroy(enemyInstantPoint,destoryTime); 51 } } 2.4.4 Xâydựng AI cho Boss Boss quái vật mạnh nhất, có sức mạnh, HP cao thủ nhiều Tạo thách thức cho người chơi Giải pháp: Khi phát người chơi đến gần, Boss kích hoạt, cơng người chơi với skill void OnTriggerEnter (Collider other) { if (other.tag == "Player") { ba.enabled = true;// kích hoạt AI boss col.enabled = false; } } } Sau kích hoạt AI, Boss bắt đầu công người chơi Hp người chơi tụt if (ph.realHealth > 0) { if (distance > 5) { boss.SetBool("Walk",true); boss.SetBool ("Skill1",false); boss.SetBool ("Skill2",false); boss.SetBool ("Skill3",false); } else { 52 boss.SetBool("Walk",false); if (distance > 2.5) { boss.SetBool("Skill1",true); boss.SetBool("Skill2",false); boss.SetBool("Skill3",false); } if (distance 0.5) { boss.SetBool ("Skill2",true); boss.SetBool("Skill3",false); boss.SetBool("Skill1",false); } if (distance