Hình bìa
Loại tài liệu:
Giáo trình
Tác giả:
Vũ Thanh Nguyên, Đinh Nguyễn Anh Dũng
Đề mục:
Games
Nhà xuất bản:
ĐHQG TP. HCM
Ngày xuất bản:
2015
Định dạng:
.pdf
Định danh tư liệu:
978-604-73-2656-3
Nguồn gốc:
Trường Đại học Công nghệ Thông tin ĐHQG-HCM
Ngôn ngữ:
vie,
Bản quyền:
Trường Đại học Công nghệ Thông tin ĐHQG-HCM
Lượt xem:
1876
Lượt tải:
39

Nội dung

MỤC LỤC


 


GIỚI THIỆU  7


CHƯƠNG 1  TỔNG QUAN NGÀNH CÔNG NGHIỆP TRÒ CHƠI ĐIỆN TỬ   9


1.1.      LỊCH SỬ NGÀNH CÔNG NGHIỆP TRÒ CHƠI  ĐIỆN TỬ         10


1.1.1.   Thời kỳ trước sự ra đời của SpaceWar           10


1.1.2.   Thời kỳ từ SpaceWar đến Atari          14


1.1.3.   Thời kỳ máy chơi game chuyên dụng và máy tính cá nhân    17


1.1.4.   Giai đoạn lung lay và củng cố 22


1.1.5.   Sự ra đời của Game Engine    24


1.1.6.   Cuộc cách mạng của các thiết bị cầm tay       25


1.1.7.   Hiện tượng điện thoại thông minh      27


1.1.8.   Game nhiều người chơi          29


1.1.9.   Tương lai ở phía trước            31


1.2.      NHÂN LỰC VÀ VAI TRÒ TRONG PHÁT TRIỂN GAME          32


1.2.1.   Chiến lược gia (vision)            32


1.2.2.   Đội ngũ quản trị sản xuất- Production            34


1.2.3.   Đội thiết kế     43


1.2.4.   Đội ngũ kỹ thuật         50


1.2.5.   Đội ngũ mỹ thuật        55


1.2.6.   Đội ngũ kiểm tra chất lượng sản phẩm           59


1.3.      QUY TRÌNH PHÁT TRIỂN GAME VÀ CÁC TÀI LIỆU LIÊN QUAN  64


1.3.1.   Xây dựng khái niệm   64


1.3.2.   Giai đoạn Tiền sản xuất (Preproduction – Proof of Concept)            69


1.3.3.   Quá trình phát triển     75


CHƯƠNG 2 NHẬP MÔN LẬP TRÌNH WINDOWS VÀ DIRECTX       81


2.1.      LẬP TRÌNH WINDOWS BẰNG C++         82


2.1.1.   Hệ thống thông điệp của Windows (Windows Messaging)   82


2.1.2.   Đa nhiệm         83


2.1.3.   Đa tiểu trình (multi-threading)            85


2.1.4.   Xử lý sự kiện  87


2.2.      TỔNG QUAN VỀ DIRECTX           88


2.3.      CẤU TRÚC CHƯƠNG TRÌNH WINDOWS BẰNG C++ 90


2.3.1.   Tạo một project Win32           91


2.3.2.   Các tham số của WinMain      94


2.3.3.   Khung hàm WinMain đầy đủ  95


2.4.      VÒNG LẶP CHÍNH CỦA GAME  (GAME LOOP)          98


2.5.      KHỞI TẠO DIRECTX          101


2.5.1.   Direct3D interface      103


2.5.2.   Tạo đối tượng Direct3D và device     103


2.5.3.   Game_Run      104


2.5.4.   Game_End      105


2.5.5.   Chạy trong chế độ toàn màn hình       106


2.5.6.   Kiểm tra phím để thoát game khi ở chế độ fullscreen            107


2.6.      Surface và Bitmaps     107


2.6.1.   Bề mặt chính   108


2.6.2.   Bề mặt phụ ngoài (offscreen surface) 109


2.6.3.   Tạo surface      109


2.6.4.   Vẽ lên Surface            109


2.6.5.   Ví dụ Create_Surface 111


2.6.6.   Tải ảnh lên từ ổ cứng  119


2.6.7.   Chương trình Load_Bitmap   120


CHƯƠNG 3  TẠO CHUYỂN ĐỘNG          125


3.1.      Cách vẽ một sprite chuyển động         126


3.1.1.   Project Anim_Sprite   126


3.1.2.   Cài đặt project 126


3.1.3.   File source code          129


3.1.4.   Đồ họa của Sprite       141


3.1.5.   Diễn giải về sprite chuyển động          149


3.2.      Vẽ Sprite Trong Suốt  154


3.2.1.   Tạo Đối Tượng Sprite Handler           155


3.2.2.   Bắt đầu Sprite Handler           155


3.2.3.   Vẽ Sprite         156


3.2.4.   Dừng Sprite Handler  157


3.2.5.   Tải Sprite Image          157


3.2.6.   Chương trình Trans_Sprite     160


3.2.7.   Tạo Project Trans_Sprite         161


3.3.      Vẽ Tiled Sprite            170


3.3.1.   Hiểu về Tile     170


3.3.2.   Chương trình Tiled_Sprite      171


CHƯƠNG 4 CÁC PHÉP BIẾN ĐỔI            177


4.1.      Biến đổi tọa độ (Transform) là gì?      179


4.1.1.   Flip      179


4.1.2.   Tịnh tiến          180


4.2.      Biến đổi từ hệ toạ độ thế giới (World)  sang View Port trong Game 186


4.2.1.   Xác định toạ độ của Object trong View Port 188


4.2.2.   Code biến đổi từ world sang view port          190


CHƯƠNG 5 LẬP TRÌNH CHUỘT VÀ BÀN PHÍM          192


5.1.      Lập trình bàn phím      193


5.1.1.   Đối tượng DirectInput và DirectInput Device           193


5.1.2.   Khởi tạo đối tượng bàn phím 195


5.1.3.   Thiết lập Định dạng Dữ liệu   195


5.1.4.   Thiết lập mức độ hợp tác        196


5.1.5.   Giành kiểm soát thiết bị          196


5.1.6.   Đọc Phím nhấn           197


5.2.      Lập trình chuột           198


5.2.1.   Khởi tạo chuột            199


5.2.2.   Thiết lập Định dạng Dữ liệu   199


5.2.3.   Thiết lập Mức độ Hợp tác       199


5.2.4.   Giành kiểm soát thiết bị          200


5.2.5.   Đọc chuột       200


5.3.      Ví dụ minh hoạ Paddle Game            202


5.3.1.   Framework code mới cho DirectInput           203


5.3.2.   Mã nguồn Paddle Game         209


5.3.3.   Giải thích Paddle Game          219


CHƯƠNG 6  LẬP TRÌNH ÂM THANH     221


6.1.      Tổng quan DirectSound          222


6.1.1.   Khởi tạo DirectSound            223


6.1.2.   Tạo bộ nhớ đệm âm thanh      224


6.1.3.   Nạp file định dạng wave         224


6.1.4.   Chạy hiệu ứng âm thanh         225


6.1.5.   Kiểm tra DirectSound 226


6.2.      Xây dựng ứng dụng minh họa            226


6.2.1.   Sao chép tái sử dụng mã nguồn          227


6.2.2.   Sao chép file dsutil     228


6.2.3.   Thêm những file copy vào project      229


6.2.4.   Thêm liên kết tới thư viện DirextX    231


6.2.5.   Tạo những file hỗ trợ cho DirectX Audio      233


6.2.6.   Tinh chỉnh hệ thống    236


6.3.      Chạy chương trình      244


CHƯƠNG 7  ĐẠI CƯƠNG XỬ LÝ VA CHẠM    245


7.1.      Giới thiệu        246


7.1.1.   Tại sao cần xử lý va chạm?     246


7.1.2.   Vấn đề đối với thuật toán “ngây thơ”            246


7.2.      Cài đặt thuật toán Swept AABB        249


7.3.      Xử lý va chạm 255


7.3.1.   Phản xạ           256


7.3.2.   Đẩy     257


7.3.3.   Trượt   258


7.4.      Các vấn đề khác          259


7.4.1.   Kiểm tra diện rộng (Broad-Phasing)   259


7.4.2.   Giới hạn của thuật toán          262


CHƯƠNG 8  BÀI TOÁN PHÂN HOẠCH KHÔNG GIAN          264


8.1.      Tại sao cần phải phân hoạch không gian?       265


8.2.      Một số tiếp cận  phân hoạch không gian trong game 2D       267


Phân chia theo nhóm:  267


Phân chia bằng grid    267


Cây nhị phân   268


Cây tứ phân    268


8.3.      Cài đặt kỹ thuật Quad tree     269


8.3.1.   Build Tree       270


8.3.2.   Lưu Quadtree vào file            273


8.3.3.   Load QuadTree vào game      275


8.3.4.   Lấy danh sách những đối tượng trong màn hình        277


8.4.      Tóm tắt            278


TÀI LIỆU THAM KHẢO     280