
Czech Technical University in Prague Faculty of Electrical Engineering Department of Computer Science Bachelor's thesis Board Game Engine VojtˇechKaiser May 2015 Thesis supervisor: Sporka Adam Ing., Ph.D. Declaration I hereby declare that I have completed this thesis independently and that I have used only the sources (literature, software, etc.) listed in the enclosed bibliography. Prague 22 May 2015 i Thanks I would like to express my gratitude to my supervisor Adam Sporka for his useful advices, comments and remarks. I am also grateful to all partic- ipants that sacrificed their precious time for testing of my creation. Fur- thermore, I would like to thank my parents for all the support, emotional and financial, they provided me with. At last, I would like to express my sincere gratitude to my dear Dominique for keeping me sane, encouraging and showing all the support possible, and in the end helping me with cor- rection of my atrocious grammar in this thesis. (note: some places did not go through her hands so you can experience true horror). ii Abstrakt Tato pr´acese zab´yv´atvorbou hern´ıho engine specificky urˇcen´eho pro implementaci deskov´ych her. V´ysledekpr´aceje funkˇcn´ı framework, ve kter´emlze implementovat hry reprezentovateln´ejednoduch´ymstavov´ym automatem. Pro demonstraci moˇznost´ıvytvoˇren´eho engine jsou v nˇem vytvoˇreny dvˇedeskov´ehry pro v´ıce hr´aˇc˚u. V z´avˇerujsou pro ovˇeˇren´ı pouˇzitelnosti syst´emu otestov´any procesy spojen´es tvorbou takov´ych her s program´atorypodobn´ych schopnost´ıjako m´apˇredpokl´adan´ac´ılov´askupina. Abstract The aim of this thesis is to analyze the creation of game engine specifically designated for implementation of board games. The result of this work is a functional framework in which is possible to implement games that can be represented by simple state machine. The engine is used for two board games as a demonstation of its capabilities. Processes related to making of games in the created engine are tested with programmers of similar expertise to target group for verification of its usability. iii Contents 1 Introduction 1 1 Motivation 1 2 Used technologies 1 3 Design outline 2 4 Testing 2 4.1 Creators . .3 4.2 Players . .3 5 Goals 3 2 Background 4 6 Classification 4 7 Physical environment comparison 4 7.1 Board game mechanics . .6 7.2 General game engine types . .8 7.3 Existing solutions . .9 8 General requirements 10 8.1 GUI .............................. 10 8.2 Game components . 11 8.3 Resources . 11 8.4 Network . 12 8.5 Game rules . 12 9 Discussion 12 3 Design 13 10 General architecture 13 11 Event driven applications 13 11.1 Advantages . 13 11.2 Disadvantages . 14 11.3 Application . 15 11.4 Modularity . 16 iv 12 Architecture layout 16 12.1 Scene design . 18 12.2 Logic design . 20 12.3 Data processing . 20 12.4 Network synchronization . 21 12.5 Security . 21 13 Discussion 22 4 Implementation 23 14 Scene 23 14.1 Graph . 23 14.2 Selection . 24 14.3 Styles . 25 14.4 Style properties . 26 14.5 Scene states . 26 14.6 Locks.............................. 27 15 Events 28 16 Logic 28 16.1 Rule Handler . 28 16.2 State space . 29 16.3 Rulesets . 29 16.4 Action vs Rule . 29 16.5 Evaluation element definition . 29 17 Registry 31 17.1 Registry keychain . 31 17.2 Value storage . 31 17.3 Map .............................. 31 17.4 List . 31 17.5 Example . 32 17.6 Merging . 32 18 Rendering 33 18.1 2D graphics acceleration . 33 18.2 Updates . 34 18.3 Application window . 34 19 Loading 34 19.1 XML.............................. 35 19.2 Styles . 36 v 20 Network 36 20.1 Server . 36 20.2 Client . 37 20.3 Issues . 37 21 Tic-Tac-Toe 38 21.1 Rules . 38 21.2 State machine . 38 21.3 Scene . 39 21.4 Registry . 40 21.5 Walkthrough . 41 22 Cards against humanity 43 22.1 Rules . 43 22.2 State machine . 43 22.3 Scene . 45 22.4 Registry . 45 22.5 Walkthrough . 45 23 Discussion 54 5 Usability tests 55 24 Testing in general 55 25 Testing with programmers 55 25.1 Method . 55 25.2 Screening . 56 25.2.1 Participant 1 . 57 25.2.2 Participant 2 . 57 25.2.3 Participant 3 . 57 25.3 Tasks . 58 25.4 Post test questionnaire . 61 25.5 Found problems . 63 25.6 Problems analysis . 64 25.7 Conclusion . 64 26 Testing with players 65 26.1 Method . 65 26.2 Results . 65 26.3 Found problems . 66 26.4 Conclusion . 67 6 Conclusion 68 vi 27 Further development 69 7 70 Appendices 70 A Getting started 70 A.1 Installation . 70 B Scene graph 71 B.1 File specification . 71 B.2 Available nodes . 72 B.2.1 SceneNode . 72 B.2.2 PaintableNode . 72 B.2.3 StyleableNode . 72 B.2.4 GroupNode . 73 B.3 Available components . 73 B.3.1 Container . 73 B.3.2 Panel . 73 B.3.3 Text . 74 B.3.4 Layout . 74 B.4 Adding new components and nodes . 74 C Events 76 C.1 Available events . 76 C.1.1 Event . 76 C.1.2 Window event . 76 C.1.3 Mouse event . 77 C.1.4 Message event . 77 C.1.5 Keyboard event . 77 C.1.6 Interaction event . 78 D Scene styles 78 D.1 File specification . 78 D.1.1 Comments . 78 D.1.2 Selectors . 79 D.1.3 Styles . 80 D.1.4 Includes . 80 D.2 Available properties . 80 D.2.1 Layer . 81 D.2.2 Visible . 81 D.2.3 Style ID . 82 D.2.4 Style class . 82 D.2.5 Interaction states . 82 vii D.2.6 Dimensions . 83 D.2.7 Margin . 83 D.2.8 Padding . 84 D.2.9 Pivot . 84 D.2.10 Position . 84 D.2.11 Min-max dimensions . 85 D.2.12 Aspect ratio . 85 D.2.13 Background color . 86 D.2.14 Background image . 86 D.2.15 Background repeat . 86 D.2.16 Background image alpha . 87 D.2.17 Border size . 87 D.2.18 Border color . 88 D.2.19 Border radius . 88 D.2.20 Border position . 88 D.2.21 Border mode . 89 D.2.22 Border image . 89 D.2.23 Cursor . 89 D.2.24.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages123 Page
-
File Size-