Để tiếp tục phát triển mạnh như một nhà sản xuất game hàng đầu thế giới trong những năm tiếp theo, chúng tôi phải nhìn về phía trước hiểu rõ các xu hướng và công nghệ sẽ giúp chúng tôi l
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-BÁO CÁO THỰC TẬP
BẰNG NGÔN NGỮ C++
Giảng viên hướng dẫn: Hà Quang Thụy
Cán bộ hướng dẫn: Hoàng Mạnh Hưng
Sinh viên: Lê Viết Huy
Mã sinh viên: 16020240
Lớp: K61CACLC1
Hà Nội, 22 tháng 08 năm 2019
Trang 2MỤC LỤC
1 Thông tin chung về công ty: 5
2 Mô hình hoạt động của công ty: 5
3 Sứ mệnh và tầm nhìn của công ty: 6
4 Các giá trị cốt lỗi của công ty: 7
III Nội dung nghiên cứu lý thuyết về chủ để thực tập 7
1 Khái niệm chính và các khái niệm liên quan 7
2 Hệ thống và các thành phần hệ thống 8
3 Các bài toàn chính, thách thức và cách giải quyết 8
IV Bài toán cụ thể và kết quả thực tập 8
2 Cách giải quyết bài toán khi thực tập tại công ty: 8
1 Ý kiến đánh giá của Công ty: 17
2 Ý kiến đánh giá của Giảng viên đánh giá 18
Trang 3LỜI CẢM ƠN
Trong đợt thực tập tại công ty Gameloft vừa qua, em đã được tham gia vào môi trường làm việc thực tế và năng động Em cũng đã được học nhiều kiến thức thực tiễn và tham gia vào các dự án thực tế theo đúng ngành nghề mà em theo đuổi
Em xin chân thành cảm ơn các thầy cô trong Khoa Công nghệ thông tin
đã tổ chức đợt thực tập này
Em xin gửi lời cảm ơn tới thầy Hà Quang Thụy Thầy không chỉ là người dẫn thực tập của em, giúp em chỉnh sửa những lỗi trong việc làm báo cáo mà còn cung cấp cho em những tài liệu và kỹ năng liên quan đến vấn đề mà em đang được thực tập
Em cũng xin gửi lời cảm ơn tới ban lãnh đạo công ty Gameloft đã tạo điều kiện cho em để có thể thực tập tại công ty
Cuối cùng, em xin cảm ơn anh Hà Mạnh Hưng đã nhiệt tình hướng dẫn
em trong đợt thực tập tại Công Ty Gameloft Anh không chỉ cung cấp cho bọn
em những kiến thức về kỹ thuật mà còn là những kỹ năng mềm, những lời khuyên về định hướng cũng như cuộc sống
Trang 4I Thông tin chung
Họ và tên sinh viên: Lê Viết Huy
Công ty thực tập: Công ty TNHH Gameloft
Người hướng dẫn: Hà Mạnh Hưng
Email: hung.manhhoang2@gameloft.com
Chủ đề thực tập: Lập trình Game
II Giới thiệu về công ty
1 Thông tin chung về công ty:
Tên công ty: Gameloft
Địa chỉ: 56 Tố Hữu, Phường Trung Văn, Quận Nam Từ Liêm, HN
Tên người hướng dẫn: Hoàng Mạnh Hưng
Email: hung.manhhoang2@gameloft.com
2 Mô hình hoạt động của công ty:
Gameloft là một trong những nhà phát hành game cho điện thoại hàng đầu thế giới Gameloft hiện có 31 công ty con trên toàn thế
Trang 5giới, 28 studios đặt trên khắp thế giới, trong đó Việt Nam có 4 studio, 2 ở thành phố Hồ Chí Minh,1 ở Hà Nội và 1 ở Đà Nẵng Trong đó studio lớn nhất với khoảng 500 nhân viên
Công ty hiện có khoảng 5000 nhân viên trên toàn cầu, trong đó số nhân viên ở Việt Nam chiếm tới 1400 người
Game của Gameloft có mặt trên rất nhiều nền tảng, bao gồm trên Nokia, Symbian, IOS, Android…
3 Sứ mệnh và tầm nhìn của công ty:
“ Phần thưởng lớn nhất của công ty là nhìn thấy được 1 triệu game mới của Gameloft được tải xuống hàng ngày “
“ Ngành công nghiệp game và công nghệ đang ngày càng thay đổi
và phát triển Để tiếp tục phát triển mạnh như một nhà sản xuất game hàng đầu thế giới trong những năm tiếp theo, chúng tôi phải nhìn về phía trước hiểu rõ các xu hướng và công nghệ sẽ giúp chúng tôi luôn cung cấp trải nghiệm game tốt nhất và các thay đổi linh hoạt để chuẩn bị cho những điều gì sẽ tới Để cho những người chơi game của chúng tôi có thể chơi game ở mọi nơi, mọi thời điểm và trên bất cứ platform nào, chúng tôi là tập thể bao gồm những người tài năng xuất chúng từ khắp nơi trên thế giới và đã xây dựng được mạng lưới phân phối game hàng đầu”
“ Tầm nhìn của công ty là trở thành số một trong ngành công nghiệp công nghệ và trò chơi.Thành công của chúng tôi phụ thuộc vào khả năng để xây dựng lòng tin với các bên hữu quan của chúng tôi, chúng tôi tin rằng giá trị cốt lõi của chúng tôi là cung cấp nền tảng cho niềm tin có thể được xây dựng “
Trang 64 Các giá trị cốt lỗi của công ty:
“ Gameloft thiết kế trò chơi của mình để cung cấp các trải nghiệm tốt nhất cho người tiêu dung, với nền tảng không có vấn đề Chúng tôi đặt khách hang trước bất cứ điều gì khác Chúng tôi muốn trò chơi của chúng tôi luôn cung cấp các trải nghiệm tốt nhất cho người tiêu dung trên bất kỳ nền tảng nào mà chúng tôi phát triển “
“ Nhân viên đại sứ của chúng tôi với thế giới Chúng tôi cam kết cung cấp một nơi an toàn, tự do phát triển tại nơi làm việc, công việc hấp dẫn và lợi ích cạnh tranh “
“ Gameloft tin rằng mói quan hệ việc làm nên là tự nguyện và các điều khoản của việc làm phải tuân thủ pháp luật và các quy định hiện hành “
“ Gameloft tham gia với các cổ đông thường xuyên qua hội đồng
cổ đông, thường niên, báo cáo tài chính của chúng tôi và các thuyết minh khác “
“ Chúng tôi muốn trở thành công ty mà mọi người tin tưởng bằng những việc đúng đắn Chúng tôi mong muốn nhận được sự tin tưởng thông qua sự minh bạch, đối thoại cởi mở và đối xử với sự tôn trọng trong cộng đồng “
III Nội dung nghiên cứu lý thuyết về chủ để thực tập
1 Khái niệm chính và các khái niệm liên quan
Game là một hình thức giải trí hội tụ của rất nhiều yếu tố khác nhau như hình ảnh, âm thanh cũng như kỹ thuật và công nghệ Vậy nhà lập trình game ( Game Developer ) chính là những viết ra các đoạn code để tạo ra 1 mô hình giải trí cho người chơi
Ngôn ngữ được sử dụng ở đợt thực tập này của em là ngôn ngữ C+ +
Trang 7 C++ được Bjarne Stroustrup tạo ra vào năm 1979 và là ngôn ngữ
đa nền tảng, hướng đối tượng Các thuộc tính như kế thừa, đa hình, đóng gói và tính trừu tượng đều có trong C++
C++ được sử dụng rất rộng rãi trong ngành Công nghiệp Game hiện này vì tính đa nền tảng có thể chạy trên rất nhiều hệ điều hành cũng như khả năng về xử lý cũng như tối ưu bộ nhớ
C++ được Bjarne Stroustrup phát triền từ nên tảng ngôn ngữ C kết hợp với các khái niệm Hướng đối tượng từ các ngôn ngữ lập trình bậc cao khác
2 Hệ thống và các thành phần hệ thống
Cấu trúc của một Game thường khác với một phần mềm Game thường bao gồm các phần như: Phần mở đầu, Main Menu ( bao gồm các options về âm thanh, hình ảnh cũng như game ), Main Gameplay ( phần chơi chính sẽ được thực hiện ở đây ) và cuối cùng thường sẽ là phần Credit
Game Loop chính là phần flow để điều khiển toàn bộ một Game cũng như Main Gameplay Game Loop thường bao gồm các phần như Process(): Xứ lý những Input từ bàn phím cũng như chuột để thực hiện công việc tương ứng, Update(): là phần để vẽ các hình ảnh cũng như update các hiệu ứng và Render()
Một quy trình làm Game thường bao gồm Pre-Production ( Thiết
kế GDD cũng như Project Plan ), Production ( Thiết kế, Làm hình ảnh, âm thanh, lập trình và cuối cùng là kiểm thử ),
Post-Production làm nhiệm vụ bảo trì, update những bản cập nhật và chăm sóc khách hàng
Game Project thường có cấu trúc như sau:
Trang 83 Các bài toán chính, thách thức và cách giải quyết
Bài toán chính: Lập trình game với ngôn ngữ C++
Thách thức: Ngôn ngữ C++ là môn ngữ rất khó cho những người bắt đầu cũng như việc lập trình game cần rất nhiều kinh nghiệm thực tiễn Vì vậy em cần trau dồi kiến thức và kinh nghiệm trong đợt thực tập này
IV Bài toán cụ thể và kết quả thực tập
1 Bài toán cụ thể:
Lập trình game CeeLo ( Game xúc xắc ) với ngôn ngữ C++ và framework OpenGL
Yêu cầu: Game cần có hình ảnh, âm thanh, hiệu ứng animation, code đúng logic, Project được chia thành các module theo đúng yêu cầu
Trang 92 Cách giải quyết bài toán khi thực tập tại công ty:
Đầu tiên, Em phải tìm hiểu cấu trúc và cách sử dụng Game
Framework mà bên Gameloft đã cung cấp cho bọn em
Hình 1 Game Project Structure
Vì trong framework đã có sẵn phần xử lý hình ảnh và animation nên em chỉ việc tạo ra hình ảnh trong game như button, xúc xắc và các icon Rồi khai báo trong project
Hình 2 Ví dụ về cách sử dụng module load ảnh
Tiếp theo em cần tạo ra các Game State như GSWager, GSRoll, GSMenu, GSCredit để thiết kế các game scenes
Với GSRoll, em tạo ra hàm RollDice() để lấy ra 3 số ngẫu nhiên tượng trưng cho 3 con xúc xắc
Trang 10Hình 3 Hàm RollDice()
Sau đó em viết tiếp hàm ConvertToImage() để in các giá trị đã lấy được từ hàm RollDice(0) ra màn hình
Trang 11Hình 4 Hàm ConvertToImage()
Cuối cùng em viết tiếp hàm CalScore() để tính điểm 3 con xúc xắc dựa trên luật chơi em đã đưa ra
Trang 12Hình 5 Hàm CalScore()
Em tiếp tục làm việc với GSPlay để tạo ra các đồng chips thể hiện cho việc đặt cược của người chơi
Hình 6 Màn hình GSWager
Trang 13 Ở phần này em chỉ đặt các chips là các button để người chơi chọn số lượng tiền muốn đặt cũng như hiển thị số lượng tiền trong ví / số lượng tiền đã đặt.
Hình 7 Game Flow Logic
Sau đó em tiếp túc xứ lý logic gameflow cũng như cách phân định thắng thua trong game Cee-Lo của em.
Hình 8 Thư viện SoLoud
Cuối cùng em thêm phần âm thanh để hoàn thiện sản phẩm cũng như test các lỗi còn sót lại
3 Sản phẩm cuối:
Một số hình ảnh về sản phẩm của em:
Trang 14Hình 9 Màn hình GSMenu
Hình 10 Màn hình GSCredit
Trang 15Hình 11 Màn Hình GSWager
Trang 16Hình 12, 13, 14 Demo màn hình GSRoll
V Kết luận và Bài học kinh nghiệm thụ được qua đợt
thực tập
Trang 17 Nhờ đợt thực tập vừa rỗi em đã được hướng dẫn và học hỏi rất nhiều kiến thức trong ngành Công nghiệp game Không chỉ được học những kiến thức về Kỹ thuật, bọn em còn được đào tạo về kỹ năng thuyết trình, kỹ năng tư duy logic, các kiến thức về ngành công nghiệp game
Sau đợt thực tập này, em sẽ tiếp tục học hỏi và phát triền những kỹ năng đã học được ở công ty Gameloft để ứng vào nghề nghiệp củaem sau này là trở thành một nhà phát triển Game
Trang 181 Ý kiến đánh giá của Công ty:
Trang 192 Ý kiến đánh giá của Giảng viên đánh giá
Ý kiến đánh giá:
………
……….
………
……….
………
……….
………
……….………
Điểm số: …… Điểm chữ: ………
Hà Nội, ngày tháng năm 2019 Giảng viên hướng dẫn (Kí, ghi rõ họ tên)