Download presentation
Presentation is loading. Please wait.
Published byHester Wilkins Modified over 9 years ago
1
Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010
2
Overview Modules Graphics (Tom Calloway) User Interface (Obi Atueyi) Game Mechanics and AI (Josh Kilgore) Database (Ye Tian) Conclusion Questions 2
3
Game Description Details Game flow, battle flow Tools Module Breakdown 3
4
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 4 X X X O O O
5
5
6
6 Basically: KILL EM ALL
7
Development Platform Graphics Database C++ 7
8
8
9
Game Description Details Game flow, battle flow Tools Module Breakdown Graphics UI Game Mechanics Database 9 X X X O O O
10
What it is. Purpose and overview. What it does. Key functionality. How it is implemented. Tools & Architecture. Challenges. Unit Test & Verification. 10
11
The 2D Graphics & Sound Effects! 11 Pong - 1972 Super Mario Bros. - 1985
12
12
13
Some Possibilities Direct image manipulation Microsoft DirectX Technology OpenGL (Open Graphics Libraries) OpenGL Selected Cross-platform Simple Qt Integration Free ($$) 13
14
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). 14 OpenGL Graphics Widget - Redrawn at 10 fps (10 Hz) Data Classes - Unit Class (array) - Map Class User Input - Cell Selection - Resize Window
15
Transparency Bit masking of multiple images. Mouse Interactions Coordinate calculations. OpenGL Familiarity Know what is available. Know how functions work. Understand quirks. Many Others… 15
16
Create “Dummy” Data Classes Tweak data and observe the results. Create “Wrapper” Class Calls and exercises functions. 16 Wrapper Class Graphics Module Dummy Data Classes User Input
17
Graphics vs. Mechanics 2D Mechanics = 2D Overhead Graphics. Tools / Architecture Choices Important Avoid future frustration. Create a solid game. 17
18
Function Architecture Module Interactions Application Interaction Items Implementation Tools Class Diagrams Qt Classes ▪ QWizard & QWizardPage Classes Unit Test & Verification Challenges Summary 18
19
19 Provide the framework for user interaction with the application
20
20 Provide the ability for user to choose desired settings
21
21 Provide status or error messages
22
22 Menu bar Tool bar Status bar x- Game Graphics module Game Mechanics module Database module User Interface module
23
23 Menu Items New Game Load Game Save Game Restart Game Quit Game Toolbar Items Attack Move End Turn Status Bar Items
24
Considered Tools Qt wxWidgets MFC Qt Selected Cross-platform Non-GUI features (SQL database) Meta-object compiler (object macros) 24
25
25
26
26 QMainWindow QPushButton QCheckBox QDialog QWizard QWizardPage
27
27 QWizardPage QWizard
28
28
29
Database Generate sprites, maps & test users Perform data reads & writes during new game dialogs AI Generate end turn signal Mechanics Generate battle over signal 29
30
Object-oriented design knowledge Qt knowledge Modularity in game development Time constraint 30
31
Absolutely a fun project Relative knowledge of final product Code complexity vs. user-friendliness 31
32
Unit Player Mechanics Move Attack Etc. Artificial Intelligence What How 32
33
More than just a pretty face Health Attack Power Attack Range Action Points Movement Rate XP Upgradable Attributes Teamwork is Key 33
34
Keep Login ID Keep Upgraded Units Continue Campaign from save point XP Ranking 34
35
Movement ( X moves, cost Action Points) 35 O X X X O O X X X O O O X X X O O O O X X X O O
36
Attack (X attacks O, range = 1) 36 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
37
37 switchPlayers() isGameOver(); moveComplete(); isValidMove(); isValidAttack(); isOccupied();
38
Player sees icons Signals & slots 38
39
39 Rely on Database to store unit data Internal Manipulation of data
40
Initial Unit Testing - Console Version Module Testing System Testing 40
41
Provide Player with playable opponent Decision Tree Board Evaluation Decide on Best Action Same constraints as Player actions 41
42
42
43
43 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 = 250Board Value = 175
44
Game Mechanics Classes Functions AI Opponent generation 44
45
Database in the game Software-based containers Storage and retrieval Database Design SQLite Qt classes Database Classes Database Test window Summary 45
46
Software-based containers 46 Game front Game background
47
Storage and retrieval 47 Retrieval Storage
48
SQLite Self-contained Serverless Zero-configuration Transactional Public domain 48
49
Qt classes QSqlDriver QSqlDatabase QSqlQuery QSqlTableModel QSqlRelationalTableModel QSqlRecord QSqlIndex QSqlField QSqlError 49
50
Database 50
51
Test window 51 int main(int argc, char *argv[]) { QApplication app(argc, argv); Database gamedata; gamedata.connection(); gamedata.addPlayer(“sprites”); gamedata.show("sprites"); }
52
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.cpp 2. SQLITE database file gamedata.db3 3. Project file QT += sql; 52
53
53 Good organization for the game data. Useful for Storage and for game. Interesting but challengable.
54
Told you about our awesome game Details Modules – Graphics, UI, Game Mechanics &AI, Database Pre-orders available Thanks for your attention 54
55
55
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.