Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.
-
Upload
hester-wilkins -
Category
Documents
-
view
220 -
download
0
Transcript of Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.
![Page 1: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/1.jpg)
1
Duel Reality
Josh KilgoreObi AtueyiTom CallowayYe Tian
Software Engineering Spring 2010
![Page 2: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/2.jpg)
2
Summary
Overview Modules
Graphics (Tom Calloway) User Interface (Obi Atueyi) Game Mechanics and AI (Josh Kilgore) Database (Ye Tian)
Conclusion Questions
![Page 3: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/3.jpg)
3
The Overview
Game Description Details Game flow, battle flow
Tools Module Breakdown
![Page 4: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/4.jpg)
4
Duel Reality: the Game
Total Game play experience 2D Turn based Strategy battle simulation 1 Player w/ Ai opponent (maybe 2) Upgradable units 7 - level Campaign and Free Battle Modes Save / Load functionality Amazing Graphics and Sound Dynamic Action Points Game play
XX
X
O
OO
![Page 5: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/5.jpg)
5
Main Game
![Page 7: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/7.jpg)
7
Tools
Development Platform Graphics Database C++
![Page 8: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/8.jpg)
8
Modules
![Page 9: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/9.jpg)
9
Overview Summary
Game Description Details Game flow, battle flow
Tools Module Breakdown
Graphics UI Game Mechanics Database
XX
X
O
OO
![Page 10: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/10.jpg)
10
Game Graphics ModulePresenter: Tom Calloway
What it is. Purpose and overview.
What it does. Key functionality.
How it is implemented. Tools & Architecture. Challenges. Unit Test & Verification.
![Page 11: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/11.jpg)
11
Game Graphics ModulePurpose & Overview (What it is)
The 2D Graphics & Sound Effects!
Pong - 1972
Super Mario Bros. - 1985
![Page 12: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/12.jpg)
12
Game Graphics ModuleFunctionality (What it does)
![Page 13: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/13.jpg)
13
Game Graphics Module Implementation (Tools)
Some Possibilities Direct image manipulation Microsoft DirectX Technology OpenGL (Open Graphics Libraries)
OpenGL Selected Cross-platform Simple Qt Integration Free ($$)
![Page 14: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/14.jpg)
14
Game Graphics Module Implementation (Architecture)
How it works. Receives data from other
modules. Content is loaded from hard
drive. Allows events triggered by
external code modules and users (e.g., move, select, attack, remove, add) .
OpenGL Graphics Widget - Redrawn at 10 fps (10 Hz)
Data Classes - Unit Class (array) - Map Class
User Input - Cell Selection - Resize Window
![Page 15: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/15.jpg)
15
Game Graphics Module Implementation (Challenges)
Transparency Bit masking of multiple images.
Mouse Interactions Coordinate calculations.
OpenGL Familiarity Know what is available. Know how functions work. Understand quirks.
Many Others…
![Page 16: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/16.jpg)
16
Game Graphics ModuleUnit Test & Verification
Create “Dummy” Data Classes Tweak data and observe the
results.
Create “Wrapper” Class Calls and exercises functions.
Wrapper Class
Graphics Module
Dummy Data
Classes
User Input
![Page 17: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/17.jpg)
17
Game Graphics ModuleSummary
Graphics vs. Mechanics 2D Mechanics = 2D Overhead Graphics.
Tools / Architecture Choices Important Avoid future frustration. Create a solid game.
![Page 18: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/18.jpg)
18
User Interface ModulePresenter: Obi Atueyi
Function Architecture
Module Interactions Application Interaction Items
Implementation Tools Class Diagrams Qt Classes▪ QWizard & QWizardPage Classes
Unit Test & Verification Challenges Summary
![Page 19: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/19.jpg)
19
User Interface ModuleFunction
Provide the framework for user interaction with the application
![Page 20: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/20.jpg)
20
User Interface ModuleFunction
Provide the ability for user to choose desired settings
![Page 21: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/21.jpg)
21
User Interface ModuleFunction
Provide status or error messages
![Page 22: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/22.jpg)
22
User Interface ModuleArchitecture: Module Interactions
Menu bar
Tool bar
Status bar
x-
Game Graphics moduleGame
Mechanics module
Database module
User Interface module
![Page 23: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/23.jpg)
23
User Interface ModuleArchitecture: Application Interaction Items
Menu Items New Game Load Game Save Game Restart Game Quit Game
Toolbar Items Attack Move End Turn
Status Bar Items
![Page 24: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/24.jpg)
User Interface ModuleImplementation: Tools
Considered ToolsQtwxWidgetsMFC
Qt Selected Cross-platform Non-GUI features (SQL database) Meta-object compiler (object
macros) 24
![Page 25: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/25.jpg)
25
User Interface ModuleImplementation: Class Diagram
![Page 26: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/26.jpg)
26
User Interface ModuleImplementation: Qt Classes
QMainWindow QPushButton QCheckBox QDialog QWizard QWizardPage
![Page 27: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/27.jpg)
27
User Interface ModuleQWizard and QWizardPage
QWizardPage
QWizard
![Page 28: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/28.jpg)
28
User Interface ModuleQWizard & QWizardPage: New Game Dialog Traversal Paths
![Page 29: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/29.jpg)
29
User Interface ModuleUnit Testing & Verification
Database Generate sprites, maps & test users Perform data reads & writes during new
game dialogs AI
Generate end turn signal Mechanics
Generate battle over signal
![Page 30: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/30.jpg)
30
User Interface ModuleChallenges
Object-oriented design knowledge Qt knowledge Modularity in game development Time constraint
![Page 31: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/31.jpg)
31
User Interface ModuleSummary
Absolutely a fun project Relative knowledge of final product Code complexity vs. user-friendliness
![Page 32: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/32.jpg)
32
Game Mechanics and AIPresenter: Josh Kilgore
Unit Player Mechanics
Move Attack Etc.
Artificial Intelligence What How
![Page 33: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/33.jpg)
33
Unit Class
More than just a pretty face Health Attack Power Attack Range Action Points Movement Rate XP Upgradable Attributes
Teamwork is Key
![Page 34: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/34.jpg)
34
Player Class
Keep Login ID Keep Upgraded Units Continue Campaign from
save point XP Ranking
![Page 35: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/35.jpg)
35
Game Mechanics
Movement ( X moves, cost Action Points)
O
X
X
X
O
O
X
X
X
O
O
O
X
X
X
O
O
O
O
X
X
X
O
O
![Page 36: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/36.jpg)
36
Game Mechanics
Attack (X attacks O, range = 1)
O
X
X
X
O
O
X
X
X
O
O
O
X
X
X
O
O
O
O
X
X
X
O
O
-2 Health
![Page 37: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/37.jpg)
37
Game Mechanics
switchPlayers()isGameOver();moveComplete();isValidMove();isValidAttack();isOccupied();
![Page 38: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/38.jpg)
38
Player Interaction
Player sees icons Signals & slots
![Page 39: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/39.jpg)
39
Game Mechanics Class Diagram
• Rely on Database to store unit data
• Internal Manipulation of data
![Page 40: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/40.jpg)
40
Game Mechanics Verification
Initial Unit Testing -
Console Version Module Testing System Testing
![Page 41: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/41.jpg)
41
AI
Provide Player with playable opponent
Decision Tree Board Evaluation Decide on Best Action
Same constraints as Player actions
![Page 42: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/42.jpg)
42
AI - Decision Tree
![Page 43: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/43.jpg)
43
AI
O
X
X
X
O
O
X
X
X
O
O
O
O
X
X
X
O
O
O
X
X
X
O
O
O
Board Value = 200
Board Value = 300
Board Value = 250
Board Value = 175
![Page 44: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/44.jpg)
44
Game Mechanics & AI Conclusion
Game Mechanics Classes Functions
AI Opponent generation
![Page 45: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/45.jpg)
45
Database Presenter: Ye Tian
Database in the game Software-based containers Storage and retrieval
Database Design SQLite Qt classes
Database Classes Database Test window
Summary
![Page 46: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/46.jpg)
46
Database in the game
Software-based containers
Gamefront
Gamebackground
![Page 47: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/47.jpg)
47
Database in the game
Storage and retrieval
RetrievalStorage
![Page 48: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/48.jpg)
48
Database Design
SQLite
Self-containedServerlessZero-configurationTransactionalPublic domain
![Page 49: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/49.jpg)
49
Database Design
Qt classes
QSqlDriver QSqlDatabaseQSqlQueryQSqlTableModelQSqlRelationalTableModelQSqlRecordQSqlIndexQSqlFieldQSqlError
![Page 50: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/50.jpg)
50
Database Classes Database
![Page 51: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/51.jpg)
51
Database Classes Test window
int main(int argc, char *argv[]){ QApplication app(argc, argv); Database gamedata; gamedata.connection(); gamedata.addPlayer(“sprites”); gamedata.show("sprites");}
![Page 52: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/52.jpg)
52
Database Classes
After unit test
Database module will be added into the entire project through following three steps:
1. Header file and source file database.h; database.cpp2. SQLITE database file gamedata.db33. Project file QT += sql;
![Page 53: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/53.jpg)
53
Summary
Good organization for the game data.
Useful for Storage and for game. Interesting but challengable.
![Page 54: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/54.jpg)
54
Duel Reality: Conclusion
Told you about our awesome game Details Modules – Graphics, UI, Game Mechanics
&AI, Database Pre-orders available Thanks for your attention
![Page 55: Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.](https://reader035.fdocuments.in/reader035/viewer/2022062322/56649e4b5503460f94b3f063/html5/thumbnails/55.jpg)
55
Questions?