Tài liệu tham khảo báo cáo môn công nghệ phần mềm của trường đại học Công Nghệ TPHCM. Tài liệu tham khảo báo cáo môn công nghệ phần mềm của trường đại học Công Nghệ TPHCM. Tài liệu tham khảo báo cáo môn công nghệ phần mềm của trường đại học Công Nghệ TPHCM.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM
BÁO CÁO CHUYÊN ĐỀ CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI: LẬP TRÌNH GAME TRÊN NỀN TẢNG UNITY
Khoa: Công Nghệ Thông Tin
Môn môn học: Công Nghệ Phần Mềm
Giảng viên hướng dẫn : ThS.Dương Thành Phết
Sinh viên thực hiện : - MSSV: 1511
Sinh viên thực hiện : - MSSV: 1511
Sinh viên thực hiện : - MSSV: 1511
Lớp : 15DTH01
TP.Hồ Chí Minh …./…./2017
Trang 2LỜI CẢM ƠN
Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, chúng em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè Với lòng biết ơn sâusắc:
Chúng con xin chân thành biết ơn cha mẹ cùng anh chị đã tạo điều kiện về vật chất và tinh thần để chúng con có thể tập trung học tập và hoàn thành đề tài này
Chúng em chân thành cảm ơn quý thầy cô trường Đại Học Cộng Nghệ TP.HCM đã dạy
dỗ, dìu dắt, truyền đạt nhiều kiến thức, kinh nghiệm quý báu
Đặc biệt với lòng biết ơn sâu sắc nhất chúng em xin gửi lời cảm ơn Thầy Dương Thành Phết là giảng viên trực tiếp hướng dẫn giúp đỡ chúng em trong quá trình thực hiện đề tài Chuyên đề 1 Công Nghệ Phần Mềm
Trong thời gian nghiên cứu cũng như trong quá trình làm báo cáo đề tài, không tránh khỏithiếu sót Chúng em rất mong nhận được sự góp ý quý báu của quý Thầy Cô, anh chị và các bạn
Xin chân thành cảm ơn!!!
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
TP.HCM, Ngày……Tháng……Năm 2016
Chữ ký giảng viên
Trang 4MỤC LỤC
Bìa 1
Lời cảm ơn 2
Nhận xét của giảng viên hướng dẫn 3
Mục lục 4
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 6
1 Giới thiệu đề tài và mô tả đề tài 6
1.1 Giới thiệu đề tài 6
1.2 Mô tả đề tài 6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ PHÂN TÍCH THIẾT KẾ CƠ SỠ DỮ LIỆU 7
1 Giới thiệu về ngôn ngữ C# 7
2 Các công cụ sử dụng 7
2.1 Unity 2017.1.1P3 7
2.1.1 Ưu điểm và nhược điểm 9
2.2 MonoDevelop-Unity 10
2.3 CorelDRAW & Photoshop Cs6 11
3 Các sơ đồ 15
Trang 52.1 Màn hình chính 19
2.2 Màn hình chọn nhân vật 20
2.2.1 Các nhân vật 21
2.3 Màn hình chọn độ khó 22
2.4 Màn hình bắt đầu 23
2.5 Màn hình trợ giúp 24
2.6 Màn hình giới thiệu 25
2.7 Màn hình kết thúc 26
CHƯƠNG 4: KẾT LUẬN 27
1 Kết quả đạt được 27
2 Đánh giá .27
2.1 Những điểm làm được 27
2.2 Những điểm chưa làm được 27
3 Hướng phát triển 28
CHƯƠNG 5: TÀI LIỆU THAM KHẢO 29
Trang 6CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1 Giới thiệu ý tưởng và nội dung game
1.1 Giới thiệu ý tưởng
-Là một game dạng vượt chướng ngại vật nhưng Pets escape có vẻ không dễ dàng cho người chơi đòi hỏi người chơi thật nhanh nhạy và tinh mắt để tìm ra nơi di chuyển
mà mình không gặp những chướng ngại vật phía trước
-Tuy vậy nhưng đây có thể là một game được nhiều người yêu thích bởi nó thử thách người chơi từ những thử thách đơn giản, nhẹ nhàng đến khó khăn và phức tạp hơn
-Người chơi chỉ có duy nhất một mạng để vượt qua tất cả các thử thách của trò chơi này nên chỉ có duy nhật một cơ hội để thử thách bản thân và phải thật thận trọng trong từng bước di chuyển của mình để vượt qua tất cả các chướng ngại vật vì càng ngày chướng ngại vật càng nhiều và càng khó và chỉ khi vượt qua màn chơi này người chơi mới được đi đến màn chơi kế tiếp, Pets escape đòi hỏi người chơi cần phải tập trung hết sức để đi đến màn cuối cùng của game
1.2 Nội dung game
Như chúng ta đã biết trước đây thú cưng như chó mèo chủ yếu là các con động vậthoang, một số may mắn hơn thì được chủ đem về nuôi nhưng hiện nay chó mèo là một trong những con vật được yêu thương bậc nhất và ngày càng phổ biến ở Việt Nam
Nhưng từ khoảng 10 năm trở lại đây hiện tượng trộm cướp chó, mèo ngày cũng trở nên nhiều cho dù là các loài bình thường hay đến những loài mắc tiền chúng đều không tha
Do ngày càng nhiều đồng loại của chúng bị bắt thì càng ngày chúng càng thông minh hơn và để bảo vệ an toàn cho chính bản thân và đồng loại mình ,các loài thú cưng
Trang 7CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ PHÂN TÍCH
THIẾT KẾ CƠ SỠ DỮ LIỆU
1 Giới thiệu về ngôn ngữ C#
C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java
C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC
C# theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất đến.NET Framework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh mẽ vào
Framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn như class, delegate, interface, exception, v.v, phản ánh rõ ràng những đặc trưng của.NET runtime
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối tượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách tham chiếu
Các đối tượng không thể được giải phóng tường minh
Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstract interfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi
C# thì an-toàn-kiểu (typesafe) hơn C++
Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]")
Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)
Trang 8LightWave…) sau đó chỉ việc import nó vào trong Unity với định dạng của tập tin là
*.FBX hay *.dae, *.3DS, *.dxf và *.obj, nhưng định dạng *.FBX hay được dùng vì được tối ưu hóa hơn, còn dùng các định dạng khác ngoài FBX thì phải cài phần mền thiết kế character tưng ứng thì mới dùng được (tức là dùng Maya có định dạng *.mb, *.ma thì muốn dùng được phải cài Maya)
Trang 9Ngoài ra khi bạn design được một game thì bạn có thể xuất được ra một file.exe và
có thể chạy và chơi được trên PC khác
Một thế mạnh nữa của Unity là bạn có thể chạy demo game của bạn ngay trongkhidesign, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử các modulGame
Unity3D có 2 loại phiên bản, một cho người dùng free, và một phiên bản pro thì mất phí
Khi tải Unity về các bạn cài đặt bình thường, đến khi kết thúc cài đặt nền các bạn chọn phiên bản Pro thì cần phải mua, còn nếu là người dùng free thì các bạn chọn kích hoạt qua web, chỉ cần có kết nối mạng internet, sau đó chọn cài đặt thủ công và nhập mail, chọn free là bạn có thể sử dụng một bản Unity free
Unity hỗ trợ 3 ngôn ngữ phát triển chính là C#, UnityScript (dựa trên Javascript)
và Boo Boo là ngôn ngữ ít được sử dụng nhất và thường được khuyên không nên dùng C# là ngôn ngữ được dùng phổ biến nhất trong cộng đồng Unity với rất nhiều plugin và
ví dụ sử dụng ngôn ngữ này Bạn có thể cân nhắc sử dụng Unityscript tuy nhiên có thể bạn sẽ gặp vấn đề khi tương tác với một số plugin được viết bằng C#
2.1.1 Ưu điểm và nhược điểm
• Ưu điểm:
Unity có rất nhiều tính năng tuyệt vời:
- Unity có một cồng đồng rất lớn về asset và plugin – trong đó có rất nhiều resources free
và có nhiều thứ rất đáng bỏ tiền
- Unity có bộ công cụ rất trực quan và editor có thể mở rộng bằng plugins
- Unity hỗ trợ rất nhiều định dạng asset khác nhau và có thể tự động chuyển đổi đến định dạng phù hợp nhất với nền tảng thích hợp
- Unity hỗ trợ nhiều nền tảng: di động, desktop, web và console
- Việc triển khai đến các nền tảng khác nhau cũng khá dễ quản lý
- Bạn có thể dễ dàng xây dựng một game 3D mà không cần cấu hình quá phức tạp
- Unity bản free có hầu hết những tính năng quan trọng nhất
- Unity bản trả phí phù hợp với các developer chuyên nghiệp
Trang 10• Nhược điểm
Tuy nhiên Unity cũng có vài nhược điểm mà bạn cần cân nhắc:
- Việc hợp tác rất khó khăn Unity sử dụng một server asset rất hiệu quả để hỗ trợ các đội phát triển phần mềm hợp tác với nhau Tuy nhiên nếu bạn không sử dụng nó thì việc chia sẽ code và asset giữa các thành viên trong team có thể gây ra những vấn đề nghiêm trọng Lựa chọn tốt nhất là sử dụng một số công cụ quản lý resource bên ngoài nhưng có một vài binary file không thể merge được với nhau và việc cập nhật asset có thểgây nên một số vấn đề trong scenes, mất kết nối đến script và các đối tượng khác
- Hiệu năng chưa thật sự ấn tượng cho đến khi Unity 5 ra mắt Unity 5 đã chạy hầuhết trên một luồng duy nhất và hầu như không sử dụng thêm 1 nhân phụ nào trên các thiết
bị di động Bộ biên dịch chưa được tối ưu tốt cho các bộ xử lý ARM trên hầu hết các thiết
bị di động Để giải quyết vấn đề này thì Unity đã quyết định transpile (source-to-source compiler) sang C++ và sử dụng LLVM để tối ưu được nhiều hơn thay vì giải quyết vấn
đề này trực tiếp trên các phiên bản sau này
Mã nguồn của engine không được công bố kể cả cho những người dùng chấp nhậntrả tiền Điều đó có nghĩa là nếu bạn gặp một bug với engine bạn phải chờ Unity fix chúng trong các bản tiếp theo Điều này có thể gây nên những vấn đề nghiêm trọng với project của bạn
2.2 MonoDevelop-Unity
MonoDevelop (còn gọi là Xamarin Studio) là một môi trường phát triển tích hợp
mã nguồn mở cho Linux, macOS và Windows Trọng tâm chính của nó là phát triển các
dự án sử dụng các khuôn khổ Mono và Net MonoDevelop tích hợp các tính năng tương
tự như của NetBeans và Microsoft Visual Studio, chẳng hạn như hoàn thành mã tự động, kiểm soát nguồn, giao diện người dùng đồ họa (GUI) và thiết kế Web MonoDevelop tíchhợp một nhà thiết kế Gtk # GUI gọi là Stetic Nó hỗ trợ Boo, C, C ++, C #, CIL, D, F #, Java, Oxygene, Vala và Visual Basic.NET
Trang 11MonoDevelop có thể được sử dụng trên Windows, macOS và Linux Các bản phân phối Linux chính thức được hỗ trợ bao gồm CentOS, Debian, Fedora, openSUSE, SUSE Linux Enterprise, Red Hat Enterprise Linux và Ubuntu, với nhiều bản phân phối khác cung cấp các bản xây dựng không chính thức của MonoDevelop trong các kho của
họ MacOS và Windows đã được chính thức hỗ trợ kể từ phiên bản 2.2
MonoDevelop đã bao gồm một trình biên dịch C # (một thay thế cho MSBuild và CSC) kể từ phiên bản đầu tiên của nó Nó hiện đang bao gồm một trình biên dịch hỗ trợ
C # 1.0, C # 2.0, C # 3.0, C # 4.0, C # 5.0 và C # 6.0
Một phiên bản tùy biến của MonoDevelop phát triển với Unity, công cụ trò chơi của Unity Technologies Nó cho phép kịch bản C # tiên tiến, được sử dụng để biên dịch các trò chơi video nền tảng cho trình biên dịch Unity
2.3 CorelDRAW & Photoshop Cs6
2.3.1 CorelDRAW
CorelDRAW là một phần mềm biên tập đồ họa vectơ được phát triển và tiếp thị bởi Corel Corporation ở Ottawa, Canada Đây cũng là tên của Bộ công cụ đồ họa Corel Phiên bản mới nhất có tên là X8 (thực chất là phiên bản 18), được xuất xưởng năm 2016
Trang 12Có rất nhiều sự sáng tạo trong thiết kế của CorelDRAW: một công cụ biên tập nút hoạt động trên nhiều đối tượng khác nhau, căn lề chữ, stroke-before-fill, fill/stroke nhanh,các palette chọn màu, các phép chiếu và các phép điền gradient phức tạp.
CorelDRAW đã tự phân biệt mình với các đối thủ cạnh tranh bằng nhiều cách Điều đầu tiên đó là định hình một bộ công cụ đồ họa hơn chỉ là một chương trình đồ họa vectơ Thứ hai, gói phần mềm này luôn luôn chứa một bộ sưu tập lớn các loại phông chữ
và các hình vẽ thiết kế sẵn
Thời gian trôi đi, có thêm nhiều thành phần bổ trợ được thiết kế để đóng gói cùng với CorelDRAW Danh sách các gói phần mềm được đóng gói thường thay đổi theo từngphiên cản Có nhiều chức năng chính vẫn còn được giữ nguyên từ phiên bản này đến phiên bản khác, ngoài một số chức năng như: PowerTRACE (bộ chuyển đổi từ ảnh bitmap sang đồ họa vectơ), PHOTO-PAINT (bộ biên tập đồ họa bitmap), và CAPTURE (tiện ích chụp màn hình)
Phiên bản hiện thời của CorelDRAW Graphics Suite X8 chứa các gói sau:
CorelDRAW® X8: Phần mềm biên tập đồ họa vectơ và chỉnh sửa trang
Corel® PHOTO-PAINT™ X8: Phần mềm chỉnh sửa ảnh
Corel® CAPTURE™ X8: Cho phép nhiều chế độ thu nhận hình ảnh
Corel® CONNECT™: Công cụ tìm kiếm nội dung
Corel® PowerTRACE™ X8: Chuyển đổi ảnh raster sang đồ họa vectơ
Corel® Website Creator™*: Công cụ thiết kế Website
PhotoZoom Pro 4†: Công cụ cho việc mở rộng hình ảnh kỹ thuật số
ConceptShare™: Công cụ tương tác trực tuyến
Corel cũng xuất bản một số các phần mềm đồ họa dưới tên Corel Painter
Trang 142.1.1 Photoshop Cs6
Adobe Photoshop (thường được gọi là Photoshop) là một phần mềm chỉnh sửa đồ họa được phát triển và phát hành bởi hãng Adobe Systems ra đời vào năm 1988 trên hệ máy Macintosh Photoshop được đánh giá là phần mềm dẫn đầu thị trường về sửa ảnh bitmap và được coi là chuẩn cho các ngành liên quan tới chỉnh sửa ảnh Từ phiên bản Photoshop 7.0 ra đời năm 2002, Photoshop đã làm lên một cuộc cách mạng về ảnh
bitmap Phiên bản mới nhất hiện nay là Adobe Photoshop CC
Ngoài khả năng chính là chỉnh sửa ảnh cho các ấn phẩm, Photoshop còn được sử dụng trong các hoạt động như thiết kế trang web, vẽ các loại tranh (matte painting và nhiều thể loại khác), vẽ texture cho các chương trình 3D gần như là mọi hoạt động liên quan đến ảnh bitmap
Adobe Photoshop có khả năng tương thích với hầu hết các chương trình đồ họa khác của Adobe như Adobe Illustrator, Adobe Premiere, After After Effects và Adobe Encore
Adobe Photoshop CS6 là phiên bản mới nhất của AdobePhotoshop Mời các bạn cùng tìm hiểu và download miễn phí phần mềm Adobe Photoshop CS6! AdobePhotoshopCS6 là phiên bản mới nhất của AdobePhotoshop
Trang 163 Các sơ đồ
3.1 Mô hình ERD.
Trang 173.2 Mô hình DFD.
Trang 193.3 Mô hình FDD.
Trang 20CHƯƠNG 3: THIẾT KẾ GIAO DIỆN
1 Danh sách các màn hình chính
1 Màn hình chính Là màn hình chứa các nút tác vụ như : PLAY,
6 Màn hình chơi game Là màn hình cho người chơi thực hiện các thao
tác để vượt qua các thử thách trong game
7 Màn hình tạm dừng Là màn hình sẻ dừng lại mọi hoạt động của game
Trang 212.1 Màn hình chính
Trang 222.2 Màn hình chọn nhân vật
Trang 232.2.1 Các nhân vật
Trang 242.3 Màn hình chọn độ khó
Trang 252.4 Màn hình bắt đầu
Trang 262.6 Màn hình trợ giúp
Trang 272.7 Màn hình giới thiệu
Trang 282.8 Màn hình kết thúc
Trang 29CHƯƠNG 4: KẾT LUẬN
1 Kết quả đạt được
Xây dựng được một trò chơi giải trí không chỉ là tạo ra nó mà còn là cả một quá trình khảo sát thực tế thị hiếu người dùng và những trò chơi hấp dẫn hơn những cái đã được tao ra bởi những nhà sáng lập trước đó.Nó đòi hỏi chúng ta phải làm bằng cái tâm
và thật sự tạo ra được một cái gì đó khác và lạ hơn so với những gì đã có
Đứng trước xu thế phát triển của công nghệ thông tin hiện nay có rất nhiều phần mềm để làm game như: COCOS2D, UNITY, Unreal Development Kit, Corona SDK nhưng nhóm em đã thực hiện công việc này trên UNITY 2D Qua việc nghiên cứu xây dựng game này, chúng em đã phần nào củng cố được các kiến thức về lập trình, cách thiết kế giao diện một cách hài hòa và nắm được cách làm thế nào để xây dựng được một game từ những việc nhỏ nhất như viết cốt truyện cho trò chơi , vẽ giao diện … cho đến những thứ lớn hơn là viết code cho game hoạt động
2 Đánh giá
2.1.Những điểm làm được
Sau khoảng thời gian xây dựng và thiết kế game nhóm đã hoàn thành được một số nhiệm vụ như sau :
-Xây dựng được trang giao diện chính :
+Chức năng bắt đầu trò chơi (Play)
+Chức năng trợ giúp hướng dẫn các chức năng và cách chơi game (Help)
+Chức năng giới thiệu về game (About)
-Xây dựng xử lí các hoạt động chính của game như di chuyển vượt qua chướng ngại vật
-Xây dựng được giao diện dừng và kết thúc game
2.2.Những điểm chưa làm được
-Chưa có chức năng tạo tài khoản, đăng nhập hoặc liên kết tài khoản facebook-Chưa kết nối được giữa nhiều người chơi
-Chưa có nhiều chướng ngại vật khó hơn cũng như các màn chơi khó hơn
-Chưa có các vật phẩm hỗ trợ trong game