Vì thế các loại hình game mới đã xuất hiện, cụ thể là gametương tác sử dụng công nghệ cảm biến, vừa mang tính giải trí, vừa hội nhập công nghệ tân tiếncủa thế giới.. để hướng dẫn chúng e
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH GAME TƯƠNG TÁC BẰNG
UNITY và Lidar
Thực tập sinh : Hồ Nguyễn Minh Triết
Trang 2TP Hồ Chí Minh, tháng 2 năm 2020
Trang 3Ngày nay, ngành công nghiệp game là một bộ phận không thể thiếu của ngành côngnghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, ngành game đã và đang là nhân tốkích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành côngnghiệp game non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công tyhàng đầu về công nghệ trên thế giới Vì thế các loại hình game mới đã xuất hiện, cụ thể là gametương tác sử dụng công nghệ cảm biến, vừa mang tính giải trí, vừa hội nhập công nghệ tân tiếncủa thế giới
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng nhưmuốn được tham gia làm game trong một môi trường chuyên nghiệp, em có dự định là sẽ thựctập trong hè Vì vậy, em quyết định chọn FIRST INTERACTIVE TECHNOLOGY - một môitrường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này
Trang 4để hướng dẫn chúng em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Lê Phương Khanh đã training Unity C#, công nghệ Lidar, hướng
dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong công việc, đến những khó khănviệc làm quen với môi trường mới
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này
Hồ Nguyễn Minh Triết
<TpHCM, ngày tháng năm>
Trang 5NHẬN XÉT CỦA KHOA
Trang 6
Sản phẩm của công ty 2
Chương 2: Nội dung thực tập 3
Trang 7Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty First:
FIRST INTERACTIVE TECHNOLOGY (Gọi tắt là FIRST) là agency
Marketing tại Việt Nam.
FIRST đã có hơn 15 năm kinh nghiệm trong lĩnh vực Marketing với việc xây dựng
và thực hiện rất nhiều kế hoạch truyền thông, quảng cáo cho các tập đoàn, đối tác lớn trong và ngoài nước.
Sau một thời gian phát triển, với mong muốn đo lường chính xác kết quả các chiến dịch Marketing, FIRST đã đưa vào nghiên cứu và ứng dụng các sản phẩm công nghệ nhằm phục vụ riêng thị trường Marketing.
FIRST tự tin mang đến các giải pháp Marketing hiện đại, hiệu quả về mặt dữ liệu
thực tế, lẫn chi phí thực hiện Bởi vì FIRST sử dụng nguồn nhân lực bản địa phát triển các sản phẩm song hành cùng quốc tế trong lĩnh vực Marketing, tạo nên ưu thế cạnh tranh, tính đột phát và thấu hiểu người tiêu dùng.
Đội ngũ nhân sự FIRST với hơn 50 cộng sự, thuộc các phòng: Sáng Tạo, Event,
Activation, Technology, R&D và Planner Strategy - đã có kinh nghiệm làm việc tại nhiều
Trang 8công ty đa quốc gia tại Singapore, Israel, Đức… cùng sự tư vấn của các giáo sư và cộng tác của các bạn sinh viên thuộc TOP tại các trường đại học danh giá.
First tự hào vì đã xây dựng thành công một môi trường văn hóa đặc trưng, tinh thần làm việc hợp nhất và quan trọng hơn hết là cùng khách hàng tạo nên cộng đồng Marketing hiện đại, hiệu quả, dẫn đầu xu hướng.
Trong 2 năm 2017 và 2018, công ty đã ra mắt các sản phẩm sử dụng những công nghệ hiện đại nhất để phục vụ cho các chiến dịch Marketing như: Game AR, Game tương tác Kinect, Gương chụp hình- Funkymir, Bộ chụp hình tách nền - Portable studio, Thiết
bị bảo vệ trẻ em - Kid Protection, Hệ thống quản lý dữ liệu và thay đổi nội dung trình chiếu từ xa- Neural Display, Thiết bị chỉ đường trong tòa nhà- Way Finding…
Tất cả đã và đang nỗ lực từng ngày, để mang đến những giải pháp hiện đại nhất, tốt nhất đến khách hàng Và xây dựng một cộng đồng Marketing trẻ, năng động, đủ sức cạnh tranh với thị trường quốc tế
2 Sản phẩm của công ty
First không những cung cấp các giải pháp cộng nghệ phục vụ marketing, mà còn là đơn vị thực hiện rất nhiều sự kiện, activation và đưa ra chiến lược truyền thông cho rất nhiều thương hiệu trong và ngoài nước.
- Portable Studio
- Interactive Game: AR,VR, IOT
- Smart Showcase
- Wayfinding.
Trang 9Chương 2: Nội dung thực tập
Đợt thực tập em chủ yếu học phát triển một phần mềm, cụ thể ở đây là game trênUnity3D kết hợp với công nghệ cảm biến Lidar
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian : 4 tuần
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức củacông ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công tynhư thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong côngviệc…
Kết quả : Hiểu thêm về công ty First, quá trình thành lập và phát triển Có thêm các kỹ
năng về việc sử dụng email trong công việc, cách sử dụng các phần cứng kết nối vớiUnity như Kinect, Lidar, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
2. Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian : 2 tuần
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công
cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm và trang web trong số
đó như Trello, Git, bitbucket - sử dụng trong làm việc nhóm, AdvanceIP – trình duyệt
IP để kết nối với Lidar Unity3D – công cụ phát triển game, Resolume – phẩn mềm đểmapping và trình chiếu nội dung từ Unity qua máy chiếu
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, so với việc dung các IDE
2.2 Tìm hiểu ngôn ngữ C# nâng cao
Thời gian : 2 tuần
Nội dung : Được training về các kỹ thuật C# nâng cao, những kiến thức quan trọng
cho việc tối ưu trên Android
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tínhnhư tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình Ngoài ra, thực tập sinhcòn được hướng dẫn về cách thiết kế lớp cho các đối tượng game
Trang 10- Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối ưu,tránh rò rỉ bộ nhớ
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình với ngôn ngữ C#
- Có được những kiến thức quan trọng cho việc lập trình game sau này
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu
2.3 Lập trình Unity3D
Nội dung: Các kiến thức cơ bản về Unity3D để có thể làm ra một game đơn giản.
- Khái niệm cơ bản về Unity.
Năm được các khái niệm cơ bản về môi trường của Unity trên Windows
Ngoài ra, trainer còn cung cấp cho thực tập sinh những khái niệm cơ bản trongUnity như sử dụng inspector, hierarchy, import các packages, component, … đểtùy chỉnh cho game, là những khái niệm rất cơ bản và quan trọng trong lập trìnhgame Unity
- GameObject:
Là một object trong Unity, chứa các biến đặc trưng cho 1 object như name, tag, vàcác hàm như Destroy(), SetActive(), GetComponent<>() để dễ dàng tùy chỉnh cácphần tử trong game
- Collider2D:
Sử dụng thư viện Physics của Unity, Component Collider2D cho phép 2gameobject trong scene có thể va chạm hoặc tương tác với nhau, game sử dụngCollider2D kết hợp với Raycast để nhận input từ tay người chơi tương tác với cácgameobject Collider2D có nhiều dạng tương ứng với hình dạng của gameobjectnhư BoxCollider (hình vuông, hình chữ nhật), CircleCollider (hình tròn),
Trang 11- Animator:
Một Component rất hữu dụng trong việc tạo animation mà Unity hỗ trợ
Thực hiện :
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành như tạo các gameobject, cho 2 gameobject va chạm, tắt
mở các game object, xử lý cách chuyển các scene trong Unity, cách cài đặt input
từ Lidar …
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả :
- Hiểu được những khái niệm cơ bản trong Unity
- Đã hoàn thành được một game đơn giản là chạm vào một gameobject thì nó biếnmất
- Kết nối với Unity:
Trang 12o Import Plugins KlakSpout vào Unity: https://github.com/keijiro/KlakSpout
o Sau đó Add component SpoutSender.cs vào MainCamera trong Unity
o Nhấp tab Sources của Resolume -> Kéo file Spout vào trong một Column
o Play Unity thì màn hình của Unity sẽ dc trình chiếu qua máy chiếu
o Kết hợp nhiều màn hình Unity để kết nối với nhiều máy chiếu cùng lúc
3. Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực
cơ bản về C#, Unity, Lidar Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh ápdụng những kiến thức đã học để thực hiện một project game tương tác
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm việc
Tuần Công việc Người hướng dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công ty,cách tổ chức củacông ty
- Làm quen với cáccông cụ làm việctrong công ty
- Học cách trao đổi,làm việc qua email
Anh Vinh
2
- Tìm hiểu ngôn ngữlập trình C# nângcao
Anh Lê PhươngKhanh
3
- Tìm hiểu vềUnity3D
- Thực hành một sốgame cơ bản
Anh Lê PhươngKhanh
4 - Tìm hiểu về Anh Phạm Văn Sĩ
Trang 13- Sắp xếp vào scenetrên Unity.
- Add các componentcần thiết vào cácgameobject
Anh Lê PhươngKhanh
6
Giai đoạn Alpha(tiếp):
- Viết các chức năngnâng cao hơn
- Tương tác với cácobject
Anh Lê PhươngKhanh
7
Giai đoạn Beta:
- Làm các animationcần thiết
- Báo cáo tiến độ vớileader để test game
Anh Lê Anh Tuấn
8
Giai đoạn Beta và giaiđoạn kết thúc, báo cáo :
- Kết nối vớiResolume
- Fix bug, fix rò rìvùng nhớ
- Báo cáo cuối đợtthực tập
Anh Lê Anh Tuấn
Trang 14Chương 3: Chi tiết về project
1 Giới thiệu về game
TƯƠNG TÁC CHUYỂN MÙA VÀ NHỮNG HIỆU ỨNG CỦA TỪNG MÙA.
Xuân – Hạ - Thu- Đông.
Nội dung game sẽ được chiếu lên tường là tổ hợp 4 bức tranh sinh động mô tả bốn mùa trong năm có ở Việt Nam, mùa xuân với mai vàng, cùng cánh đồng của
vụ lúa đông xuân ở miền nam, cảnh hoa đào ở phíá Bắc trong tiết trời lạnh giá Mùa hạ với những hàng cây hoa sao đặc trưng của Sài Gòn, loài hoa gợi nhớ tuổi học trò rất riêng biệt Mùa thu với lá vàng rơi Mùa đông lạnh lẽo trên rẻo cao ở Tây Bắc
1.1 Quy tắc chung
Chạm vào icon mùa nào thì mùa đó sẽ xuất hiện layer đầu tiên và những icon như cây, mây, đồi núi… để người chơi chạm vào và hoàn thiện bức tranh Sau khi hoàn thiện bức tranh, thì các icon hiện tượng trong mùa xuất hiện để người chơi tương tác trong mùa đó, ví dụ như mùa đông có icon sấm sét, mưa…, mùa thu có icon lá rơi, gió…, mùa mùa hạ có icon nắng, gió, mưa…Sau khi chạm icon hiện tượng nào thì visual hiện tượng đó xuất hiện.
1.2 Mùa Xuân phía Nam: (hình minh hoạ bên dưới)
- Cảnh đầu tiên: Layer đầu tiên mùa xuân xuất hiện, trong layer này sẽ có các icon ruộng lúa, cành mai, mưa, sấm chớp, gió, Khi chạm vào icon ruộng thì visual ruông xuất hiện, chạm vào icon cành mai thì visual cành mai xuất hiện, chạm vào sấm chớp thì visual sấm chớp xuất hiện tất cả xuất hiện ngẫu nhiên
- Cảnh hai: phong cảnh đã có ruộng lúa và cành mai chưa có hoa, các icon ruộng, cành mai biến mất, icon hoa nở xuất hiện thêm
- Cảnh ba: sau khi người chơi hoàn thiện bức tranh mùa xuân thì các icon ruộng lúa, cành mai, hoa nở biến mất, lúc này xuất hiện thêm các icon mùa
hạ, thu, đông và mùa xuân phía Bắc để người chơi có thể chuyển cảnh.
Trang 15Hinh minh hoạ cảnh 1, 2, 3
1.3 Mùa Xuân phía Bắc: (theo hình minh hoạ bên dưới)
- Cảnh đầu tiên: có icon gió, mưa, cành cây.
- Cảnh hai: có icon mưa, hoa.
- Cảnh ba: có icon mưa, icon chim
- Cảnh bốn: có icon hoa rơi, mưa, xuân phía Nam, hạ, thu và đông
Trang 161.4 Mùa hạ: ( theo hình minh hoạ bên dưới)
- Cảnh 1: có icon cành cây, icon gió, sấm chớp, nền đất, con đường
- Cảnh 2: icon gió, sấm chớp, bụi cây, lá mọc.
- Cảnh 3: gió, sấm chớp, mưa, quả chò rơi (trong hình minh hoạ đang thiếu icon mưa)
Trang 171.5 Mùa Thu: (theo hình minh hoạ bên dưới)
- Cảnh 1: có icon cành cây, nền đất, sấm chớp, gió, mưa, cây mọc
- Cảnh 2: có icon gió, mưa, sấm chớp, lá rơi
- Cảnh 3: gió, mưa, sấm chớp, mùa đông, mùa xuân, mùa hạ
Trang 181.6 Mùa Đông: (theo như hình minh hoạ)
- Cảnh 1: có icon mây, gió, ruộng bậc thang, cành cây, nền đất
- Cảnh 2: có icon mây, mưa, gió, hoa nở, chim, người
- Cảnh 3: có icon mưa, gió (hoa sẽ rơi), hoa nở, mùa xuân phía Bắc, mùa Xuân phía Nam, mùa thu, mùa hè.
Trang 192 Thực hiện
- Thực tập sinh: Hồ Nguyễn Minh Triết
Và sự giúp đỡ tận tình của team trainer Gameloft
3 Kế hoạch
Giai đoạn Alpha:
- Hoàn thành chức năng của từng icon:
o Trôi từ trên xuống
o Tương tác thì chuyển cảnh, cây mọc, lá rơi,…
- Làm các particle là rơi, hoa rơi
- Xây dựng pattern, thứ tự xuất hiện và tương tác của các icon và các cảnh
Trang 20Kết quả :
- Các tính năng trên đã được thực hiện tốt
Giai đoạn Beta:
- Làm animation cho chim chóc và người, các background cây đung đưa, mây bay,
Kết quả : Đã hoàn thành toàn bộ những tính năng trên, tuy nhiên chưa tối ưu
Giai đoạn hoàn thành:
- Tối ưu hóa cách tương tác
- Được Lead Designer và trainer xác nhận hoàn thành dự án
- Nộp source code lên bitbucket
Trang 22TỔNG KẾT
Như vậy, chỉ trong vòng một tháng ngắn ngủi, em đã kịp hoàn thành một game tương tácchạy trên nền tảng PC và được trình chiếu lên tường ở khu giải trí JP WORLD của Gigamall.Game đã có khá đầy đủ các tính năng đã đề ra ban đầu Game phát triển theo framework có tính
kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer của First để em có thể hoànthành game này Cảm ơn thầy Nguyễn Hữu Thương đã giúp em hoàn thành bài báo cáo này