BỘ MÔN DUYỆT
Chủ nhiệm Bộ môn
Ngô Hữu Phúc
|
ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG
(Dùng cho 45 tiết giảng)
Học phần: LẬP TRÌNH GAME VÀ MÔ PHỎNG
Nhóm môn học: Công nghệ trò chơi và Đa phương tiện
Bộ môn: Khoa học máy tính
Khoa (Viện): Công nghệ Thông tin
|
Thay mặt nhóm
môn học
Nguyễn Trung Tín
|
Thông tin về nhóm môn học
TT
|
Họ tên giáo viên
|
Học hàm
|
Học vị
|
1
|
Nguyễn Trung Tín
|
TS
|
GV
|
2
|
Dương Thị Minh Soan
|
Ths
|
TG
|
Địa điểm làm việc: văn phòng Bộ môn Khoa học máy tính
Điện thoại, email: 0963983602, khachmoscow@gmail.com
Bài giảng1: Giới thiệu lập trình game và mô phỏng
Tiết thứ: 1 - 3 Tuần thứ: 1
- Mục đích, yêu cầu:
• Nắm sơ lược về Học phần, các chính sách riêng của giáo viên, địa chỉ Giáo viên, bầu lớp trưởng Học phần.
• Nắm được lịch sử phát triển của ngành công nghiệp Game, các loại hình game chính trên thế giới và đặc điểm của từng loại hình.
• Nắm được cấu trúc, nguyên lý hoạt động của một chương trình game, các vấn đề liên quan cần thiết cho lập trình game.
• Nắm được cách thức tổ chức đội ngũ phát triển game
- Hình thức tổ chức dạy học: Lý thuyết, tự học, tự nghiên cứu
- Thời gian: Lý thuyết: 3t; Tự học, tự nghiên cứu: 6t
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
Tổng quan môn học:
Mục đích.
Nội dung.
Tài liệu tham khảo.
1.2 Các khái niệm:
1.2.1 The Game Engine
Graphics & Animation
Physics
Controller Interaction
AI Primitives
Sound
Networking
Sacripting system
1.2.2 The Game Logic
Game rules
Non-Player Characters (NPC) AI
Interface
1.3. Một số loại game phổ biến:
Sid Meier’s Civilization III with Play the World and Conquests expansions
StarCraft and the Brood War expansion
Diablo II and the Lord of Destruction expansion
Command & Conquer: Tiberian Sun and the Firestorm expansion
Command & Conquer: Red Alert 2 and Yuri’s Revenge
Age of Empires and the Rise of Rome expansion
Age of Empires II and The Conquerors
Age of Mythology and The Titans expansion
The Sims and a dozen or so expansions and sequels
1.4. Phát triển đội ngũ lập trình.
Determine the skills that will most likely be needed for your game development project. Due to the cost factor, many startup game studios make a common critical mistake – they hire few specialists to fulfill several roles. As a rule, these specialists are pretty junior and are managed by a single senior guy. Such team structures often fail to deliver quality products on time because of occupational burnout (having to work overtime to meet the deadlines, multi-tasking, etc) and lack of professional expertise.
Hire mid and senior IT and creative guys for the most complex tasks within your game development project and have one person do his own work.
Consider your hiring options. Since timing and cost efficiency are really two most important factors in gaining a competitive advantage and winning a certain market or a niche, you should consider alternative ways to staff your game development project (e.g., offshore IT staffing, Dedicated Development Team, etc.).
For your game development project you'll need these skills and roles (as a minimum):
Concept artist:
Preparation of all creative materials including sketches, drafts, creation of characters, objects (e.g., vehicles, weapons) and map layouts,
2D / 3D artwork creation,
Basic design
b) Level designer: - Knowledge of 3d party design tools such as UnrealEd and 3D art packages (Max/Maya) - 2D / 3D modeling - Game mapping
c) Modeler: - Conversion of 2D artwork into 3D assets to be imported into your game - Polygonal modeling
d) Animator: - Creation of control systems to turn your character models into the digital puppets to manipulate with, - Creation of the entire game’s motion system
e) Software developer: - Coding and integrating the whole functionality into the game, - Front-end and back-end programming
f) Project Manager (or Team Lead): - Oversees the project and makes sure each project element is completed on time and on budget, - Helps unite the team, solve internal problems, increase team morale, - Acts as an intermediary between client and game development service provider
g) Web designer: - Creation of game’s webpages, online communities and other online media outlets used to promote your game, - Keeping all web properties’ design up to date
i) QA Engineer: - Oversees the project from the quality’s perspective, - Checks the game for bugs and errors, - Conducts full quality assurance control
Scheduling your game production
Create an individual schedule for each team member stating specific details and timeframes for each task assigned to the person
Compile all of the individual schedules into a Master Schedule and build your Agile Scrum practice around it.
Chú ý nghe giảng.
Tích cực tham gia phát biểu ý kiến, thảo luận sôi nổi.
Bài giảng 2: Thiết kế Game
Tiết thứ: 4 - 5 Tuần thứ: 2
- Mục đích, yêu cầu:
• Nắm sơ bộ các khái niệm liên quan đến thiết kế game.
• Nắm được trình tự, nội dung chính của một văn bản thiết kế game.
- Hình thức tổ chức dạy học: Lý thuyết, tự nghiên cứu
- Thời gian: Lý thuyết: 2t; Bài tập: Tự học, tự nghiên cứu: 4t
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
2.1 What Is Game Design?
Game design is the entire process of creating a game idea, from research, to the graphical interface, to the unit’s capabilities.
The jobs of a designer are to
Define the game idea
Define all the screens and how they relate to each other and to the menus
Explain how and why the interaction with the game is done
Create a story that makes sense
Define the game goals
Write dialogues and other specific game texts
Analyze the balance of the game and modify it accordingly
And much, much more . . .
2.2 The Importance of Good Game Design
Formal
Keep focus and progress
Help to remember
2.3 The Two Types of Designs
2.3.1 Mini Design
Mini designs are useful when you are creating a small game or one that is heavily based on another game or a very well-known genre. Some distinctive aspects of a mini design document are. General overview of the game:
Game goals
Interaction of player and game
Basic menu layout and game options
Story
Overview of enemies
Image theme
2.3.2. Complete Design
The complete design document looks like the script from Titanic. It features
every possible aspect of the game, from the menu button color to the number of hit points the barbarian can have. It is usually designed by various people, with
help from external people such as lead programmers or lead artists.
The complete design takes too much time to make to be ignored or misinterpreted.
Anyone reading it should see exactly the same game, colors, and
backgrounds as the designer(s). This kind of design is reserved for big companies that have much money to spare. Small teams or lone developers should stay away from this type of design because most of the time they don’t have the resources to do it. Some of the aspects a complete design should have are
General overview of the game
Game goals
Game story
Characters’ stories and attributes
NPC (Non-Player Character) attributes
Player/NPC/other rule charts
All the rules defined
Interaction of the player and the game
Menu layout and style and all game options
Music description
Sound description
Description of the levels and their themes and goals
2.3.2.1 A Sample Design Doc
The following sections describe a sample design doc you can use for your own designs, but remember—these are just guidelines that you don’t have to follow exactly. If you don’t think a section applies to your game or if you think it is missing something, don’t think twice about changing it.
General Overview
Target System and Requirements
Story
Theme: Graphics and Sound
Menus
Playing a Game
Characters and NPCs Description
Artificial Intelligence Overview
Conclusion
A Sample Game Design: TREK
TREK
Game Design Document
Jonathan S. Harbour
August, 2006
Revision 1.0
This game is based on the classic turn-based Trek games of the early days of computing, when displays were text based and processors were limited and slow. The earliest versions of ‘‘Trek’’ operated on a terminal that scrolled the output,rather than using a dynamic screen. Later versions featured a dynamic screen with on-screen movement of the ships and torpedoes and other objects. The goal of this game design is to duplicate the original ‘‘feel’’ of the classic Trek game, but with updated graphics and a version that runs on modern operating systems.
Since this document is not comprehensive in the description of development stages and specific details, it must be considered a mini design at this point. The design is not extremely specific because it will be fan-supported and not every ship and alien race type will be included in the game right away. Instead, editors will be provided with the game so fans can create or ‘‘fill in’’ the game with their favorite ships and races from the Star Trek universe.
User Interface
The user interface of Trek will be divided into three windows on the screen. The main window, or Main Display, is where the action is—where the ships move around and shoot and interact in the galaxy. This display is also used to display the galaxy in map mode. The Information window, on the right side of the screen, displays key information about selected objects, including the player’s starship. The ship’s status (damage, shields, weapons, etc.) is always visible in the bottom half of this window. In the upper half, information about selected enemy ships, bases, and other objects is displayed.
The Control window, at the bottom, will include buttons and other UI controls to allow the player to do things, such as arm weapons and raise/lower shields. In Map mode, for instance, selecting a new star system will enable a button in the Control window called ‘‘Warp,’’ and the ship will then warp to the new system.
The Control window will include controls that are always visible (such as ship controls) as well as transient controls that change based on the type of object selected in the main display. For instance, you will be able to click an object on the grid (such as an enemy ship or starbase or planet) and scan it. The information about that object will then appear in the Information window.
Main Display
The Main Display will look something like this most of the time: Objects are positioned at the dots, not in the squares. Each dot represents a position in the grid, so objects can be located by a letter and number designation. Letters represent horizontal; numbers represent vertical. The grid is 24_18, for an even 4:3 ratio in the 640_480 window.
Using this technique, an object can be located, positioned, or moved by referencing its letter/number position on the grid. (Remember the game Battleship?) Below is an illustration of the grid with some starships on it. As you can see, each ship is positioned over a point (not inside a square). Here we have just some old sprites from an old game I did many years ago (hey, they seem to be exactly the right size for this 640_480 window). There are three Klingon D-7 Cruisers at the following positions:
1. E-3
2. L-4
3. U-3
Likewise, there is a Federation starship (this one is the Northampton class) located at this point:
N-13
The actual game window will display the letters across and numbers down so the player can quickly and easily pinpoint objects in the window. Most of the user interface may be done in code rather than from loaded images, but this is not a requirement, just a possibility.