Môi trường làm việc tại FPT rất chuyên nghiệp, giúp em có thể phát huy tối đa năng lực của bản thân và phát triển một cách toàn diện.Nhờ được tiếp cận với môi trường làm việc tốt, cùng v
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Trang 3LỜI CẢM ƠN
Trong kỳ thực tập vừa qua tại Công Ty TNHH Hệ Thống Thông Tin Fpt (FPT IS), em xin gửi lời cảm ơn chân thành tới quý công ty và thầy giáo Lê Minh Hoàng đã tạo mọi điều kiện thuận lợi nhất cho em hoàn thành tốt kỳ thực tập này.
Khi thực tập tại Công Ty TNHH Hệ Thống Thông Tin Fpt, em đã học được rất nhiều kiến thức bổ ích từ kỹ năng mềm như thuyết trình, làm việc nhóm, kỹ năng phỏng vấn, đặt vấn đề và giải quyết vấn đề cũng như vô vàn kiến thức chuyên ngành quý giá Môi trường làm việc tại FPT rất chuyên nghiệp, giúp em có thể phát huy tối đa năng lực của bản thân và phát triển một cách toàn diện.
Nhờ được tiếp cận với môi trường làm việc tốt, cùng với sự hướng dẫn tận tình của thầy giáo Lê Minh Hoàng đã giúp em hoàn thành kỳ thực tập và tích lũy được rất nhiều kinh nghiệm quý giá phục vụ cho quãng đường phát triển sâu và xa hơn nữa trong chuyên ngành công nghệ thông tin.
Bên cạnh đó em cũng xin phép được gửi lời cảm ơn sâu sắc tới các thầy cô Trường Đại học Công Nghiệp Hà Nội, đặc biệt là các thầy cô giáo khoa Công Nghệ Thông Tin đã tận tình dạy dỗ, truyền đạt những kiến thức quý báu và dìu dắt em qua quá trình học tập tại trường.
Em rất mong nhận được sự góp ý, đánh giá của thầy, cô giáo trong khoa để bài khóa luận của em được hoàn thiện tốt hơn nữa.
Em xin chân thành cảm ơn!
Hà Nội, ngày 31 tháng 1 năm 2024Sinh viên thực hiện
Võ Văn Đức
Trang 4LỜI MỞ ĐẦU
Công nghệ thông tin ngày càng phát triển như vũ bão trong mọi lĩnh vực ngành nghề và đang mở rộng khắp nơi trên toàn thế giới Không chỉ trên thế giới mà ở Việt Nam, trong vài năm gần đây, có rất nhiều chuyên gia đang đầu tư rất nhiều vào công nghệ để có thể hoà nhập với thế giới Việt Nam cho thấy là quốc gia có tiềm năng phát triển lĩnh vực công nghệ thông tin, trong đó phát triển hệ thông thông tin đang là thế mạnh của đất nước Hệ thống thông tin giúp cho công việc quản lý được dễ dàng hơn, nâng cao hiệu suất sản xuất cũng như tiết kiệm được thời gian và công sức.
Qua thời gian và kiến thức tiếp thu được tại nhà trường và trong doanh nghiệp thực tập, em thấy việc xây dựng hệ thống công nghệ thông tin để áp dụng vào các lĩnh vực trong kinh doanh, sản xuất là điều vô cùng quan trọng và cần thiết không chỉ ở Việt Nam mà còn ở khắp nơi trên toàn thế giới Ở bài báo cáo này, em xin phép được trình bày các kiến thức học hỏi được khi trải qua quá trình thực tập thực tế giống như một lộ trình để trở thành Game developer
Em rất mong nhận được những lời nhận xét, đánh giá của thầy cô để bài báo cáo trở nên hoàn thiện và kỹ năng lập trình của bản thân được phát triển xa hơn nữa trong tương lai.
Em xin trân thành cảm ơn!
Trang 5DANH MỤC BẢNG BIỂU
Bảng 3.1 Nhật ký thực tập 31
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ THỰC TẬP 1
1.1 Giới thiệu chung 1
1.2 Sản phẩm và dịch vụ 1
1.3 Công nghệ và chất lượng 1
1.4 Văn hoá doanh nghiệp 1
CHƯƠNG 2 QUÁ TRÌNH THỰC TẬP TẠI ĐƠN VỊ 3
2.1 Nhiệm vụ được giao 3
Trang 7CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ THỰC TẬP
1.1 Giới thiệu chung
Công Ty TNHH Hệ Thống Thông Tin Fpt tập đoàn công nghệ hàng đầu có trụ sở tại Việt Nam hoạt động trong lĩnh vực công nghệ thông tin và nguồn nhân lực công nghệ thông tin.
Công ty Hệ thống thông tin FPT (FPT Information System – FPT IS) là thành viên của tập đoàn FPT Hiện tại, FPT IS gồm 10 công ty thành viên và 1 liên doanh với Nhật Bản Lĩnh vực hoạt động: phát triển phần mềm ứng dụng, dịch vụ ERP, dịch vụ công nghệ thông tin, tích hợp hệ thống, dịch vụ điện tử và cung cấp IT solution and product Cloud computing service
Phát triển ứng dụng mobile: ReactNative, Objective-C, Swift, Java, …
1.4 Văn hoá doanh nghiệp
Nhân viên tại công ty luôn mang đến một hình ảnh chuyên nghiệp, năng động đối với các khách hàng và đối tác bởi cách ăn mặc chỉnh chủ đã được rèn
Trang 8luyện qua các quy định tại công ty Nhân viên luôn đúng giờ giấc và có ý thức tại nơi làm việc.
Do đặc thù là một công ty công nghệ nên việc bảo mật thôn tin là một điều rất quan trong tại FPT IS Mọi thành viên trong công ty đều được nhắc nhở đầy đủ các quy tắc về bảo mật thông tin Điều này không chỉ tránh rò rỉ thông tin, công nghệ của các dự án mà còn tạo niềm tin của khách đối với công ty.
Một công ty năng động như FPT IS thì không chỉ chú trọng vào công việc mà còn rất quan tâm đến đời sống của nhân viên Để giúp các thành viên trong công ty thêm gắn kết công ty thường xuyên tổ chức cái lễ hội và hoạt động tập thể Không những thế các chế độ lương thưởng hợp lý của công ty cũng giúp nhân viên có thêm rất nhiều động lực trong công việc.
Với văn hóa doanh nghiệp rõ ràng FPT đã tạo nên một môi trường làm việc tuyệt vời Mỗi sinh viên khi có cơ hội thực tập tại FPT IS sẽ luôn được trải nghiệm những điều tuyệt vời này Đây quả là một nơi lý tưởng để làm việc và cống hiến cho ngành công nghệ thông tin của nước nhà.
Trang 9CHƯƠNG 2 QUÁ TRÌNH THỰC TẬP TẠI ĐƠN VỊ
2.1 Nhiệm vụ được giao
Tìm hiểu nghiệp vụ của dự án và tìm hiểu các kiến thức liên quan để xây dựng một game 2d học tập bằng Unity hoàn chỉnh trên nền tảng C#
Mục đích: xây dựng được một game học tập 2d trên Unity
2.2 Giải pháp thực hiện
Tìm hiểu Unity
Tìm hiểu các lập trình game unity 2d Tìm hiểu về Script được viết bằng C#
2.3 Kế hoạch thực hiện
2.3.1.Tìm hiểu Unity
Unity là một trình phát triển trò chơi và ứng dụng 3D đa nền tảng, đang được sử dụng rộng rãi trong ngành công nghiệp giải trí số Nó cung cấp một môi trường linh hoạt cho việc phát triển nhanh chóng và triển khai trò chơi trên nhiều thiết bị khác nhau Dưới đây là một số khái niệm và tính năng chính của Unity: 1 Game Engine Đa Nền Tảng:
Trang 10Unity được xây dựng với mục tiêu hỗ trợ nhiều nền tảng, bao gồm Windows, macOS, iOS, Android, Linux, và nhiều nền tảng khác Điều này giúp nhà phát triển tối ưu hóa công sức và tài nguyên khi triển khai trò chơi trên nhiều thiết bị.
2 Ngôn Ngữ Lập Trình C#:
Unity sử dụng ngôn ngữ lập trình C# cho việc viết mã C# là một ngôn ngữ mạnh mẽ và linh hoạt, giúp nhà phát triển tạo ra mã nguồn dễ đọc và quản lý 3 Asset Store:
Unity Asset Store là một thư viện trực tuyến nơi người phát triển có thể mua và bán tài nguyên như mô hình 3D, texture, script, và nhiều hơn nữa Điều này giúp tăng tốc quá trình phát triển bằng cách sử dụng những nguồn tài nguyên đã được tạo sẵn.
4 Hỗ Trợ VR và AR:
Unity cung cấp các công cụ và thư viện tích hợp để phát triển trò chơi và ứng dụng thực tế ảo (VR) và thực tế ảo (AR) Điều này làm cho nó trở thành một lựa chọn phổ biến trong lĩnh vực phát triển nội dung thực tế ảo.
5 Giao Diện Người Dùng Dễ Sử Dụng:
Unity có giao diện người dùng thân thiện và dễ sử dụng, với các công cụ kéo và thả (drag-and-drop) giúp nhà phát triển tạo ra trò chơi một cách nhanh chóng mà không cần kiến thức sâu về lập trình.
6 Đồng Bộ Hóa Cộng Đồng:
Unity có một cộng đồng lớn và đa dạng Người dùng có thể chia sẻ kiến thức, tài nguyên, và hỗ trợ lẫn nhau qua các diễn đàn trực tuyến và cộng đồng trực tuyến khác.
Trang 11Unity hỗ trợ đồ họa 2D và 3D mạnh mẽ, cũng như khả năng xử lý âm thanh Điều này giúp nhà phát triển tạo ra trò chơi với chất lượng đồ họa và âm thanh cao.
Trên tất cả, Unity mang lại một môi trường linh hoạt và mạnh mẽ cho nhà phát triển để thực hiện ý tưởng và sáng tạo trong việc phát triển trò chơi và ứng dụng đa nền tảng
Link tải phần mềm: https://unity.com/download
2.3.2.Tìm hiểu Unity 2d
Unity 2D là một phần của Unity Game Engine, được thiết kế đặc biệt để hỗ trợ phát triểntrò chơi 2D Đối với những người muốn tập trung vào trải nghiệm chơi game dựa trên
Trang 12không gian hai chiều, Unity 2D mang lại một loạt các tính năng và công cụ để làm choquá trình này dễ dàng và hiệu quả.
1 Hỗ Trợ Đầy Đủ cho Đồ Họa 2D:
Unity 2D được tối ưu hóa để xử lý đồ họa 2D một cách hiệu quả Nó hỗ trợ các sprite,texture, và animation 2D, cho phép nhà phát triển tạo ra trò chơi với đồ họa sống động vàhấp dẫn.
2 Physics 2D:
Unity 2D cung cấp một hệ thống vật lý 2D mạnh mẽ, giúp xử lý va chạm, động lực, vàcác hiệu ứng vật lý trong không gian 2 chiều Điều này làm cho việc tạo ra các trò chơinhư platformers hoặc puzzle games trở nên dễ dàng.
3 Hỗ Trợ Animation:
Để làm cho những hình ảnh trong trò chơi sống động, Unity 2D cung cấp một hệ thốnganimation 2D Người phát triển có thể dễ dàng tạo và quản lý các animation cho cácsprite và đối tượng trong trò chơi của họ.
4 Tilemap:
Tilemap là một tính năng quan trọng cho việc xây dựng và quản lý cảnh 2D Unity 2Dhỗ trợ Tilemap, giúp nhà phát triển tạo ra các môi trường game phức tạp bằng cách sắpxếp và kết hợp các tiles.
5 Đồng Bộ Hóa với C# và Visual Studio:
Unity 2D sử dụng ngôn ngữ lập trình C# và tích hợp chặt chẽ với Visual Studio, giúpnhà phát triển viết mã một cách linh hoạt và dễ dàng Điều này giúp tạo ra mã nguồn dễđọc và quản lý.
6 Hệ Thống Particle System:
Để tạo ra hiệu ứng đặc sắc, Unity 2D có hệ thống Particle System mạnh mẽ Ngườiphát triển có thể sử dụng nó để tạo ra các hiệu ứng như lửa, mưa, hay các hiệu ứng đặcbiệt khác.
7 Dễ Điều Chỉnh và Tối Ưu Hóa:
Unity 2D có giao diện người dùng thân thiện và dễ sử dụng, với nhiều công cụ giúp nhà
Trang 13Unity 2D là lựa chọn mạnh mẽ cho những người muốn tập trung vào phát triển trò chơi2D, mang lại sự linh hoạt và tiện ích trong việc xây dựng các trải nghiệm chơi game độcđáo.
2.3.3.Tìm hiểu script trong unity
Trong Unity, script đóng vai trò quan trọng trong việc tạo ra hành vi và tương tác của các đối tượng trong trò chơi Đây là một cái nhìn tổng quan về script trong Unity:
1 Ngôn Ngữ Lập Trình:
Unity hỗ trợ nhiều ngôn ngữ lập trình, nhưng ngôn ngữ phổ biến nhất là C# Người phát triển cũng có thể sử dụng JavaScript hoặc Boo, nhưng C# là ngôn ngữ được khuyến khích do sự tích hợp mạnh mẽ với Unity và cộng đồng lớn.
2 MonoBehavior:
Mọi script trong Unity thường kế thừa từ lớp MonoBehavior, là một lớp cơ bản chứa các phương thức và thuộc tính để quản lý hành vi của đối tượng trong trò chơi MonoBehavior cung cấp các phương thức như Start(), Update(), và FixedUpdate() để xử lý sự kiện và cập nhật logic.
3 Xử Lý Sự Kiện:
Script trong Unity thường được sử dụng để xử lý sự kiện như va chạm, nhấn nút, hay thậm chí là thời gian Việc sử dụng các phương thức như OnTriggerEnter(), OnCollisionEnter(), và OnMouseDown() giúp script phản ứng đúng với tương tác của người chơi.
4 Giao Tiếp với Đối Tượng Khác:
Trang 14Script trong Unity cũng cho phép đối tượng giao tiếp với nhau Các biến và phương thức công khai có thể được truy cập từ các đối tượng khác, giúp tạo ra mối liên kết và tương tác giữa chúng.
5 Quản Lý Đối Tượng và Cảnh:
Script thường được sử dụng để quản lý và điều khiển đối tượng trong trò chơi Việc tạo, di chuyển, xoay và phá hủy đối tượng đều được thực hiện thông qua script.
6 Coroutine:
Unity hỗ trợ coroutine, là một cơ chế giúp xử lý các tác vụ có thời gian chờ đợi mà không làm đóng băng toàn bộ trò chơi Việc này thường được sử dụng để tạo hiệu ứng và chờ đợi các sự kiện nhất định.
7 Tiện Ích Debugging:
Unity cung cấp các công cụ debugging mạnh mẽ cho script Người phát triển có thể sử dụng lệnh Debug.Log() để in thông điệp ra Console, giúp theo dõi và kiểm tra giá trị biến trong quá trình phát triển.
8 Asset và Resource Management:
Script thường được sử dụng để quản lý tài nguyên như âm thanh, hình ảnh và mô hình 3D Điều này giúp đảm bảo tài nguyên được tải và sử dụng đúng cách.
Script trong Unity là một phần không thể thiếu của quá trình phát triển trò chơi Việc hiểu rõ về cách sử dụng script giúp nhà phát triển tạo ra trải nghiệm chơi game độc đáo và chất lượng Ví dụ:
Trang 15CHƯƠNG 3 KẾT QUẢ THỰC TẬP
3.1 Cấu trúc dự án
Qua quá trình thực tập tại FPT IS, em đã có thể áp dụng những kiến thức tìm hiểu phát triển một game unity 2d cho hệ thống giáo dục Tuy nhiên vì vấn đề bảo mật của công ty, em xin phép tự xây dựng lại một dự án riêng biệt gồm một số chức năng cơ bản để có thể hiểu được cách xây dựng ứng dụng một game unity 2d trước khi tham gia dự án thực tế.
Thư mục Hierarchy chứa các GameObject nhỏ của dự án, mỗi GameObject sẽ thực hiện 1 tính năng riêng biệt
Trang 16Thư mục Player chứa các thành phần nhân vật chính của dự án VD: Nhân vật được điều khiển để hoàn thành trò chơi
Thư mục Monters chứa các thực thể là đối tượng quái với mục đích tạo ra các chướng ngại cho người chơi
Thư mục Map chứa bản đồ cấu tạo nên background cho trò chơi
Thư mục CheckPoint được tạo ra với mục đích là điểm đến để hoàn thành
Trang 17 Script điều khiển Monster:
H椃
Trang 18 Script về đích:
Đoạn script Player tương tác với Monster:
H椃
Trang 20KẾT LUẬN VÀ KIẾN NGHỊ
Sau thời gian 4 tuần thực tập tại công ty cổ phần FTP IS em đã học hỏi, tiếp thu được rất nhiều kiến thức không chỉ trong công việc mà còn trong văn hoá làm việc, cách ứng xử trong cuộc sống.
Công ty đã tạo điều kiện để em học hỏi rất nhiều kiến thức như: Các kiến thức về Unity và Unity 2D
Phát triển tư duy logic về thuật toán.
Nắm bắt được quy trình làm việc thực tế tại doanh nghiệp.
Với trải nghiệm thực tập quý báu lần này, em đã có thêm rất nhiều kinh nghiệm thực tế để áp dụng trên con đường lập trình Game Developer mà em đã chọn Qua quá trình thực tập lần này, FPT IS Group đã giúp em hiểu hơn về quá trình xây dựng một game unity 2D, không chỉ xây dựng ứng dụng có thể chạy được, mà còn phải tối ưu về hiệu suất cũng như các dòng code phải sạch sẽ để quá trình bảo trì sau này dễ dàng hơn.
Trang 21điều kiện cho em thực tập tại công ty và thầy Lê Minh Hoàng đã luôn nhiệt tình, tận tâm chỉ dạy giúp em hoàn thành đề tài thực tập.
Trang 22Tuần 3 22/1-29/1 Tìm các tương tác giữa người chơi, quái vật và đích
-Tạo ra sự tương tác tạo sư kiện giữa nhân vật chơi và quái vật
Trang 23hiện ra khung câu hỏi
Trang 24TÀI LIỆU THAM KHẢO
- https://FPT IS.com.vn : website của FPT IS Group.
- https://vms.FPT IS.com.vn/en_US/myFPT IS : website giới thiệu chi tiết công ty cho nhân viên.
- https://unity.com/community : Website trao đổi các vấn đề về unity - https://community.gamedev.tv/ : Website trao đổi các vấn đề về unity - https://www.kenney.nl/ : Website lấy tài nguyên game miễn phí