Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
3,06 MB
Nội dung
TRƢỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN TRỌNG TUYẾN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đồ án: LẬP TRÌNH GAME ĐA NỀN TẢNG VỚI UNITY Nghệ An, tháng năm 2017 TRƢỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đồ án: LẬP TRÌNH GAME ĐA NỀN TẢNG VỚI UNITY Sinh viên thực hiện: Nguyễn Trọng Tuyến Mã số sinh viên: 1251071602 Lớp: 53K1 - CNTT Giáo viên hướng dẫn: ThS Lê Văn Thành Nghệ An, tháng năm 2017 Đồ án tốt nghiệp Đại học LỜI CẢM ƠN Trong khoảng thời gian học tập rèn luyện trƣờng Đại học Vinh, em xin chân thành cảm ơn tất thầy trƣờng nói chung Khoa Cơng nghệ thơng tin nói riêng tận tình giảng dạy, hƣớng dẫn, truyền đạt kiến thức, kinh nghiệm quý báu cho em Với kiến thức đó, em thực tự tin trở thành Kỹ sƣ Công nghệ thông tin Đặc biệt, em xin gửi lời cảm ơn chân thành tới thầy giáo ThS Lê Văn Thành, ngƣời tận tình hƣớng dẫn, định hƣớng, giúp đỡ truyền đạt kinh nghiệm, phƣơng pháp nghiên cứu khoa học cho em suốt trình thực đồ án tốt nghiệp Tuy nhiên, thực thời gian ngắn nhƣ kiến thức em c n có nhiều hạn chế nên đồ án cịn có nhiều sai sót Em mong nhận đƣợc quan tâm góp ý quý thầy cô bạn Xin chân thành cảm ơn! Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT i Đồ án tốt nghiệp Đại học MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii LỜI MỞ ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ GAME ENGINE 1.1 Khái niệm Game Engine 1.2 Mục đích 1.3 Xu hƣớng 1.4 Phần mềm trung gian 1.5 Một số Game Engine tiếng CHƢƠNG 2: UNITY ENGINE 2.1 Giới thiệu chung 2.2 Lí nên chọn Unity để phát triển game 2.3 Các thành phần Unity 2.3.1 Các khái niệm Unity 2.3.2 Giao diện Unity Editor 14 CHƢƠNG 3: LẬP TRÌNH TRỊ CHƠI GOKURUN 18 BẰNG ENGINE UNITY 18 3.1 Ý tƣởng 18 3.2 Các bƣớc tiến hành 19 3.2.1 Diễn hoạt (animation) 19 3.2.2 Tạo animation theo kỹ thuật Key Frame 20 3.2.3 Đạo diễn hoạt họa(Animator) 22 3.2.4 Giao diện 24 3.2.5: Thành phần vật lý 26 3.2.6 Thành phần xử lý va chạm 27 3.2.7 Xử lý va chạm 29 3.2.8 Âm Unity 30 Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT ii Đồ án tốt nghiệp Đại học 3.2.9 Cơ sở liệu Unity 32 3.2.10 Build game 34 CHƢƠNG 4: GIỚI THIỆU GAME DEMO - GAME GOKURUN 36 4.1 Giao diện chơi 36 4.2 Hƣớng dẫn chơi game 38 KẾT LUẬN 40 Những vấn đề đạt đƣợc 40 Hạn chế 40 Hƣớng phát triển 40 TÀI LIỆU THAM KHẢO 41 Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT iii Đồ án tốt nghiệp Đại học LỜI MỞ ĐẦU Trong thời đại công nghệ thông tin nhƣ nay, sản phẩm công nghệ ngày chịu đánh giá khắt khe từ phía ngƣời dùng, đặc biệt sản phẩm Game đƣợc nhận nhiều đánh giá từ phía Game thủ, ngƣời chơi bình thƣờng Ngành cơng nghiệp Game nói bùng nổ, với tốc độ phát triển đến chóng mặt, nhiều Game hay hấp dẫn đƣợc đời thời gian qua Phía sau Game phát triển tiếng nhƣ có Game Engine (công cụ) Game Engine công cụ hỗ trợ giúp ngƣời phát triển viết Game cách nhanh chóng đơn giản, đồng thời cung cấp khả tái sử dụng tài nguyên mã nguồn cao phát triển nhiều Game từ Game Engine Tại Việt Nam, ngành công nghiệp Game phát triển đa số chủ yếu phát hành Game Các công ty đa số nhen nhóm dự án nhỏ hấp dẫn gây nên khơng thất vọng từ Game thủ ủng hộ Game nƣớc nhà Từ xu hƣớng phát triển bất cập trên, đồ án khảo sát nghiên cứu Engine Unity - Game Engine phổ biến không mạnh mẽ nhằm thực nghiệm việc phát triển tr chơi Chuẩn bị kiến thức kỹ cho định hƣớng nghề nghiệp (phát triển Game) sau em, góp phần vào phát triển ngành cơng nghiệp Game nƣớc nhà Nghệ An, tháng năm 2017 Sinh viên thực Nguyễn Trọng Tuyến Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT Đồ án tốt nghiệp Đại học CHƢƠNG I TỔNG QUAN VỀ GAME ENGINE 1.1 Khái niệm Game Engine Một Game Engine (hay công cụ tạo Game / động Game) phần mềm đƣợc viết cho mục đích thiết kế phát triển video Game Có nhiều loại Game Engine dùng để thiết kế Game cho hệ máy nhƣ hệ Consoles hay máy tính cá nhân (PC) Chức cốt lõi Game Engine 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 Quá trình phát triển Game tiết kiệm đƣợc nhiều thời gian kinh phí vào việc tái sử dụng tái thích ứng Engine để tạo nhiều Game khác 1.2 Mục đích Thuật ngữ Game Engine xuất lần đầu vào năm 90, với tốc độ phát triển cơng nghệ nhanh đến chóng mặt, nhiều Game Engine đời cho nhiều mục đích khác nhau, khơng cịn giới hạn cho giải trí đơn mà cịn cho mục đích khác nhƣ Mô phỏng, huấn luyện ảo, y tế ảo, mô ứng dụng quân sự,… Game Engine cung cấp công cụ phát triển trực quan tái sử dụng thành phần Nói chung cơng cụ cung cấp mơi trƣờng phát triển tích hợp đƣợc đơn giản hóa Phát triển ứng dụng nhanh (Rapid Application Development) cho Game theo cách lập trình hƣớng liệu Những Game Engine c n đƣợc gọi "phần mềm trung gian cho Game" (Game Middleware), nhƣ ý nghĩa thuật ngữ, chúng cung cấp tảng phần mềm linh hoạt dễ dàng sử dụng lại với chức cốt lõi cần thiết để phát triển ứng dụng Game đồng thời giảm giá thành, độ phức tạp, kịp thời hạn phát hành - tất yếu tố quan trọng ngành công nghiệp Game đầy cạnh tranh Giống nhƣ phần mềm trung gian khác, Game Engine thƣờng cung cấp tảng trừu tƣợng hóa, cho phép Game chạy nhiều hệ máy bao gồm hệ console máy tính cá nhân với vài thay đổi (nếu cần) mã nguồn Game Thơng thƣờng, phần mềm trung gian cho Game đƣợc thiết kế với tảng kiến trúc dựa thành phần khác, cho phép hệ thống khác Engine thay mở rộng với phần mềm trung gian khác chuyên Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT Đồ án tốt nghiệp Đại học biệt nhƣ Havok cho hệ thống vật lý Game, Miles Sound System cho âm thanh, hay Bink cho đoạn video Game engine cung cấp công cụ phát triển trực quan tái sử dụng thành phần Nói chung cơng cụ cung cấp mơi trƣờng phát triển tích hợp đƣợc đơn giản hóa Phát triển ứng dụng nhanh (tiếng Anh:rapid application development) cho game theo cách lập trình hƣớng liệu Những game engine c n đƣợc gọi "phần mềm trung gian cho game"(game middleware), nhƣ ý nghĩa thật ngữ, chúng cung cấp tảng phần mềm linh hoạt dễ dàng sử dụng lại với chức cốt lõi cần thiết để phát triển ứng dụng game đồng thời giảm giá thành, độ phức tạp, kịp thời hạn phát hành- tất yếu tố quan trọng ngành công nghiệp game đầy cạnh tranh 1.3 Xu hƣớng Với công nghệ tạo Game Engine phát triển trở nên thân thiện với ngƣời sử dụng, ứng dụng đƣợc mở rộng, đƣợc sử dụng để tạo Game mang mục đích khác với giải trí đơn nhƣ: mô phỏng, huấn luyện ảo, y tế ảo, mô ứng dụng quân Nhiều Game Engine đƣợc tạo ngôn ngữ lập trình cấp cao nhƣ Java C# hay NET (ví dụ: TorqueX, Visual3D.NET) hay Python (Panda3D) Vì hầu hết Game 3D có giới hạn cho GPU (giới hạn sức mạnh card đồ họa), khả gây chậm máy ngôn ngữ lập trình cấp cao trở nên khơng đáng kể, việc tăng suất đƣợc cung cấp ngơn ngữ lại có lợi cho nhà phát triển Game Engine Thêm vào đó, nhiều game engine đƣợc tạo ngơn ngữ lập trình cấp cao nhƣ Java C# hay NET (ví dụ TorqueX, Visual3D.NET) hay Python (Panda3D) Vì hầu hết game 3D có giới hạn cho GPU(giới hạn sức mạnh card đồ họa), khả gây chậm máy ngơn ngữ lập trình cấp cao trở nên không đáng kể, việc tăng suất đƣợc cung cấp ngôn ngữ lại có lợi cho nhà phát triển game engine Những xu hƣớng gần đƣợc thúc đẩy hãng nhƣ Microsoft để hỗ trợ nhà phát triển game độc lập Microsoft phát triển XNA (Microsoft XNA) nhƣ gói phần mềm phát triển (SDK) cho tất game hệ máy Xbox sản phẩm liên quan Nó bao gồm kênh thiết kế XBox Live Indie Games đặc biệt cho nhà phát triển nhỏ khơng có nguồn lực mở rộng cần thiết để đóng gói game để bán giá bán lẻ Việc Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT Đồ án tốt nghiệp Đại học trở nên dễ dàng rẻ hết để phát triển game đa hệ máy có hỗ trợ managed frameworks Game engine đại ứng dụng đƣợc viết (bằng ngôn ngữ lập trình) phức tạp nhất, thƣờng xun phải có nhiều tinh chỉnh hệ thống để đảm bảo kiểm soát xác trải nghiệm ngƣời dùng Sự phát triển liên tục game engine tạo phân chia mạnh mẽ dựng hình, kịch bản, thiết kế hình ảnh, thiết kế cấp độ(các chơi ) Bây thông thƣờng là: đội ngũ phát triển game điển hình phải có số lƣợng họa sĩ gấp vài lần số lƣợng lập trình viên Mặc dù thuật ngữ lần đầu đƣợc sử dụng vào năm 90, nhƣng có vài hệ thống trƣớc thập niên 80 đƣợc coi nhƣ game engine, nhƣ AGI SCI Sierra, SCUMM LucasArts Freescape engine Incentive Software Không nhƣ hầu hết game engine ngày nay, engine chƣa đƣợc sử dụng hãng thứ nào(trừ trƣờng hợp thống SCUMM đƣợc cấp phép sử dụng Humongous Entertainment) 1.4 Phần mềm trung gian Một số hãng chuyên tập trung vào phát triển phần mềm gọi phần mềm trung gian (middleware) Các nhà phát triển middleware cố gắng "tái phát minh bánh xe" cách phát triển phần mềm mạnh mẽ (là khả hệ thống máy tính để đối phó với lỗi thực để tiếp tục hoạt động bất chấp bất thƣờng đầu vào, tính tốn) mà bao gồm hầu hết yếu tố nhà phát triển game cần đến để xây dựng game Phần lớn chƣơng trình phần mềm trung gian cung cấp sở để phát triển cách dễ dàng, nhƣ hình ảnh, âm thanh, hệ thống vật lý chức AI Gamebryo RenderWare hai phần mềm trung gian đƣợc sử dụng rộng rãi Một số middleware làm chức nhƣng c n hiệu tồn engine Ví dụ, SpeedTree đƣợc sử dụng để dựng hình ảnh cối thêm thực tế game nhập vai: The Elder Scrolls IV: Oblivion Bốn gói phần mềm trung gian đƣợc sử dụng rộng rãi mà cung cấp chức hệ thống gồm có Bink hãng RAD Game Tools, hãng Firelight với FMOD, Havok, GFx Scaleform RAD Game Tools phát triển Bink cho dựng hình video bản, với âm Miles, dựng hình 3D Granny FMOD Firelight thƣ viện công cụ phần mềm âm mạnh mẽ giá rẻ Havok cung cấp hệ thống mô vật lý mạnh, với phần mềm hình ảnh động mơ hành vi Scaleform đem lại GFx dùng cho biểu diễn cao Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT Đồ án tốt nghiệp Đại học cấp giao diện Flash, với giải pháp trình chiếu video chất lƣợng cao, Input Method Editor (IME) phần bổ sung nhằm hỗ trợ tr chuyện game ngôn ngữ châu Á Một số middleware bao gồm toàn mã nguồn nó, số khác cung cấp giao diện lập trình ứng dụng dùng để tham khảo nhƣ thƣ viện mã nhị phân Mặt khác số đƣợc cấp phép, thƣờng phải trả giá cao cho toàn mã nguồn 1.5 Một số Game Engine tiếng Nếu gõ từ khóa Top 5/10 Game Engine tìm kiếm thấy nhiều bảng tống khác nhau, thực Game Engine tồn phát triển đƣợc phải mạnh tiêu chí khác Một số Game Engine phục vụ xây dựng ứng dụng đa tảng, số dành cho Mobile, số cho HTML5,… chí số giúp bạn tạo game riêng khơng cần phải thơng qua lập trình mà đơn dùng kéo thả Em xin đƣa số Game Engine tiếng nhƣ: Unreal Engine, Unity3D, CryEngine, GameMaker, Construct, PlayCanvas, Godot, Cocos 2D Hình 1.1: Một số Game Engine tiếng Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT Đồ án tốt nghiệp Đại học - Linear Drag: Hệ số ma sát vật chuyển động kéo - Angular Drag: Hệ số ma sát vật chuyển động quay - Gravity Scale: giống nhƣ hệ số G vật lý (~ 9.81), ảnh hƣởng lực hút trái đất Ta đặt = 0, tức không ảnh hƣởng lực hút trái đất - Trong Body type có lựa chọn: + Is Kinematic: loại bỏ tác dụng vật lý khỏi đối tƣợng, thƣờng sử dụng với đối tƣợng nhƣ tƣờng, + Dynamic: đối tƣợng chịu tác động vật lý bình thƣờng - Fixed Angle: Đối tƣợng ln nằm góc cố định Khơng thay đổi tƣơng tác vật lý Trong tr chơi chúng ta, nhân vật goku đƣợc gắn với Regibody2d, chịu tác động vật lý trọng lực, lực có độ lớn định, tác động theo phƣơng thẳng đứng If (Input.GetMouseButtonDown(0)) { obj.GetComponent().AddForce(new Vector2(0,flyPower)); } 3.2.6 Thành phần xử lý va chạm Trong tr chơi, đối tƣợng có va chạm, ví dụ nhƣ nhân vật bắn súng, đạn bay va chạm vs kẻ địch,… gọi kiện tƣơng tác đối tƣợng Trong unity, có khái niệm Collider (thành phần xử lí va chạm) Collider đƣợc dùng để bắt kiện tƣơng tác nhân vật Ở Hierarchy, chọn đối tƣợng cần thêm, menu chọn Add Component/Physics 2D/Circle Collider 2D Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 27 Đồ án tốt nghiệp Đại học Hình 3.13 Thêm thành phần xử lý va chạm Ta có dạng Collider 2D nhƣ sau: - Circle Collider 2D: khung va chạm dạng hình tr n - Box Collider 2D: khung va chạm hình chữ nhật - Egle Collider 2D: khung va chạm đƣờng thẳng - Polygon Collider 2D: khung va chạm hình đa giác Khung va chạm tự động ăn khớp với hình dạng nhân vật Sau thêm Collider 2D, bên vùng Inspector có thêm Component nhƣ ảnh 3.14 Ta cần lƣu ý thuộc tính nó: - Material: Vật liệu khung va chạm - Is Trigger: khung va chạm dùng để bắt kiện va chạm không bị tác động đối tƣợng Vật lý Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 28 Đồ án tốt nghiệp Đại học Hình 3.14 Component xử lí va chạm dược thêm vào 3.2.7 Xử lý va chạm Trong unity, có số loại va chạm sau: Ontrigger va chạm xảy đối tƣợng trigger Nhƣ vậy, vật xuyên qua Cụ thể tr chơi gukurun, nhân vật xuyên qua khoảng trống cột, điểm số đƣợc cộng Còn va chạm xảy giữ cột đối tƣợng đƣợc gắn tag “ResetWall” cột đƣợc cộng thêm vào vị trí (x,y,0) void OnTriggerEnter2D(Collider2D other) { if (!other.gameObject.tag.Equals("ResetWall")) { Debug.Log("va cham voi boxcolider cua cot: + diem"); } else { obj.transform.position = new Vector3(oldposition, Random.Range(minY, maxY + 1), 0); } } OnCollision va chạm xảy đối tƣợng trigger Nhƣ vậy, đối tƣợng xuyên qua Trong tr chơi chúng ta, nhân vật goku Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 29 Đồ án tốt nghiệp Đại học va chạm với đối tƣợng đƣợc gắn tag “race” khơng có chuyện xảy ra, ngƣợc lại, nhân vật bị chết, tr chơi kết thúc //oncollision sd va chạm xảy k có đtƣợng trigger void OnCollisionEnter2D(Collision2D other) { if (!other.gameObject.tag.Equals("Race")) { EndGame(); } else { Debug.Log("va cham race"); } 3.2.8 Âm Unity Âm yếu tố không phần quan trọng ứng dụng game Thật nhàm chán cảnh đánh đánh nhau, bắn hay hiệu ứng đẹp mắt mà khơng có âm Âm chiều làm cho game thực sống động Để chơi đƣợc file âm Unity có cách: code giao diện Dù chọn cách trƣớc hết phải có sẵn file âm import vào project Sau import âm vào project, file hợp lệ thấy nhƣ hình sau nhấn nút play để nghe thử Hình 3.15 Thông tin file âm Cách 1: Tạo giao diện Trên menu Unity, vào GameObject/Create Empty Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 30 Đồ án tốt nghiệp Đại học Chọn đối tƣợng vừa tạo gắn thành phần “AudioSource” cho đối tƣợng AudioSource đối tƣợng âm Muốn Play hay Stop, thay đổi cách lặp, tăng giảm volume nhạc phải thơng qua đối tƣợng Hình 3.16 Thêm thành phần Audio Source Sau gắn thành phần âm cho đối tƣợng vừa tạo, dễ dàng chỉnh sửa thông số gán file âm cho thành phần AudioSource Hình 3.17 Thêm file âm cho thành phần AudioSource Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 31 Đồ án tốt nghiệp Đại học Nếu thực xong bƣớc trên, chạy game để nghe thử Việc tạo đối tƣợng âm giao diện đơn giản, nhƣng để áp dụng vào cho game khơng đƣợc linh hoạt cách sử dụng script Cách 2: Cách chơi nhạc code Trƣớc tiên cần import file âm vào project trƣớc Khởi tạo đối tƣợng game âm AudioSource nhƣ sau: public AudioClip jumpclip; public AudioClip gameoverclip; private AudioSource audiosource; void Start() { obj = gameObject; audiosource = obj.GetComponent(); //trả component có tên AudioSource GameObject audiosource.clip = jumpclip; } Gán đƣờng dẫn file nhạc cho âm thanh: audioSource.clip= (AudioClip)Resources.Load("TenFile"); Sau cần gọi phƣơng thức Play() để chạy file âm thanh: //play nhạc lần audioSource.PlayOneShot(); //play nhạc lặp lặp lại audioSource.loop = true; audioSource.Play(); //stop chơi nhạc audioSource.Stop(); 3.2.9 Cơ sở liệu Unity Trong Unity, Có nhiều cách lƣu trữ liệu nhƣ SQLite, List, Array, PlayerPrefs, Dictionary Tùy mục đích sử dụng mà ta chọn kiểu lƣu trữ phù hợp Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 32 Đồ án tốt nghiệp Đại học Trong tr chơi Gokurun chúng ta, cần sử dụng liệu nhỏ nên cần sử dụng liệu dạng PlayerPrefs để lƣu liệu ngƣời chơi Dữ liệu ngƣời chơi bao gồm điểm số cao nhất, tên ngƣời chơi có điểm số cao Nơi lƣu trữ liệu PlayerPrefs tảng khác nhau: Mac OS: Thƣ mục ~/Library/Preferences tập tin unity.[company name].[product name].plist Windows: Lƣu trữ registry dƣới đƣờng dẫn HKCU\Software\[company name]\[product name] Linux: Lƣu trữ đƣờng dẫn ~/.config/unity3d/[CompanyName]/[product name] Windows Store Apps: %userprofile%\AppData\Local\Packages\[ProductPackageId]>\LocalStat e\playerprefs.dat WebPlayer: PlayerPrefs đƣợc lƣu trữ tệp tin nhị phân với đƣờng dẫn: o Mac OS X: ~/Library/Preferences/Unity/WebPlayerPrefs/ o Windows: %APPDATA%\Unity\WebPlayerPrefs/ Hình 3.18 Dữ liệu dạng điểm cao tên người chơi lưu môi trường Windows Trên hình ảnh Dữ liệu dạng điểm cao tên ngƣời chơi đƣợc lƣu môi trƣờng windows Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 33 Đồ án tốt nghiệp Đại học Trong project này, sử dụng PlayerPrefs, để sử dụng PlayerPrefs, sử dụng code sau: Lƣu thông tin: //lƣu tên ngƣời chơi PlayerPrefs.SetString ("playername", playername); //lƣu điểm ngƣời chơi PlayerPrefs.SetInt ("bestscore", score); PlayerPrefs hỗ trợ lƣu trữ ba kiểu liệu bản: Int, Float, String Tƣơng ứng với ba phƣơng thức SetInt, SetFloat, SetString Cả ba phƣơng thức nhận vào hai tham số tham số tên đại điện cho giá trị đƣợc lƣu trữ tham số lại nội dung cần lƣu trữ Cần ghi nhớ key để ta lấy lại đƣợc nội dung lƣu trữ sau Lấy thông tin: Sau sử dụng PlayerPrefs để lƣu trữ thông tin, ta sử phƣơng thức GetInt, GetFloat, GetString để truy xuất nội dụng lƣu trữ lúc Cũng giống nhƣ phƣơng thức Set trên, dùng phƣơng thức Get ta phải lựa chọn hàm tƣơng ứng với kiểu liệu ghi trƣớc Các hàm Get(X) nhận vào tham số tên key có kiểu trả X (với X Int, Float String) //lấy điểm ngƣời chơi txtScore.text = "Score:" + PlayerPrefs.GetInt("bestscore"); //lấy tên ngƣời chơi txtplay.text ="Name:"+ PlayerPrefs.GetString("playername"); 3.2.10 Build game Để tiến hành Build game, ta vào File/Build Setting Ở Platform phía bên trái có danh sách tàng mà Unity hỗ trợ Ở đây, ta ví dụ sử dụng tảng PC, Mac & Linux Standalone Sau chọn tảng, ta việc ấn nút Build chọn nơi lƣu trữ để xuất game Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 34 Đồ án tốt nghiệp Đại học Ảnh 3.19 Ấn vào nút Build để xuất game Chọn vị trí đặt tên cho tập tin game Ảnh 3.20 Lưu game đặt tên cho game Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 35 Đồ án tốt nghiệp Đại học CHƢƠNG GIỚI THIỆU GAME DEMO - GAME GOKURUN 4.1 Giao diện chơi + Màn bắt đầu Hinh 4.1 Màn hình bắt đầu + Nếu nhấp vào Menu, hình setting lên, cho phép ngƣời chơi chọn mức chơi Hình 4.2 Màn hình Setting Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 36 Đồ án tốt nghiệp Đại học + Sau chọn nút OK bắt đầu chọn mức chơi hình setting, hình game ra: Hình 4.3 Màn hình trò chơi Nhiệm vụ vƣợt qua chƣớng ngại vật bắng cách nhấp chuột (nếu chơi máy tính) chạm vào hình (đối vs điện thoại) + Nếu nhân vật goku chết, hình game over lên: Hình 4.4 Màn hình kết thúc game Nếu chọn nút Play, chơi lại từ đầu, chọn nút Menu, quay trở hình Setting, Exit muốn thoát hẳn tr chơi Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 37 Đồ án tốt nghiệp Đại học + Nếu bạn chơi Game đạt đƣợc điểm cao nhất, hình lên cho phép bạn nhập tên lƣu lại: Hình 4.5 Màn hình lưu điểm số cao 4.2 Hƣớng dẫn chơi game HÌNH ẢNH Ý NGHĨA STT TÊN CÁC NÚT Play Vào chơi Menu Vào hình lựa chọn cấp độ chơi Easy Cấp độ chơi dễ Medium Hard Cấp độ chơi khó Save Lƣu điểm số Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT Cấp độ chơi trung bình 38 Đồ án tốt nghiệp Đại học Exit Thốt game Tr chơi sử dụng chuột bàn phím để điều khiển Do lập trình nên sử dụng chuột trái nút space để chơi Mỗi lần nhấp chuột trái nút space, nhân vật goku di chuyển theo phƣơng thẳng đứng khoảng Sau lần vƣợt qa chƣớng ngại vật, đƣợc cộng điểm, số điểm đƣợc hình Ngồi , hình cịn có nút tạm dừng tắt tiếng bên góc hình Hình 4.6 Giao diện chơi game Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 39 Đồ án tốt nghiệp Đại học KẾT LUẬN Những vấn đề đạt đƣợc Qua đề tài này, em rút đƣợc cho nhiều kinh nghiệm bổ ích: + Biết đƣợc nguồn gốc đời tr chơi, engine game nói chung sử dụng thành thạo unity nói riêng + Q trình bƣớc để sản xuất tr chơi, ứng dụng, sau build tác khác đƣa lên cửa hàng ứng dụng google apple, facebook,… + Hiểu xử lý đƣợc số lỗi gặp game + Áp dụng đƣợc hầu hết kỹ thuật thƣờng đƣợc sử dụng game nói chung nhƣ: Collision Dectection, Ray Castting, Trigger,… + Nắm đƣợc kỹ thuật xây dựng môi trƣờng, nhân vật Hạn chế + Chƣa khai thác đƣợc hết khả thiết kế Unity nhƣ phần mềm hỗ trợ + Các kỹ thuật dựng hình tân tiến chuyên nghiệp chƣa đƣợc tận dụng tối đa + Khả tối ƣa hóa tài nguyên đồ họa (mơ hình, vật liệu,…) chƣa tốt + Nhìn chung đồ họa chƣa bắt kịp tr chơi đại thiếu nhân lực phƣơng tiện kỹ thuật Hƣớng phát triển Qua trình nghiên cứu, phát triển đồ án, em xây dựng đƣợc cho tảng tốt tiếp thu đƣợc lƣợng hiểu biết phong phú quy trình kỹ thuật phát triển tr chơi với kết cuối Game Demo ngắn chứng minh trình Em mong muốn có dự định xây dựng thêm nội dung tr chơi phát hành trực tuyến dƣới dạng Demo miễn phí tới cộng đồng game thủ Việt Nam tháng 7/2017 nhằm tiếp thu ý kiến từ cộng đồng để rút kinh nghiệm xây dựng cho tảng vững đƣờng học tập làm việc sau Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 40 Đồ án tốt nghiệp Đại học TÀI LIỆU THAM KHẢO [1] [2] http://en.wikipedia.org/wiki/First-person_shooter Will Goldstone , Unity Game Development Essentials, 316 trang [3] [4] http://www.unity3dstudent.com/ http://unity3d.com/unity/engine/ [5] http://unity3d.com/unity/engine/rendering [6] [7] http://unity3d.com/unity/engine/lighting http://unity3d.com/unity/engine/terrains [8] [9] http://unity3d.com/unity/engine/substances http://unity3d.com/unity/engine/physics [10] http://unity3d.com/unity/engine/pathfinding [11] http://unity3d.com/unity/engine/audio [12] http://unity3d.com/unity/engine/programming [13] http://unity3d.com/unity/engine/networking [14] http://unity3d.com/support/documentation/ScriptReference/ Nguyễn Trọng Tuyến - Lớp 53K1 - CNTT 41 ... Hình 2.3: Unity hỗ trợ đa tảng (23 tảng) tiếp tục tăng - Dễ sử dụng, với Lập trình viên nghiệp dƣ, Unity đƣợc xây dựng mơi trƣờng phát triển tích hợp, cung cấp hệ thống tồn diện cho lập trình viên,... Unity Game Development Essentials, 316 trang [3] [4] http://www .unity3 dstudent.com/ http:/ /unity3 d.com /unity/ engine/ [5] http:/ /unity3 d.com /unity/ engine/rendering [6] [7] http:/ /unity3 d.com /unity/ engine/lighting... http:/ /unity3 d.com /unity/ engine/terrains [8] [9] http:/ /unity3 d.com /unity/ engine/substances http:/ /unity3 d.com /unity/ engine/physics [10] http:/ /unity3 d.com /unity/ engine/pathfinding [11] http:/ /unity3 d.com /unity/ engine/audio