Presentation is loading. Please wait.

Presentation is loading. Please wait.

Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.

Similar presentations


Presentation on theme: "Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010."— Presentation transcript:

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


Download ppt "Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010."

Similar presentations


Ads by Google