Home
Gaming DavidBengoa_ProjectReport
Contents
1. bucket E Bucket select idGame Map lt Integer E_Bucket gt insert idGame bucket boolean updateLocalDB idGame actionsToDo void O select idGame Map lt Integer E_Machine gt insert idGame machine boolean updateLocalDB idGame actionsToDo void operator E_Operator select idGame Map lt Integer E_Operator gt selectSkillPerOperator idGame idOperator insert idGame operator boolean insertSkillPerOperator idGame idSkill idOpe updateLocalDB idGame actionsToDo void D_Supplier supplier E_Supplier select idGame Map lt Integer E_Supplier gt insert idGame supplier boolean updateLocalDB idGame actionsToDo void catalog E_Catalog select idGame idSupplier Map lt Integer E_Catalog gt insert idGame catalog boolean selectByGame idGame ArrayList lt E_Catalog gt updateLocalDB idGame actionsToDo void D_AssemblyDetails assembly E_AssemblyDetails select idGame Map lt integer insert idGame assembly boolean updateLocalDB idGame actionsToDo void updateLocalDB idGame actionsToDo void loadGamesOfAPlayer idPlayer ArrayList lt E_Game gt selectGamesOfAPlayer idPlayer selectGamesOneGame idGame selectGamesByType gameType updateLocalDB idGame actionsToDo updateLocalDBByPlayer idPlayer Q Q Y mapGameSkill Map lt Integer E_Skill gt mapGameSuppl
2. void getNextOrderDueDate String updateTimeOrders void JoginPlayer email password void Y O order E_Order select idGame Map lt Integer E_Order gt updateLocalDB idGame actionsToDo Y select idTerrain E_Terrain game E_Game arrGame ArrayList lt E_Game gt update game boolean updateGameBestScore game void updateWonGame game void updateFailedGame game void insert game int Q updateLocalDB idTerrain actionsToDo Y D Player player E_Player arrPlayer ArrayList lt E_Player gt validateEmail email boolean selectOnePlayer email pass E_Player playerLog_Insert playerLog boolean playerLog_Update playerLog boolean playerLog_Select idPlayer playerLog_Updateld playerLog void playerLog_Delete playerLog void Operation E_Operation O select idGame Map lt Integer E_Operation gt insert idGame operation boolean updateLocalDB idGame actionsToDo void purchase E_Purchase select idGame Map lt Integer E_Purchase gt insert idGame purchase boolean updateLocalDB idGame actionsToDo void select idGame Map lt Integer E_Ship gt insert idGame ship boolean updateLocalDB idGame actionsToDo void transport E Transport select idGame Map lt Integer E_Transport gt insert idGame transport boolean updateLocalDB idGame actionsToDo
3. percentage_variability_m ax DECIMAL 10 2 id_supplier INT 11 id_part INT 11 id_game INT 11 quality DECIMAL 10 2 production_distn VARCHAR 10 id_to_update INT 11 production_parameter1 DECIMAL 10 2 9 id_game INT 11 production_parameter2 DECIMAL 10 2 O game_table_key INT 11 Oprice_function 1_limit INT 11 O game_teable V ARCHAR 45 price_function 1_charge DECIMAL 10 2 9 action_to_do VARCHAR 45 price_function 2_limit INT 11 Q creation_date DATETIME price_function 2_charge DECIMAL 10 2 price_function 3_limit INT 11 price_function 3_charge DECIMAL 10 2 id_machine INT 11 id_game INT 11 machine_description VAROHAR 50 speed DECIMAL 10 2 O weight_capacity DECIMAL 10 2 volume_capacity DECIMAL 10 2 pick_up_time_distn VARCHAR 20 pick_up_time_parameter 1 DECIMAL 10 2 gt 1 pick_up_time_parameter2 DECIMAL 10 2 machine_time_distn VARGHAR 20 machine_time_parameter 1 DECIMAL 10 2 machine_time_parameter2 DECIMAL 10 2 9 placem ent_tim e_distn VARCHAR 20 id_Log INT 11 date_time DATETIME message VARCHAR 200 id_terrain INT 11 placem ent_tim e_parameter 1 DECIMAL 10 2 o _ VARCHAR 45 placem ent_tim e_parameter2 DECIMAL 10 2 id_supplier INT 11 o ap VARO1AR 100 time_between_failures_distn VARCHAR 20 1 id_game INT 11 o Be DECIMAL 10 2 time_between_failures_param eter 1 DECIMAL 10
4. Cesta A Coraci L Cortellessa G De Benedictis R Mohier F Polutnik J 2011 Only hope remains in the Pandora s http www pandoraproject eu Zapusek M 2011 Serious computer games as instructional technology Mipro 2011 Proceedings of the 34th International Convention Eric Freeman Elisabeth Freeman Kathy Sierra and Bert Bates 2004 Head First Design Patterns First Edition O Reilly Media Inc OMG 2007 OMG Unified Modeling Language OMG UML Superstructure V2 1 2 http www omg org spec UML 2 1 2 Superstructure PDF IEEE Std 1008 1987 IEEE Standard for Software Unit Testing An American National Standard Unity 3D v4 1 2 http www unity3d com unity UDK 3 0 Unreal Development Kit http www unrealengine com udk GameStart Cross Platform 3D amp 2D Engine Beta 2R7 http www gamestart3d com home Cocos2d 0 5 5 http www cocos2d org index html Carl Adam Petri and Wolfgang Reisig 2008 Petri Net Scholarpedia http www scholarpedia org article Petri_net StarCraft 2 http us battle net sc2 en game maps and mods Age of Empires 3 http www ageofempires3 com 76 TI APPENDIX A Test Cases 1 Logging User Each time a user wants to play the game will require a user and password Otherwise 1t will be impossible start the game Table 1 Logging user ne Test Case Case Description Expected Results Comments ID Name Validate User and password Password is case 1
5. 0 0 0 0 0 0 0 0 Total Orders 10 Max of Failed Orders 6 Game Log Update 1 X PartFive Jan 1 05 30 January 2 00 34 2 Gameisrunning at 1 8x speed 2 X PartFive Jan 1 05 14 January 2 00 35 2 Gameisrunning at 1 4x speed 3 X PartFive Jan 1 06 52 4 X PartFive Jan 2 00 39 January 2 00 36 Gameisrunning at 1 2x speed January 2 00 38 2 Gameisrunning at 1x speed y Nx N EPA O MESES Figure 6 15 GUI controls in the game environment 6 6 User Interface Design The same user interface design is based on the software requirements presented in Section 5 3 This section describes the most notable user interfaces features 59 6 6 1 Login and Main Menu Figure 6 12 shows the login and main menu panel the first screen that the player sees each time that he she starts the game The login process will require an email registered with a valid password Once the user is authenticated the game proceeds to synchronize the user data between the local and remote databases The figure also shows the main menu consisting of several buttons that can be used to select among the options mentioned in Section 5 2 1 2 Main Menu Welcome back NAME NNN New Game FURNITURE FACTORY Profile FURNITURE Stop Tutorial Pozi Credits Email Switch User Password Quit Game New User Figure 6 16 Login menu left and main menu right 6 6 2 Main Information Panels Figure 6 13 is composed of three subpanel
6. Game Environment and Controls The main user interface is the game environment given that it will show the factory with 3D graphics design moving every graphic element in accordance to the game activities and with several controls allowing the player to take control of the game This development is integrated with the Nifty GUI and the JMonkey engine which means that the user will interact with both For example the actions taken by Nifty GUI controls are reflected in the game environment i e JMonkey engine The 3D graphic design shown in the game environment was designed by the art team headed by Professor Felix A Zapata Game development is not only a set of visual objects and controls it requires a set of sounds that should be played in different moments during the game For example the game will have a background music that can be disabled some activities like processing a new part will have an assonantal sound according the factory machine used equipment breaks will have another sound and so on Most sounds used in the game have been found free on the Internet except of the background music which was provided by the music team 5 2 1 4 Pop up Windows The use of pop ups in the game has been applied as shown below o Starting the game Once the game starts it will show a pop up that will synchronize the game data between the remote and local databases 25 o Login user Once the user is logged into the game it
7. Reason why feature is not tested i will dgsaad an the pasa Appendix B provides the will depend on the player s computer PC During testing PC requirements were requirements computer requirements to P d validated Once completed the game execute the game i has run satisfactorily The synchronization process y P AS was mentioned in the feature could take some seconds or Synchronization description it will depend of the transfer speed inut d di th MUNUS PICS OMN E peed which in turn depends on the amount of data and the user s bandwidth transfer speed This game release is available Other OS for the following operating The game has not been tested in Unix compatibility systems Windows Linux or any tablets or smartphones and Mac OS 7 2 3 Testing Tools and Environment Initially when the game was in the development stage the testing process was done manually in the same machine without requiring any third party software to execute it The game was tested by test team after the game development was completed During testing the author showed and explained all functionalities of the game and each tester received the game installer that was installed in their computers These computers complied with the PC requirements as shown in Appendix B Furthermore testing took place once a week for different purposes for example detailed results and feedback were given to the development
8. The diagram includes the interactions between the different layers 37 A Player 6 getGameLogic 73 getUserData SS A 17 playMewGameSounds Figure 6 2 UML Sequence diagram start a new game In this layer we apply the strategy design pattern 21 in order to manage each type of activity This pattern allows us to achieve a maintainable scalable and high performance application Additionally an artificial intelligence algorithm called A A Star 16 will be used in order to find the shortest path between two geographical locations in the factory For instance when a transport activity occurs A finds the path between the initial and final stations to move the requested part The business layer will create as many threads as necessary to allow the presentation layer to show a concurrent animation of being picked up and movements at parts around the plant Also the business layer contains a discrete event engine called SimPack which is used to manage the events in the game For example 1 we use a periodic event managed by SimPack to validate and execute all the available activities that are obtained from the 38 database 2 when the game engine executes an activity it schedules a future event in SimPack queue 15 and it must finish in some specific time to release any resources locked and make them available to other events 6 1 4 Data Access Layer This bottom layer serves as the middleware
9. a serious educational game needs to be developed Previous research has demonstrated that science can be taught through games however industrial engineering is a field that is yet to be studied regarding the possibility of using games as a teaching tool To address this weakness this project will focus on developing deploying and assessing a video game based on a factory that aimed at freshmen students This game will have features that will allow the student to discover and visualize several IE fundamental concepts to acquire a notion about the types of decisions and actions that are required to run a manufacturing environment to develop critical thinking skills and problem solving skills to acquire a vocabulary of IE terms and to practice IE concepts to strengthen their technical background 1 3 Our Approach The original NSF proposal established the main activities of the game which included operation transport store and purchase These operations were described in detail using Petri Nets 3 Our game is based on those activities but with some improvements The new types of activities are operation transport storage purchase and shipping Each level has multiple instances of these activities depending on the resources available Furthermore the set of activities stations storages workers machines equipment etc are stored in two databases remote and local for each phase of the game Therefore when the adminis
10. void Skill E_Skill select idGame selectSkillsPerActivity idGame dActivity X insert idGame insertSkillsPerActivity idGame idActivity Y E_TerrainReserved D TerrainReserved terrainReserved E_TerrainReserved select idTerrain Map lt Integer E_TerrainReserved gt ees updateLocalDB idTerrain actionsToDo void Figure 6 9 Facade pattern Class diagram 50 6 3 4 Singleton Pattern This design pattern 1s usually applied to avoid unnecessarily creating many instances of a class All other classes use a single instance of the class every time The pattern coordinates when different threads try to obtain information from this instance at the same time by making the main method synchronized The GameData class holds a lot of information and thus requires a lot of memory so applying singleton pattern avoids duplicating this data Figure 6 6 below shows the relation between the GameData class and the GameEngine class indicateing that it uses the singleton pattern The MySqlConn and SQLiteConn classes also use the singleton pattern and are called each time the game engine needs to communicate with either database Figure 6 10 Singleton pattern Class diagram 6 4 Database Design The database design changed continuously during game development Initially the game only managed the MySQL engine as the remote database storing all game and user Jl data When a lo
11. 1 No error messages a fields must be correct sensitive Once fields are Synchronization validated the game is Access the game process of user data accessed begins Login successful If user and or password are A detailed error Login failed incorrect or not message is shown registered 2 Create New User A new player must create a new user in the system In order to do that the game will need an Internet connection to validate the new user with existing user data in the remote database Once the player completes the registration and 1t 1s validated then he she will receive the generated password in the email registered 78 Table 2 Create new user Test Case Description Expected Results Comments Name Clicking on create Access to the new user button will Access to the create Displayed fields are screen retrieve the new user screen empty appropriate screen Fields are validated If correct it will When it is not Validate to check that they validated it will proceed to the successfully fields have been correctly show an error registration filled message The pl ill not Once fields are It sends the generated E validated 1t will password to the register the new user email be able to play 1f he she adds a fake email Register successfully 3 Update Existing User After the player logged into the system he or she will be in the main menu Clicki
12. Otherwise the player should click on the Default Setup button and every step will be setup automatically Game Setup Please setup the game step by step 1 Setup resources workers machines and equipment 2 Allocate storages slots per storage 3 Setup unit load for each transport activity 4 Setup reorder point and order quantity for each purchase 5 Assign workers for each activity ar 6 Setup execution priority for each activity Default Setup Stan Game Figure 6 28 Game setup screen 68 7 SOFTWARE INTEGRATION AND TESTING 7 1 System Overview Software testing 1s the final stage in the software development life cycle and its purpose 1s to evaluate discover game defects bugs and fix them in order to achieve a reliable and high quality product Also it helps confirm whether the game is following the specified requirements or not and solve issues when is necessary Among the tests available only the unit test 23 and integration test will be used to ensure the proper functioning of the game features During the development phase carried out by the author different tests as mentioned above were done The testing process was performed each time that the developer completed programming a feature Once all features were completed eight 8 testers were in charge of the testing process using the test cases that are shown below The test team was comprised of men and women including game
13. Purchase to StorageRM 10 Purchase Purchase Partl Figure 6 21 Unit load screen 63 6 6 4 Activities Screens 6 6 4 1 Operation The activity screen Figure 6 18 shows an operations list on the left side Once the user clicks on an activity the activity s data is loaded on the right side of the screen which provides information about the current activity and allows changing the amount of pieces to be assembled or cut Furthermore it has a list in the bottom of the right side this list shows the number of parts required in order to produce a new product or part Activities list Activity Activity ID 9 Description Assemble Part4 Type Activity Operation Part Part Four Station Assembly Process 1 Station Inventory 0 Max 40 PART Output Quantity 5 Input Parts Required PartOne 1 Part Two 2 Refresh Figure 6 22 Operation activity screen 6 6 4 2 Purchase The left side of this screen is similar than the screen in figure 6 18 the only difference is that it shows a list of purchase activities The right side has information about the purchase activity and three 3 controls which allow the user to set up the reorder point order quantity and desired supplier Figure 6 19 64 6 6 4 3 Transport Activities list Activity ID 1 Description Purchase Part1 Type Acuity Purchase Part PartOne Station Receiving Dock Station Inventory 0 Max 100 PART General inventory 0 PART
14. Reorder Point 20 4 Order Quantity 20 4 Supplier Price Per Unit 5 0 Money Required 100 0 Time To Arrive 08 00 hours Figure 6 23 Purchase activity screen The left side of Figure 6 20 is the same as the screen in Figure 6 19 however the right sideshows information about the transport activity e g description part initial station and final station Also it allows the user to choose the amount of parts desired for the activity The refresh button commits the changes done only to the current activity A ei ity Activities list Activity ID 4 Description Part1 from Purchase to StorageRM Type Activity Transport Part PartOne From Station Receiving Dock Inventory 0 PART Unitoad 10 To Station Raw Material Storage Inventory 0 PART Figure 6 24 Transport activity screen 65 6 6 5 Utilities Screens 6 6 5 1 Station This game manages two 2 different kinds of stations Figure 6 21 shows a no storage station left side and a storage station right side The station on the left side contains a list of buckets providing details like unit part inventory and capacity part assigned among others The storage station right indicates costs which 1s why 1t provides the user a control to choose the number of slots available Also 1t has a slots summary detailing the number of slots available number of slots occupied for each part and number of parts stored into slots
15. SOFTWARE REQUIREMENT SPECIFICATIONS 5 1 Introduction 5 1 1 Purpose The purpose of this chapter is to give a complete description of the Factory Game It will explain the features interfaces performance and development requirements of this game The chapter structure shown below is based on the IEEE standards 4 It is supplemented by the software design description and the software integration and testing chapters 5 1 2 Project Scope This game is a cross platform application that allows a single player to improve his her understanding of some JE core concepts and other problem solving skills in complex unstructured problems This software release is available only for personal and desktop computers It provides the user automatic updates managed through different synchronized databases 1 e a remote database in a server and a local database for each user The game has been built with a 3D game engine and contains several controls 1 e game variables to achieve different results In general 1t focuses on providing an easy to play and a realistic playing experience 23 5 2 External Interface Requirements 5 2 1 User Interfaces 5 2 1 1 Login and Create New User The login process is the introductory screen in the game to further use other features In case the player does not have a registered user he she must go to the screen create a new user This screen should be filled thoroughly and requires some us
16. Station 1 PurchaseZone Station 2 StorageRM Stations list Station ID 3 Stations list Station ID 4 Description Receiving Dock Description Raw Material Storage Slot Cost Hour USD 0 50 Selected Slots 28 56 lt Slot Total Cost Hour USD 14 00 Part One Current Total Cost USD 0 00 Part One Current Slot Usage 0 28 Buckets List Part Two Slots Summary Part Two Part Three Empty Part Three Part Two Part Five Part Four PartOne Part Three Figure 6 25 Different stations no storage left and storage right 6 6 5 2 Machine Equipment The equipment and machine screens Figure 6 22 are similar the difference is the concept of each one These panel enables the user to buy or sell the machine or equipment 66 When the user wants to sell a machine or equipment he she will notice that the current sale price will decreasing This depreciation occurs when the machine or equipment is used also the screen shows information about regarding the depreciation like percentage of depreciation and percentage of accumulated depreciation In addition the machine or equipment has a cost per hour percentage of availability percentage of usage number of parts produced only machines and a percentage of failure However if the user wants to avoid the machine to break then he she can perform a preventive maintenance as shown in the figure below Machines list Machine ID 8 Description Assembly Machine Buy Sell
17. add OperatorAndMachineWalkToTOstation gt stateMachine add Placementitems stateMachine add Release Figure 6 5 Transport activity Petri Net left and Java state machine right On the other hand each game level has many different activities that have been loaded from the database Therefore in order to manage them as efficiently as possible we developed the process of activity execution shown in Figure 6 6 which 1s carried out by the game engine the discrete event machine plus some additional classes 42 Game Engine Discrete Event Machine 1 Schedule recurrent event Game Loop Schedule events 2 Return recurrent event A Activities List Purchase 3 Execute recurrent event Manage Activities Class 4 Activities Execution ExecuteActivities Operation Figure 6 6 Management of activities in Java According to Figure 4 above this process takes 4 steps to execute activities First the game engine schedules a recurrent event in the discrete event machine Second once this event finishes the discrete event machine returns it to the game engine Third the engine calls the method ExecuteActivities in the ManageActivities class Fourth this method tries to execute the current step in the state machine of each activity For example validate requirements of a transport activity or release resources of an operation activity The same activity can be executed many times simult
18. and crew Fields in the login screen are empty The player can cancel the pop up and return to game This feature occurs in the game environment i e the factory and it is triggered each time that the user clicks and holds right button on the mouse then the game should move the camera at the same direction that the mouse is moved Table 7 Factory navigation Expected Results 82 Case Name ID Validate camera navigation It allows rotating 1 e 360 degrees and zooming the game s camera 8 Game Setup Function The game s camera has zooming and rotation limit This activity can be performed using the right button or center button of the mouse This feature occurs mostly at the beginning of each game level In the Game Setup screen it shows six 6 steps to set up before starting a game level Also it has a button called Default Setup it is used in case the player does not want to waste time configuring the game However this functionality validates when the user clicks on the image of each step in the game setup screen to open the appropriate screen Test Case Name Validate Start game before setup Validate Start game after setup Validate click on each setup button Table 8 Game setup function Description When at least one step is not setup then the game will not start Every step must be setup to allow the game to start Each im
19. application Chapter 5 relates the software requirement specifications Chapter 6 provides detailed information about software design description based in 5 Chapter 7 software integration and testing and is based in 6 7 and 8 Finally Chapter 8 presents conclusions and recommendations 2 RELATED WORK This section presents related works about educational games regarding the immune system and training of crisis managers Also other studies about the use of games as a teaching tool in the school university or related 2 1 How to Build Serious Games The computer game Immune Attack was created by a team of computer programmers as a serious science based game 17 This game combined a realistic 3D depiction of biological structure and function of the human body with educational technologies to teach immunology to high school and college freshmen As part of this experience the developers describe the process of creating a serious game as a challenging endeavor as it has to satisfy experts and novices while addressing deeply held pedagogical assumptions distinct expert viewpoints integration of gameplay and learning content among others 2 2 Games for Science and Engineering Education The United States has a relatively small percentage of engineering graduates compared to other developing nations a statistic that 1s attributed to the perception that science and engineering is a boring course of study The author s
20. credits Table 6 Game Navigation T Test Case o Case Description ID Name See deca cri 0 A 81 Expected Results Comments New game button click Validate Profile button click Validate Tutorial button click Validate Return to game button click Validate Credits button click Validate Switch user button click Validate Quit game button click gt will access another screen which contains the list of games to be played Clicking this button will access the profile screen Clicking this button will load the tutorial in a browser As the button s description says clicking on it will return to the game The button will open a pop up that will show game credits The button will logout the current user and it will return to the login screen It will trigger a pop up asking if the user wants to exit the game or not 7 Factory Navigation with the list of games available It shows this screen with the current user data Internet browser containing the tutorial It will return to the game only when a game is running Credits will be shown in a pop up Once the action 1s completed it will show the login screen Pop up asks the player to confirm closing the game It will open the default Internet browser When no game is running then this button is disabled This information identifies the main author
21. each operators the game act v ty screen Validate It will allow choosing It will not allow actions on oe at the priority of The game executes choosing the same riori l ay a ee an Y 7 execution for each activities by priority priority for more activities activity than one activity screen It will allow hiri Validate t will allow hiring actions on e The number of A fired operator or and firing operators ae operators machines sold machine 1s p and buying and co resources l and equipment can identified by a red selling machines or l screen vary during the game sphere on the top equipment 84 Validate actions on unit load screen It allows the player to The game is going to choose the amount of 8 Soma j move the amount parts or raw material selected for each to move during a i transport activity transport activity 10 Activities screens The amount selected cannot be less than zero This feature also validates the consistency of user actions Clicking the Activities button shows operation purchase and transport buttons Furthermore these buttons display an appropriate screen with some functions Clicks on buttons or screens will be validated T s Test Case a Case Description ID Name Validate actions on operation screen Validate actions on the purchase screen Table 10 Activities screens Expected Results
22. each platform 5 6 6 Performance Given that currently most of the new computers have powerful components as graphic cards memories and processors game performance should not be a major issue However there are still computers with old components that will not allow the game to run or difficulties may occur making the game run slower The game should be continuously improved to make the experience enjoyable regardless of the hardware 35 6 SOFTWARE DESIGN DESCRIPTION 6 1 System Architectural Design 6 1 1 System Overview The development of the proposed game will follow the system architecture shown in Figure 6 1 This architecture is comprised of four main tiers layers each having specific functions 1 The presentation layer provides the graphical user interface GUI 2 The business layer which contains and controls the artificial intelligence algorithm the discrete event engine input manager sound engine graphic engine and game engine 3 The data access layer provides simplified access to data stored in persistent storage 4 The data source stores the set of tables and routines the game logic and the user data Presentation Business Data Access Data ON E Figure 6 1 Overview of the game architecture 6 1 2 Presentation Layer This is the top layer in the architecture and is the one the user will interact with On this layer the user will log into the application select the game that wi
23. find the game installed in his her programs list and the game will be ready to play 91 GLOSSARY OF TERMS API Application programming interface is a set of protocols routines and tools for building software applications GPU Graphics processing unit it is used primarily for 3D applications OpenGL It is a 3D graphics language that was built into Windows NT and is designed to improve performance on hardware that supports this standard SDK Software development kit It is a programming package that enables a programmer to develop applications for a specific platform RC2 Release candidate 2 It is a beta version with potential to be a final product GUI Graphical user interface This user interface allows user to interact with the computer or specific software XML Extensible markup language It allows developers to create their own customized tags enabling the definition transmission validation and interpretation of data between applications RDBMS Relational database management system It means that stores data in the form of related tables SMTP Simple mail transfer protocol It is a protocol for sending email messages TCP IP Transmission control protocol Internet protocol It is the suite of communications protocols used to connect hosts on the Internet IEEE Institute of Electrical and Electronics Engineers It is best known for developing standards for the computer and electronic
24. for the team The features have been adding reducing and changing constantly during this whole process given the lack of experience developing games but fortunately the software specifications have been established and these are o Synchronization process This feature will be executed through different pop ups as mentioned in Section 4 2 1 4 1 e starting the game and login user Also once the user finishes one game level the game engine should trigger this sync process as mentioned in Section 4 5 More details about the synchronization process can be found in Section 4 2 4 1 o User Profile A new user will be required to fill the registration screen as mentioned in the Section 4 2 1 1 This screen contains significant fields in order to use this user information for future studies These fields will be name last name gender status 1 e undergraduate student graduate student corporate among others degree country and email Once the new player completes it he or she should receive a message with the new password in the email account o Main Menu This feature will be a screen that centralizes the different ways that a player can move in the game The New Game button should be the most valuable 29 option to the player For more details about this menu and the game list could be found in Section 4 2 1 2 Game Environment This feature is the most notable graphically because the environment is based on a factory and
25. n orientada a objetos Adem s se utiliz dos motores de base de datos que se encuentran sincronizados entre s uno local y otro remoto SQLite y MySQL respectivamente Finalmente se est utilizando JMonkey como motor de juego SimPack como generador de eventos discretos y aplicando un algoritmo de Inteligencia Artificial para encontrar el camino m s corto entre dos puntos en la f brica To my grandma parents brothers and newborn niece Thanks for being there for me vi ACKNOWLEDGEMENTS First at all I would like to thank to my advisor Dr Bienvenido V lez for his continue support and recommendation in every step of the game development Also I would like to thank my graduate committee Dr Agust n Rull n who trusted me from the beginning gave me the opportunity to be part of his main research Dr Cristina Pomales Garc a who guided me in different stages of the game development and promoted this achievement in every available event and Dr Jos Borges who provided me with his knowledge in the design patterns area and object oriented programming Thanks to my family although they are far from me I know that I always had their unconditional support Also I appreciate having met such good friends here in Puerto Rico especially my Ecuadorian friends Ana Negrete and Marcelino Guachambala Ana I want to thank you for your help to complete this project report I want to thank to Yadrianna A Christian V and the
26. team new game versions were tested and new tasks were executed In addition testers did not use any automated testing mechanism everything was done manually and stored in a Wiki page for the game 71 8 CONCLUSIONS AND FUTURE WORK 8 1 Conclusions Game development has been a challenge for the team given the game complexity as well as the use and integration of different emerging technologies The current version provides 4 different levels of increasing difficulty and can be easily installed in different platforms 1 e Windows Mac OS and Linux Currently the game has completed the pilot phase testing process and 1s ready to be played by freshman students in order to evaluate the research objective which is to know if the students learned or not Industrial Engineering core concepts and improved problem solving skills As part of this testing process many critical bugs have been fixed but there are still others of lower priority that must be addressed Furthermore the GUI design has been improved in order to make the user s interaction as simple and efficient as possible Finally we expect that this project will promote the development of other educational activities based on gaming given the lack of Industrial Engineering research through games 9 2 Future Works The game development was completed in accordance with the estimated scope However some improvements and changes are still being considered to be implem
27. text but 1t can be customized to show images text and buttons in a single row r F Fre Faery Gore GTA NUP SF 5590 By Darid ergs Ms Game Level 4 Playing mn E January2 0052 NextOrder Due Purchase 6 Busy 2 Idle USD 2 728 95 Setup E Menu Station 5 Receiving Dock Station 6 StorageFG lt Overall Ma Information Machine 4 Raw Material Storage Station ID 6 Available Cash USD Controls Equipment 7 Cutting Process 1 Description Finished Goods Storag Total Expenditures USD a Width 50 0 Overhead Cost Hour USD A Length 50 0 Operator Cost Hour USD 8H Utilities Part 2 Ship Current Location 80 150 Operator Hire USD Supplier Slot Cost Hour USD 0 50 Operator Fire USD gt Selected Slots 45 90 lt 0 Machine Cost Hour USD Slot Total Cost Hour USD 22 50 Machine Purchase USD Current Total Cost USD 0 00 Machine PM USD Equipment Cost Hour USD Equipment Purchase USD Free USD 0 00 Equipment PM USD Free USD 0 00 Storage Cost Hour USD Part Purchase USD OFree eet Total Incomes USD Free USD 0 00 eg Y Machine Sale USD Free USD 0 00 SE Equipment Sale USD Unavailable USD 0 00 SSS Part Sale USD 0 00 Total Profit USD 2 271 05 Activities Operator 6 Finished Goods Storage Slots List Unavailable USD 0 00 Unavailable USD 0 00 Unavailable USD 0 00 Unavailable USD 0 00 Order Refresh Objective Create and ship part 5 when the order arrive 0 0
28. the activities we created a specific state machine for each activity which was then translated into Java code to be incorporated in the game Each step in the state machine represents a state in the Petri Net model For example as shown in Figure 6 3 a purchase will be completed if and only if the validation was successful placePurchaseOrder check VabdPurchasedPartigtd gt ptd pendingPurchaseOrders Pan ped perchasediptb public PurchaseStrategy int idStrategy E Purchase purchase GameEngine gameEngine this idStrategy idStrategy this dataPurchase purchase this gameEngine gameEngine this gameData GameData getinstance this dataPurchase setStatus Status idle stateMachine new StateMachine tareMachine add Validate stateMachine add Execute stateMachine add Release isFirstPurchase true Figure 6 3 Purchase activity Petri Net top and Java state machine bottom 40 inBuckets PartinBucket E purchasedMatisinventory Part AA XX getRawMatis st y A check ValidOperationist y consumed y BucketSpace y st 1 chuito tableSaw 1 pepe miterSaw oridie processing lege PartinProcess Ope igned y op st finishOperation panQtyProduced y st outBuckets PartinBucket public OperationStrategy int idStrategy E Operation operation GameEngine gameEngine this idStrategy idStrategy this dataOperation operation this gameD
29. transactional SQL database engine SQLite is the most widely deployed SQL database engine in the world 13 In the project this database is used as the local database 21 which means each game instance will contain SQLite database as an extra file but 1t will act as an engine 4 6 SimPack Discrete Event Engine SimPack is a collection of routines and programs for computer simulation developed by Dr Paul Fishwick 15 from the Department of Computer and Information Science and Engineering at the University of Florida The source of SimPack is Open Source under a Gnu Public License GPL It has a version in C but also a later version in Java which is the one that was finally adopted for the game The decision was made because 1t would be easier to develop the code using the selected game engine JMonkey which provided the opportunity to be OS platform independent since it is written in Java 4 7 Artificial Intelligence A search algorithm It is a computer algorithm that is widely used in pathfinding and graph traversal the process of plotting an efficiently traversable path between points called nodes Noted for its performance and accuracy it is widely used A uses a best first search and finds a least cost path from a given initial node to one goal node out of one or more possible goals 16 In the project it is used to find the path set of pixels of the transport activity from one station to another 22 5
30. will show a pop up that will synchronize the user data between both databases o Quit game When the user clicks on the quit game button the game will show a warning before the game closes o Win Lost game Even if the user wins or lost a game it will show a pop up with the 99 66 99 66 game statistics and some options like restart next game quit game among others 5 2 2 Hardware Interfaces 5 2 2 1 Multi platforms This game version is a desktop application designed to be played correctly in different platforms for example o Windows version XP 7 and o Mac OS version Lion and Mountain Lion o Linux different distributions e g Ubuntu Mint and Fedora 5 2 2 2 Graphic Library The game development uses OpenGL library 14 to be able to show different graphics animations and 3D designs and also because it supports multi platform API for rendering 2D and 3D computer graphics that is used to interact with a GPU to achieve hardware accelerated rendering Currently the library is in the version 4 3 but in order to run this game in computers with standard and old graphic cards the game should use the version 1 1 26 5 2 2 3 Computer Devices Playing this game requires a mouse and a keyboard The mouse device will allow the player to move in the game environment click on several game objects and click on different menu buttons The keyboard device enables the user mainly to two
31. 1 id_skill INT 11 id_game INT 11 skill_description VARCHAR 50 id_activity INT 11 id_skill INT 11 id_game INT 11 Out ne actvity_status VARCHAR 20 efficiency DECIMAL 10 2 l lt gt cost_per_execution DECIMAL S 2 dist_param 1 DECIMAL 10 2 id_station INT 11 i machine_category VARCHAR 45 Q dist_param 2 DECIMAL 10 2 id_game INT 11 E CRA priority_queue INT 11 station_description VARCHAR S0 station_location_x INT 11 Bal O station_location_y INT 11 T a size_w DECIMAL 10 2 LL 3 size_ DECIMAL 10 2 mera ES id_operation INT 11 id_operator INT 11 price_for_purchase DECIMAL 10 2 lisina id game INT 11 input paette_capacity INT 11 Ott DESTA NAAA name_operator VARCHAR 50 output palette_capacity INT 11 OANA O salary_per_hour DEGMAL 10 3 status VARCHAR 10 a Oi sation ED status VARCHAR 10 owner VARCHAR 10 Ss poten ssa owner VARCHAR 10 A i virtual_id_location VARCHAR 45 cost_per_hour DECIMAL 10 2 1 m ase 9 virtual_matrix_i INT 11 id_purchase INT 11 virtual_matrix_j INT 11 id_game INT 11 current_location_x INT 11 O id_station INT 11 current_location_z INT 11 SS id_supplier INT 11 speed DECIMAL 10 2 oe order_point INT 11 is_moving INT 11 order_quantity INT 11 O id_machine_attached INT 11 id_transport INT 11 end_location_x INT
32. 11 id_game INT 11 id_game INT 11 end_location_z INT 11 unit_load INT 11 Q activity_doing VARCHAR 45 id_station_ini INT 11 id_activity_assgned INT 11 id_station_end INT 11 state VARCHAR 45 price_for_hire DECIMAL 10 2 price_for_fire DECIMAL 10 2 salary_per_hour_carrier DECIMAL 10 2 O salary_per_hour_assembler DECIMAL 10 2 O salary_per_hour_versatile DECIMAL 10 2 Q uniform Param 1 DECIMAL 10 2 uniform Param 2 DECIMAL 10 2 normalParamL oad DECIMAL 10 2 normalParamUnload DECIMAL 10 2 station_desgn VAROHAR 100 percentage_selected_slots DECIMAL 10 2 date_time INT 11 id_player INT 11 current_money DECIMAL 10 2 current_minute INT 11 current_hour INT 11 current_day INT 11 current_month INT 11 current_game_time DOUBLE time_factor DOUBLE 1 game_type VARCHAR 45 game_category VARCHAR 45 description VARCHAR 500 initial_money DOUBLE percentage_to_win DECIMAL 10 2 name VARCHAR 100 game_status VARCHAR 45 id_phase INT 11 9 next_id_phase INT 11 id_terrain INT 11 objective VARCHAR 100 flow_image V ARCHAR 100 AS ee SSA attempt_numbers INT 11 overhead DECIMAL 10 2 id_order INT 11 id_game INT 11 O id_part INT 11 quantity INT 11 time_units INT 11 time_to_appear INT 11 percentage_variability_min DECIMAL 10 2
33. 2 supplier_description VARCHAR S0 model VARCHAR 100 d o ier_location_x INT 11 time_between_failures_param eter2 DECIMAL 10 2 id player INT 11 appi i 11 repair_time_distn VARCHAR 20 supplier_location_y INT 11 ir_ti or PP service _level DECIMAL 10 2 0 ae e_parameter1 DECIMAL 10 2 ia pomada 100 A Q TESS e_parameter2 DECIMAL 10 2 emal VAR 100 price_for_purchase DECIMAL 10 2 o IVAR 20 a a status VARCHAR 10 id_terrain_reserved INT 11 status VARCHAR S0 a evan eres owner VARCHAR 10 site are 100 LA id_terrain INT 11 machine_desgn VARCHAR 100 SE SERENE id_player_log INT 11 location_x INT 11 gender VARCHAR 10 eid tia virtual_id_location VAROHAR 45 id_player INT 11 location_z INT 11 NA degree VARCHAR 30 Oloain t E virtual_matrix_ini_i INT 11 login_tim e INT 11 width INT 11 ii degree_description VARCHAR 50 pe i 7 i virtual_matrix_ini_j INT 11 logout_time INT 11 length INT 11 cadens O country VARCHAR S0 minutes_time INT 11 virtual_matrix_end_i INT 11 Ea virtual_matrix_end_j INT 11 Fiian E DMETNE game_level VARCHAR 45 oe game_time INT 11 ica last_login_time INT 11 Figure 6 11 Entity relationship diagram 53 6 4 1 2 Principal Routines The remote database managed by MySQL is storing numerous routines that allow the game engine to be managed satisfactorily and efficiently These routines are built to maintain
34. 6 1998 IEEE Recommended Practice for Software Design Descriptions IEEE Std 829 1998 IEEE Standard for Software Test Documentation IEEE Std 1008 1997 IEEE Standard for Software Unit Testing IEEE Std 1012 1998 IEEE Standard for Software Verification and Validation Java SE 7 Oracle Technology Network 2012 http www oracle com technetwork java javase overview index html JMonkeyEngine 3 0 Java OpenGL Game Engine 2012 http jmonkeyengine com engine Nifty GUI 1 3 1 http nifty gui lessvoid com MySQL Database and Workbench http www mysql com SQLite Database engine http www sqlite org OpenGL Open Graphics Library The Industry s Foundation for High Performance Graphics http www opengl org SimPack by Dr Paul Fishwick University of Florida http www cise ufl edu fishwick Welcome html Hart P Nilsson N Raphael B 1968 A Formal Basis for the Heuristic Determination of Minimum Cost Paths IEEE Transactions on Systems and Cybernetics SSC4 100 107 75 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Kelly H Howell K Gilnert E Holding L Swain C Burrowbridge A Roper M 2007 How to Build Serious Games Communications of the ACM Jul2007 Vol 50 Issue 7 p44 49 Mayo Merrilea J 2007 Games for Science and Engineering Education Communications of the ACM Jul2007 Vol 50 Issue 7 p30 35 Bernardi G
35. 7 Jos SA E ican oaaveaaaleraryadecens 18 a4 Game Controls and Strate cies ano ll ib 18 Be Came Goal Sii e od dE 19 4 DEVELOPMENT PLATEOR Mistica iia 20 Ala JAVA SE rs oo 20 A Le JMonkeyEneine 3 0 SDK RECZlarnnia ds 20 A ANTES GULES Li di 21 a4 MysSOL Database E A AAA A 21 AD SOLE Das tad araiae ee A ieee 21 40 siinPack Discrete Event ENCIMA 22 4 7 Artificial Intelligence A search algorithm ccoooononnnnnnncnnnononcncnnnnnnnnns 22 5 SOFTWARE REQUIREMENT SPECIFICATIONS oooococccccccoccnncnnnnnncnnnnncnnninnss 23 Dele MATOU ON cora ta 23 SL o A nn A 23 A ARA A sal aaeondsialetemdagsyl ans edt 23 5 2 External Interface Requirements aaa a 24 eels Ser Timer ace Srictak corte E S R 24 I2 2e TAL Wate Monaco Na 26 32 52 DOM Wake Mier ac 21 IA COMMMUNICALIONS Mer IC ssie E ibewasvesisane 28 LI DOLWate Peal iii 29 e Desi en COmStraints io etc 32 ds Database RequiiementS secos ld ia 32 ZO SOM Ware oy stem ATI DUNES iria 33 o A O O 33 AO AMA 03 6 a OOO PO A 33 OO CC UEID cate rita ones 34 04 Mantaro iodss 34 IOD PONAD Y rta doaostindss 35 0 07 PEnOrmanCo ra r tenaaaandses 35 6 SOPTWARE DESIGN DESCRIPTION vo 00d di 36 Ol SVSCCMUATCIILECUUFAl DESI OI vpn a AR 36 OE SCION IC N cis lis 36 SEZ Presentation La tarada los 36 1X Orb Business Layer ii o 37 0 14 Data ACCESS Las eiii 39 6 2 Game Activities based on Petri Nets Models ooooocccccccccccnnnnonncnnnnnnncnnnnnss 39 6 3 Package
36. Diagram and Design Patterns ccccccccocooccnnnnnnonononcnnnnnonononanonnnnnos 44 0 0 L Package Diari ias 44 OZ late o P AS 4 63 3 Facade Pati Aa 49 63 4 Singleton Pattern add ide 51 GAs Database es Mt iia 51 641 MySQL and SQLite Des thas piccssias cu tateamitened a a 52 6 4 2 Databases Synchronization Process oooocccccccconooonccnnnnnnnonononnnnnnnnnnnnanoss 54 6 5 Detailed Description of Components ccccccccceceeceeeeeeeseseeeeceeeeeeeeaaas 55 A PPP a dean 55 652 AF Alr ea oa 56 o E T E A E EE E E E A E EE E 57 0 AOU eaen Oi 59 00 Usceintertace Desa a 59 0 0 Toe mand Man Mentira 60 0 02 Main Intotmati on Pancita 60 00 33 CONMOL Screen di 61 6 04 ACUE Cria li a isa 64 66 3 Uilis Sere iS 66 0 00 Additional Sree Neer E E E E E 68 SOFTWARE INTEGRATION AND TESTING 69 Lia SIUStEM OVERVICW eea ida 69 hae A o teasscatadeassauccones 69 Tl PCAMIES TODO esedha e E S 70 Tas NCATE NOUIO DE TES L6G ls 70 725 Vestine Tools and ENVIO decia 71 CONCLUSIONS AND FUTURE WOR K unidad is 12 Sle CONCUSSIONS ns E A 12 Dele FUE WORKS sarne a idad 12 8 2 1 Graphics Designs and Animation ImprovementS oooooonnnccnccnnnncnnnnnnnnn 73 0232 Morc Advance Game Leve Silicio 73 8 2 3 Allow User to Create and Share New Levels cccccccccceeeeeeeeeeeeees 73 8 2 4 Game Migration to Android Devices ooooonncnnnnnncnnnccnnnnnnnonnnnncnnnnnnnnnnos 74 REF
37. ERENCES citado idos 75 APRENDI SN Aia 78 APRENDI Di A oia 90 GLOSSARY OB TER MiS ia 92 X1 TABLES LIST Tables Page Table 3 1 Requirements for each kind Of Activity ooooocccnnnncnnnnnnnnnnnnnononancnnnnnnnnnnns 10 Table 3 2 Equations to obtain different times in each activity ccccccccoonnccnnnnnnnnn 17 Table G21 Package diacraii detailed seus ianctecnetssavlacsanctlanns eeacerdaisidiaeeel E 45 Table 7 02 Features Not testa dia 71 xii FIGURES LIST Figures Page Figure 3 1 Example of game process flowchart oooocnccccccccnccnnonnnonnnnnnncnnnonnnononononos 12 Figure 3 2 Game overall summary of expenditures and incomes cccccccnnnnccnnnnnnnnnns 14 Figure 3 3 Hire fire workers using general view left or specific view right 15 Figure 3 4 Raw Material Storage three different parts ooooooncnnnnnnnnnnnnncnnnnnnnnnnos 16 Figure 3 5 Assembly POCOS aa ia 16 Figure 6 1 Overview of the game architecture oooooonnnncccccnncncconononononnnnnnnnnnnonononononos 36 Figure 6 2 UML Sequence diagram start a new game cocccccccnnnnnnnnocnnnnnnnnnnnonononanos 38 Figure 6 3 Purchase activity Petri Net top and Java state machine bottom 40 Figure 6 4 Operation activity Petri Net top and Java state machine bottom 41 Figure 6 5 Transport activity Petri Net left and Java state machine right 42 Figure 6 6 Management of activities in JaVa ooooo
38. IMPLEMENTATION OF A 3D EDUCATIONAL GAME FOR INDUSTRIAL ENGINEERS By David Bengoa Ter n A project report submitted in partial fulfillment of the requirements for the degree of MASTER OF ENGINEERING COMPUTER EN UNIVERSITY OF PUERTO RICO MAYAGUEZ CAMPUS 2013 Approved by Jos Borges PhD Member Graduate Committee Cristina Pomales Garc a PhD Member Graduate Committee Agust n Rull n PhD Co President Graduate Committee Bienvenido V lez PhD President Graduate Committee Mar a de los A Irizarry PhD Graduate Studies Representative Pedro Rivera PhD Chairperson of the Department Date Date Date Date Date Date ABSTRACT Today s Gamer Generation has led to a rapid growth of the game industry with a vast amount of money spent on commercial entertainment games instead of educational games One reason 1s because 1t 1s difficult to implement a game that accurately represents the concepts that one tries to teach while holding the students attention There has been some research into the development of games which aim to teach science concepts but not Industrial Engineering 1E concepts Therefore in order to address this issue the purpose of this project is to develop a computer game which is focused on exposing freshman IE students to fundamental concepts applicable to manufacturing systems and improve their problem solving skills in complex unstructured problems Besides being an educa
39. Order 2 is in process Total Orders 10 April 11 05 29 Max of Failed Orders 3 Wf Part Two 15 Apr 12 01 44 Figure 6 17 Order game log and overall screens merged in one screen 6 6 3 Control Screens 6 6 3 1 Allocate Storages Figure 6 14 shows the screen that allows allocating an amount of slots available for storages Selected slots will entail costs which are calculated every hour Also an update button will commit changes in storage Assien Storage Costs Selea the number of slots available for each storage Raw Material Storage 28 56 lt c 28x050 USD 14 00 Work In Process Storage 28 56 lt c gt 28x050 USD 14 00 Finished Goods Storage 45 90 lt c gt 45x050 USD 22 50 Total CostHour USD 50 50 Figure 6 18 Allocate storage screen 6 6 3 2 Assign Operators The screen shown in Figure 6 15 allows the user to select an activity left side list then he or she will be able to choose material handlers line operators or versatile 61 depending of the role required by the activity The value found between brackets 1 e F indicates the number of activities assigned and the number of operators assigned for the operator and the activity respectively Assign Operators Assign operators for each activity Aamities list a Material handler Pepe 0 Cali 0 Antonio 0 Bruno 0 Cesar 0 Cristian 0 Diego 0 Line operator Frandsco 0 Brian 0 Juan 0 Edwin 0 Fab
40. Purchase Sale Price USD 400 00 400 00 Depreciation 10 00 Accumulated Depreciation 0 00 Status Idle Current Location 69 327 Cost Per Hour 3 0 Total Cost USD 0 00 Availabilty Usage Parts Produced 0 00 Activity Assigned Probability of Failure 0 00 Preventive Maintenance USD 25 00 Perform Figure 6 26 Machine screen 6 6 5 3 Operator Figure 6 23 shows the operator screen that allows the user to hire or fire the selected operator This action should be taken carefully because hiring or firing an operator implies costs Also the user can change the role or category between material handler line 67 operator or versatile Finally the screen indicates the payment per hour of each category the full wages earned by the operator and the percentage of usage Operator 2 Hired Operator ID 2 Name Cali Fire Hire Fire Cost USD 100 00 250 00 Status Idle Category y Operators list Current Location 15 330 Speed 15 0 Material Handler Salary Hour USD 7 00 Operator Salary Hour USD 10 00 Versatile Salary Hour USD 12 00 Current Salary Hour USD 7 00 Earned Money USD 0 00 Usage Update Figure 6 27 Operator screen 6 6 6 Additional Screen This last screen is the first one before playing the game because if the player do not set up the game then it will be impossible to start it Figure 6 23 shows the screen that requires a configuration step by step
41. This screen shows the list of operations The machine is going available for this to produce the game level The amount of parts player can change the selected for each amount of parts to be operation produced Screen shows the list of purchases i P Raw material could available for this take more time to game level The arrive and the cost player can change the varies depending of reorder point and l the supplier selected order raw material PP and select a supplier Comments The operation time will vary depending on the amount of parts to be produced Note that this activity will be executed automatically each time the inventory is less than the reorder point Validate The screen shows the The game is going to 10 3 actions on list of transports use the unit load for 85 the avallable The player each transport transport will be able to change activity the unit load for each activity screen 11 Utilities screens Clicking the Utilities button will show station machine equipment operator part and supplier buttons They will open different screens to be validated and will look for consistency Table 11 Utilities screens Test Case Name Validate actions on the station screen Validate actions on the machine and the equipment screen Validate actions on part and supplier screen Descrip
42. Vista 7 8 with DirectX 9 0 Mac OS X 10 6 8 or newer Linux Ubuntu Fedora Mint o Processor Intel Pentium D 2 8 GHz or AMD Athlon 64 X2 4400 or better o Graphic card Intel HD Graphics 3000 or NVIDIA GeForce G210 or ATI Radeon HD 5450 or better o Hard disk 1 GB available or more o RAM memory 1 GB 1 5GB required for Windows users 2GB required for Mac users or more o Others broadband Internet connection and 1280x780 minimum display resolutions Recommended Specifications o OS Windows 7 8 Mac OS X 10 7 or newer Linux Ubuntu Fedora Mint latest version o Processor Intel Core 2 Duo 2 4 GHz or AMD Athlon 64 X2 5600 2 8 GHz or better o Graphic card NVIDIA GeForce 260 or ATI Radeon HD 4870 or better o Hard disk 2 GB available or more o RAM memory 2 GB 90 Game Installation 1 Download the appropriate installer for your operating system 2 Start the installation a Windows double click on the installer b Mac OS double click on the installer c Linux open a Terminal type sh then add the full path of the installer location plus the installer name file 3 Once started click on the Next button then read and accept the user agreement 4 Click on the Next button and then choose the folder location of the game 5 In the new screen click on the Next button and finally 1t will copy the files into your computer 6 Finally click on the Close button The user will
43. age that identifies the step or each red circle image is going to open an appropriate screen Expected Results The game engine does not allow starting the game It starts the game after it was correctly validated Open a screen according to the step selected 83 Comments The play button located in the top left of the screen does not allow the game to start either The screen closes after the action Once a step is set up then the red circle image is updated to a green circle image 9 Control screens The feature s objective is to validate the consistency of the user s action with the game Once the player clicks the Control button the game will show other five 5 buttons allocate storages assign operators priority activities resources and unit load Each one will display a screen with some functionality Table 9 Control screens Test Case Description Expected Results Comments Name The game has two Once this screen different storages Validate E See the actions taken opens it shows a list The first one is actions on in the game e g of storages The read only storages l added slots per i E player will be able to P information The screen storage set up some options other one allows changes Validate l It allows allocating actions on Operators perform and deallocating It allows choosing assign operators some activities during M operators for
44. als when timer 1S Zero The game enables these options after the initial setup has been completed 88 Comments Graphic objects are also affected with the speed of the slider control The timer shows the nearest order to be lost when the game has two or more orders to be attended This time will vary depending on the supplier selected If the game is paused and the player clicks on pause then this action will not have any effect 14 Multiplatform Compatibility This feature should validate the correct execution of the game in different platforms 1 e Windows Linux Mac OS having previously installed the game Table 14 Multiplatform compatibility Test Case Description Expected Results Comments Name Verify installation Game development a Game runs from Game is installed and l and provides a Windows Windows XP to f runs successfully execution on installer Windows 8 Windows Verify installation Game development Game is installed and It has been tested in and provides a Mac OS Mac OS version runs successfully execution on installer 10 6 and latest Mac OS Verify installation Game development e It has been tested in l Game is installed and and provides a Linux Linux Ubuntu runs successfully l execution on installer y Fedora and Mint Linux 89 APPENDIX B System Requirements and Game Installation Minimum System Requirements o OS Windows XP
45. aneously and independently depending of the availability of resources that it requires 43 6 3 Package Diagram and Design Patterns This section shows the package diagram of the project including the dependencies among packages and the main classes in each package It also describes the three design patterns which have been used in the development of the game 6 3 1 Package Diagram Figure 6 3 shows the relation between the principal packages in the game These packages have been organized as efficiently as possible by grouping together classes with similar functionalities Most packages have been developed by the author except for SimPack and A Pathfinding which have been adapted from the public domain with a few customizations required for the game Figure 6 7 Overall game Package diagram Various design patterns have been applied in the game in order to reduce the use of excessive memory which will be explained in upcoming sections However the Threads 44 package is used and instanced every time that a class is required because these classes control each independent graphic animation within a different thread The A Pathfinding package is used each time the game engine needs a new path between two different objects e g an operator and machine machine and station an operator and station etc The SimPack package is instanced only once because it has to manage all activities in process The Strategy pa
46. ata GameData getInstance this gameEngine gameEngine this setiInitialPosition false stateMachine new StateMachine a a mpl ion ae FY r hea mgd as m Y y A y 2 rs y ed ne oraer or aaa ng 13 tne oraer stateMachine add InitialPosition gt stateMachine add Validate stateMachine add OperatorWalksTo stateMachine add Execute stateMachine add Release Figure 6 4 Operation activity Petri Net top and Java state machine bottom 4 outBuckets PartinBucket ra A 1 Y haveUnitLoad ptm from haveUnitLoad ptm from emptyCettingLoad pickLoad OperatorCommisioned ptm op from to PaninMovement caliToOutBucket movingLoad check ValidMove ptm from to A pum op from to op to l alex miterSaw 0p to OperatorAssigned haveUnitLoad ptm to PS e E inBuckets PartinBucket public TransportStrategy int idStrategy E TransportStore transport GameEngine gameEngine this idStrategy idStrategy this dataTransport transport this gameEngine gameEngine this gameData GameData getInstance this dataTransport setStatus Status Idle this fromStationLocation null this toStationLocation null stateMachine new StateMachine ms m y pl e y gt q Ta stateMachine add Validate stateMachine add OperatorWalksToMachine stateMachine add OperatorAndMachineWalkToFROMstation stateMachine add PickUpItems gt stateMachine
47. between the application and the database Whenever the application wants to run a new game or find out something about a user it calls this layer to access the database and retrieve the required information The layer applies the facade design pattern 21 in order to simplify the complexity when other classes try to obtain all the information stored in the database The singleton pattern is used when a class requires a large amount of memory and network to manage the information of the database The game database will be completely designed and built in the MySQL database engine It will contain the game actors for each level as well as the user data When the user completes a new phase his or her profile is updated so that the next time the game runs it will start at the same point that the user left off 6 2 Game Activities based on Petri Nets Models Given all the different types of activities that can be executed in a real factory we have summarized them into 4 different activities in the game These activity types are purchase transport operation and shipping These activities allow us to execute a complete production cycle beginning with the purchasing and storage of raw materials assembling and storage the new product and finally shipping the finished product 39 At a conceptual level we have used Petri Net 28 to model these activities that will be implemented in the game Once we understood the operation of
48. cal user started a new game level the engine would have to download all required data from the remote database This process took substantial time depending of the available Internet bandwidth As a result SQLite was used as the local database cache while MySQL remained as the remote database holding the main data On the other hand the database design allowed us to add and update each game level from the database This means that we did not need to modify nor upgrade anything in the game source code to incorporate new levels into the game From the beginning of the game development the database has always maintained the game logic and user data Therefore once the player starts a new game level the game engine dynamically creates the virtual reality in accordance to the information stored in the database However this advantage is not so easy to perform given that 1t has been designed under a relational database model So if we want to add or modify a game level we must validate different constraints among tables primary and foreign keys of every record and different table hierarchies 6 4 1 MySQL and SQLite Design 6 4 1 1 Principal Tables Figure 6 7 displays the Entity Relationship Model ERM diagram for the game application The ERM diagram depicts core tables which are required for game management to maintain each game level with their dependencies and to store each user data with their Statistical data usage Relationsh
49. ckage manages all the different ongoing activity in the current game level e g purchase activities transports manufacturing operations and shipments Finally Nifty GUI package manages every screen and GUI control available to the user Table 6 1 shows the classes used from each package Table 6 1 Package diagram detailed GameEngine GameData InputManager Gaming OpeMaMovingTo OperatorWalksTo TerrainMap CloseGame GameDataLoading UserDataLoading Threads MachineAnimation StationAnimation UpdateSlotsStorage InitialMenu ForgotYourPassword NewGameMenu Nifty GUI NewUserScreen MainMenu OptionsMenu ActivityControl AssignOperator CharactersControl FlowChartControl GameLogControl GameSetupControl MachineControl OperatorControl OrderControl Nifty GUI Controls OverallControl PartControl PriorityControl StationControl StorageCostControl StorageStationControl SupplierControl UnitLoadControl AStarHeuristic AStarPathFinder Path A Pathfinding PathFinder TileMap ClosestHeuristic 45 Utilities PurchaseStrategy TransportStrategy D_Activity D_Catalog D_Operation D_Part D_Ship D_Supplier D_ToUpdate SOLiteConn E_Activity E_Catalog E Machine E_Order E_PlayerLog E_Skill E_Supplier E_ToUpdate Actions GameCategory GameTables Messages OrderStates PasswordGenerator Sounds TypeActivity ManageEvents ShipStrategy D_AssenblyDetails D_Game D_Operator D_Player D_Skill D_ Terrain D_Transport SQLite Uti
50. desarrollar un juego educativo ya que se debe conseguir que el jugador aprenda los conceptos que transmite el juego y a la vez mantenga la atenci n de l Existen distintas investigaciones con el objetivo de implementar juegos educativos que ense an diferentes materias pero muy poco se ha logrado para la Ingenier a Industrial Es por esta raz n que el presente proyecto pretende implementar un juego enfocado a los estudiantes reci n ingresados de Ingenier a Industrial Este juego adem s de ser educativo tambi n est clasificado como juego de estrategia porque el jugador estar planificando y administrando cuidadosamente los recursos con la finalidad de obtener la victoria El producto obtenido es un juego para computadoras con soporte multiplataforma y para un solo jugador El juego consiste en la simulaci n de las actividades diarias de una f brica en donde el usuario toma decisiones con la finalidad de cumplir con el m ximo pedidos que van llegando en el transcurso del juego Entre las distintas decisiones se puede resaltar contratar o despedir trabajadores comprar o vender maquinarias y equipos de transporte alquilar una mayor o menor cantidad de espacio en los almacenes y variar la cantidad de piezas o productos que se van a transportar entre las estaciones de trabajo 1V Para llevar a cabo la implementaci n de este proyecto se utiliz Java como lenguaje de programaci n desarroll ndose bajo una programaci
51. each game level will be played in that environment Moreover the factory should show every operator 1 e material handler line operator and versatile every machine and equipment and all the different parts that are enrolled for each game level Finally every object contained in the environment should be animated according to actions that the user is taken GUI Controls This set of controls allows the user to take the control of the game It means if the user sets up controls in some way the game environment will show graphics changes and statistical changes i e affecting costs fulfilling or missing orders among others The list of the controls are e Play and pause button e Time slider The control should increase and decrease the game speed e Clock for the game and a timer for next order due and next purchase e Game setup screen Required configuration before starting the game e Overall screen It should show costs detailed e Order screen It should show arriving orders with its details e Game log screen Every notable activity is shown in this screen e List of main buttons Control option e Allocate storages screen Can be used to allocate an amount of slots available for each stock It should entail in costs 30 Assign operators screen Can be used to assign operators to one or more activities depending of the role required Priority activities screen Can be used to prioritize the sequence of activities ex
52. ecution Resources screen Can be used to hire and fire operators and to choose the function for each one Also to buy and sell machines and equipment Unit load screen Can be used to set the quantity of parts to be moved during each transport activity Activities option Purchase screen Can be used to set the reorder point and order quantity and to choose the desired supplier Operation screen Can be used to change the quantity of parts to assemble or process Transport screen Can be used to set the quantity of parts to move during one transport activity Utilities option Station screen Only stations qualified as storages will allow changing the quantity of storage slots available In other type of stations this screen should be read only Machine and Equipment screen Can be used to buy sell machines or to make preventive maintenances which incurs in additional costs The screen also shows some critical information 31 such as percentage of depreciation cost per hour percentage of availability percentage of usage among others Operator screen Can be used to hire and fire operators and to update the functions carried out by the operators Part screen This screen is read only and shows critical information about the part such as type of unit current stock price for sale and assembly parts required Supplier screen This screen is read only and shows information about the supplier and its catalogue o
53. el Another goal is to earn the most profit as possible with the least usage of workers machines and equipment A final objective but no less important is learning Industrial Engineering concepts through play given that it is an educational game 19 4 DEVELOPMENT PLATFORM The project aims to provide a video game that 1s extensible portable and efficient In order to achieve these goals open source software was used for the game engine discrete event engine and database 4 1 Java SE 6 Java 9 is used as the programming language due to the features and facilities it provides to support Object Oriented programming Portability is one of the features in Java which does not require that the program be developed using Windows OS In order to take advantage of this feature the game as a product is able to be executed in every platform e g Mac OS Linux and Windows 4 2 JMonkeyEngine 3 0 SDK RC2 This is the current version of the game engine It was rewritten from the ground up to accommodate modern standards in game development This new version is only 2 years old but it reuses the best pieces of code and best practice from many generations of Java game programming 10 However currently there are many game engines including commercial and freeware For example Unity 24 has both versions and allows creating game for web mobile and game consoles UDK Unreal Development Kit 25 is freeware GameStart 2D 3D 26
54. ent list of SimPack and 2 the game engine executes a method in another class which has the function of validating and executing other game activities e g purchase transport operation and shipping In accordance with different activities once the game engine validates an activity successfully e g purchase transport operation or shipping activity then this activity has to perform another task which will take some time to be completed e g three time units Therefore this activity is scheduled in the future event list of SimPack with a given due date Finally when this activity in the list is completed it will execute a code according to the gaming activity e g release resources execute another task update inventory of some parts among others Sim Pack Recurrent a tes am Pos ate al ate ate atm ate atm Different Activities 5 Y Time Unit Main Pipeline I I I a ro MD 1 HF E Recurrent activity Purchase activity Transport activity Operation activity Figure 6 14 SimPack discrete event machine in the game 58 auljauit 6 5 4 Nifty GUI This library provides the game with a way to create different panels with a variety at user controls Figure 6 11 shows a subset at the controls available in Nifty GUL Nifty GUI allows the developer to create custom controls It means by combining existing controls For example the standard listbox control only shows
55. ented for a future game release T2 8 2 1 Graphics Designs and Animation Improvements Currently this game release was focused on developing a product that allows students to learn through gaming giving less emphasis on the design and animation of graphics objects For that reason a future release of the game will contain o Operators with better design o Machines with better quality graphics o Raw materials and products will represent real parts of the factory o The animation of an operator who is handling equipment will be more realistic o The animation when an operator is picking and placing parts on the equipment will be more realistic o Fonts and screen style will be interchangeable allowing the user to set up as desired 3 2 2 More Advance Game Levels Given that the game loads each level from the database 1t allows the administrator to add many more levels from the remote database Once the player starts the application then the engine will synchronize both databases getting these new levels from the remote database Moreover these levels can allow the user to continue learning and figure out more strategies to successfully complete each level 3 2 3 Allow User to Create and Share New Levels Considering the advantage to add and update game levels from the database 1t would be a great achievement creating a drag and drop tool that allows designing new levels by the player This tool should be easy of usa
56. er information which is essential to know the player s profile Also the password is created automatically and sent to the email registered This last process will also validate the authenticity of the email Screens are implemented using Nifty GUI controls 5 2 1 2 Main Menu The game provides the user a list of principal options en el main menu e g new game profile options user manual credits switch user and quit game Once the player clicks on new game 1t will change to a new screen showing the list of games available with appropriate information about the status of each game level scores number of attempts description and others The profile button will redirect to another screen allowing to the player to change his or her user profile The options button will open a new screen where it allows the player to adjust setting to their specifications sound option will allow enabling and disabling the sound controls option will allow changing the hot keys established finally screen option will enable the user to change the screen size resolution and full screen resolution The user manual button will open a web browser loading the user manual with definitions of the game and examples to learn it The 24 credits button will show information about the team who developed the game also referencing to the NSF support These screens are implemented using Nifty GUI controls 5 2 1 3
57. f parts with different prices These prices are according to the quantity of items required by the factory 5 4 Design Constraints In accordance that this is an educational game and its target audience is Industrial Engineering freshman students the wording is essential in the design of user interfaces For example labels and messages shown in different screens should use technical words For this current game version the design of user interfaces will use the default style that comes in the game engine However in a future release the design should be customized and the game should allow the user to set it up 5 5 Database Requirements The communication with the remote database must be done only per request which means 1 open connection 2 perform required query and 3 close connection It should 32 not keep logged with MySQL and connections should be done only for synchronization purposes In user machine the connection with SQLite will be done at the following instances 1 when the player starts the application 1t will load the list of game levels for the current player 2 When the player clicks on the button of Start Game then the engine will gather all data required for this game level Finally 3 1t will happen each time that the game level finishes winning or losing and the game engine should update the corresponding user records 5 6 Software System Attributes 5 6 1 Reliabilit
58. ge and must have an option to share this new 73 game level with other players This good practice is common on the biggest games as StarCraft 29 and Age of Empires 3 30 and promotes to create a community of gamers 8 2 4 Game Migration to Android Devices The game was developed in Java and tested in personal laptop and desktop computers However the game migration to Android devices does not demand much effort as if it were created from scratch Also this migration process will have to consider updating the GUI and graphic design simplifying the game engine given that Android devices do not provide many resources and managing the local database in the synchronization process Finally the most adequate devices to play this game are tablets given the screen size processors and memory capacity 74 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 REFERENCES Emrich A 2004 2005 The gamer generation and why baby boomers shouldn t worry so much about them http www alanemrich com SGI Week_10 SGI 2010 20GAMER 20GENERATI ON pdf Thilmany J 2012 Gaming Pros and Cons Mechanical Engineering Mar2012 Vol 134 Issue 3 p20 20 Peterson J L 1981 Petri net theory and the modeling of systems Ist ed Englewood Cliffs N J Prentice Hall Inc pp x 290 IEEE Std 830 1998 IEEE Recommended Practice for Software Requirements Specifications IEEE Std 101
59. given that it takes too many resources like memory RAM and CPU clock cycles 5 2 4 Communications Interface 5 2 4 1 Database Synchronization The synchronization process between many SQLite database instances i e client side and one MySQL instance i e server side will take different steps First it starts each time the player executes the application so the client side must have an access key i e user and password Second the server will have the firewall port access open but only will allow secured and verified access Third and finally the access in the database must be restricted and limited allowing only the execution of some queries e g select update and insert statements and modifying data of its current user 5 2 4 2 Communication Protocols The process of registering a new user will involve sending an e mail with the new password generated In order to achieve that SMTP will be used with previous settings stored in an encrypted file located in the player machine For future changes it could be updated through the database sync process or with a new game version 28 The database synchronization process mentioned above will use the TCP IP protocol and default port number 3306 which are the common ones in MySQL database Also this information will be stored in an encrypted file for each player machine 5 3 Software Features This stage in the software development life cycle has been a challenging work
60. he game Hiring or firing workers increases or decreases the production of finished goods and therefore the fulfillment of the arriving orders In addition hiring workers involves choosing a role type for each worker As we mentioned above there are three 3 types Material Handler who uses equipment 1 e hand trolleys to transport parts and products in the factory operators who work directly with production and versatile workers that can perform both roles Also it is Important for the player to control how many workers of each type to have since it has 14 a direct impact on productivity and increases costs Figure 3 3 shows the two ways to hire and fire workers and deciding the worker s role Characters Active Inactive Operator 1 Hired Operators 6 8 gt Hirex6 600 00 Mat Handler 2 gt Firex0 0 00 Operator ID 1 Name Pepe Fire Hire Fire Cost USD 100 00 250 00 Status Idle Category Operator 1 Versatile 3 Machines Buy x2 800 00 Current Location 15 335 Speed 30 0 Material Handler Salary Hour USD 7 00 Operator Salary Hour USD 10 00 Versatile Salary Hour USD 12 00 Current Salary Hour USD 7 00 Earned Money USD 0 00 Sell x 0 0 00 Equipment Buyx4 400 00 Sell x 0 0 00 Total 1 800 00 Figure 3 3 Hire fire workers using general view left or specific view right 3 2 5 Inventory Control The ease of use of the game allows the player to
61. ier Map lt Integer E_Supplier gt mapUserOperator Map lt Integer E_Operator gt mapUserOperatorCarrier Map lt Integer E_Operator gt mapUserOperatorAssembler Map lt Integer E_Operator gt mapUserOperatorVersatile Map lt Integer E_Operator gt mapUserOperatorNone Map lt Integer E_Operator gt mapUserStation Map lt Integer E_Station gt mapUserStorateStation Map lt Integer E_Station gt mapUserPart Map lt Integer E_Part gt mapUserMachine Map lt Integer E_Machine gt mapUserMachineByOperation Map lt Integer E_Machine gt mapUserMachineByTransport Map lt Integer E_Machine gt mapOperation Map lt Integer E_Operation gt mapPurchase Map lt Integer E_Purchase gt mapShip Map lt Integer E_Ship gt mapTransport Map lt Integer E_Transport gt mapOrder Map lt Integer E_Order gt arrOrders ArrayList lt E_Order gt loadGamesByType gameType ArrayList lt E_Game gt updatePlayerProfile updatePlayer boolean updatePlayerLog void createGame tempGame boolean updateCurrentGameTime void createPlayer tempPlayer void validateEmailNewPlayer tempEmail boolean getPlayerByEmail tempEmail E_Player getActivities_OrderByPriority ArrayList lt E_Activity gt getGameLogic idGame void getGameUserData idGame void manageMachineStates void updateUserOperatorCategories void updateUserMachineEquipment
62. io 0 Versaule Jose 0 Ramon 0 Axel 0 y Luis 0 7 Number of operators activities assigned Figure 6 19 Assign workers screen 6 6 3 3 Resources The resource management screen Figure 6 16 1s particularly crucial before starting the game It allows users to hire and fire operators and to buy and sell machines and equipment Each decision of the user implies a cost and it will vary depending of the game level for example hiring two 2 operators buying one 1 machine and selling three 3 equipment In addition once the user hires operators he or she has to choose if the operator is going to be a material handler an operator or versatile 62 Operators Hire x 0 Mat Handler Fire x 0 Operator Versaule 4 Machines 4 4 Equipment 7 12 Figure 6 20 Resources screen 6 6 3 4 Unit Load The unit load screen is presented in Figure 6 17 The screen shows the list of activities for the current game level The slider control is enabled only for transport activities allowing the user to choose the bulk of parts to be moved in each activity Also the update button registers the changes in for each activity Unit Load Parts per np Set unit load parts per trip for each activity Ship Ship Part2 Transport Part from StorageFG to Shipping 12 Transport Part from Assemble to StorageFG 5 Operation Assemble Part2 Transport Partl from StorageRM to Assemble 10 Transport Partl from
63. ion However before the equipment is moved this activity executes the algorithm and finds a path Finally the material handler with the equipment starts moving along the path computed by A 56 ame Level 4 Playing x January 1 01 04 NexOrder Due NexaPurchase 07 01 5 Busy 3 Idle USD 1 133 83 e LL AAA Figure 6 13 A pathfinding example in the game environment 6 5 3 SimPack The SimPack library supplies the game engine with an easy mechanism for scheduling multiple concurrent activities This library implements a list the scheduled activities and in case it is required the automatic update of the due date of each activity e g if the game speed goes faster or slower The main class in the game has on override method called simpleUpdate this method acts as an infinite loop because the game engine calls it several times per second For gaming purposes inside this method the engine verifies if some activity in SimPack has completed its due date If this 1s the case this activity is removed of the future event list of SimPack and carried out in the game SimPack manages two 2 types of activities recurrent activities and different activities as shown in Figure 6 10 Each one has a different meaning in the game 37 A recurrent activity is scheduled each time unit e g one second Once the activity is over two tasks are performed 1 another similar activity is scheduled in the future ev
64. ips between tables are meant to create non duplicate users to store the game level data independently of each user to save the usage data for each user while maintaining both local and remote databases synchronized 52 m 2 7 id_output_part INT 11 pr id_input part INT 11 t id_ship INT 11 id_bucket INT 11 id_game INT 11 id_game INT 11 id_station INT 11 ARAS Qid_station INT 11 id_game INT 11 o bly_description VARQAR S0 load_quantity INT 11 capacity INT 11 id_part INT 11 shipping_time_distn VARCHAR 10 unit VARCHAR 10 Y id_game INT 11 de shipping_time_param eter 1 DECIMAL S 2 size INT 11 part_description VARCHAR 50 shipping_time_param eter2 DECIMAL S 2 id_pert INT 11 unit VARCHAR 10 direction VARCHAR 10 volume DECIMAL 10 2 units_to_arrive INT 11 weight DECIMAL 10 2 1 O units_to_remove INT 11 quantity_pdette INT 11 O state VARCHAR 45 current_stock INT 11 id_activity INT 11 price_for_sale DECIMAL 10 2 id_game INT 11 owner VARCHAR 10 O id_part INT 11 part_design VARCHAR 100 activity_description VARCHAR S50 part_design_scale DECIMAL 10 2 type_activity VARCHAR 10 part_design_color VARCHAR 45 gt id_order_activity INT 11 factor DECIMAL 10 2 id_next_activity INT 11 id_skill INT 11 output_quantity INT 11 processing_time INT 11 id_operator INT 11 Q activity_state VARCHAR 100 id_game INT 1
65. is freeware allows creating multi platform games and is based on C Cocos2d 27 is an open source 2D game framework and multi platform However before starting the game development it is important to know something about each game engine 20 available given that each one has pros and cons Therefore once you know the category of your game then you should decide the game engine 4 3 Nifty GUI 1 3 2 This Java library creates interactive user interfaces and 1s well integrated into many existing rendering systems JME3 JME2 LWJGL JOGL Slick2D and even Java2D The actual GUI is stored in XML files or it can be created directly from Java Java is used to respond to events generated by the GUI and to modify the GUI to reflect changes in the state of your application Additionally there is a large set of effects available that can be used to modify the appearance of the GUI 11 4 4 MySQL Database MySQL is the world s most popular open source relational database management system RDBMS that runs as a server providing multi user access to a number of databases It provides high scalability and performance There is also a free MySQL Workbench GUI Tool available that can be used to efficiently design manage and document database schemata 12 This database is used in the game as the remote database 4 5 SQLite Database SQLite is a software library that implements a self contained serverless zero configuration
66. ispatch station 3 2 3 Costs This game manages different costs in order to mimic the realities in a factory Figure 3 2 shows the summary of expenditures and incomes and the costs include o Storage stations It includes raw material work in process and finished goods station Each of them has a limited number of slots depending of their station size 12 The player will choose the number of available slots and will pay a fee per hour even 1f they are not in use Workers Once the game starts the player will choose the number of workers to hire and will also be able to fire some or all of them Both processes will incur in costs meaning that the player will spend money hiring and firing workers Workers will be paid an hourly salary which will depend on the workers skills including Material Handler Machine Operator and Versatile Machine and equipment The game allows the player to buy and sell the available machines and equipment as the player wishes Also a cost per hour will be charged for machine and equipment usage and after a certain time these will require preventive maintenance otherwise they will break down This maintenance implies another cost so the player will choose between paying this cost continue working or walt a few minutes for automatic repair Moreover the machine or equipment will have a depreciation cost that will impact the sell price Supplier The game will provide the player a list of suppliers t
67. ithm SimPack and Nifty GUL 6 5 1 Java Threads Java SE provides different methods to implement threads in a program The project 1s using classes that are subclasses of the Thread class Also the game contains a package designated exclusively for Thread subclasses Table 6 1 Threads in the project are in charge of multiple independent graphics animations given that each animation should not disrupt the normal execution of the other animations Also these threads execute different functionalities concurrently such as triggering different sync processes updating the use of slots for storage and controlling the inactivity time of the user during the game 6 5 2 A Algorithm The A algorithm is used for calculate routes in the game environment This is a set of classes which control internally a bi dimensional map with coordinates for each object indicating whether coordinates are available blocked or step The algorithm finds the shortest path possible between two given coordinates The repeated use of this algorithm may consume many resources i e RAM memory and CPU Therefore the game engine only calls the algorithm when it is absolutely necessary Figure 6 9 shows five 5 different paths found by A among different stations A is called when an instance of some transport activity is ready to be executed It means once the operator is done loading parts on the equipment the next step is to move the equipment to the final stat
68. ities will not allow changing any parameter for example the operation activity will produce the same amount of parts that have been set and the shipping activity will ship the number of parts required in the waiting order In the operation activity the player can determine the number of machines available as well as number of operators and their respective skills 3 2 2 Process Flowchart Figure 3 1 represents the set of activities that occur in the factory using a process flow symbols It allows the player to get a general understanding of the game in particular the flow of materials Each game level has a particular process flowchart For example Figure 3 1 shows the hardest level with multiple transport activities and assembly processes 11 Figure 3 1 Example of game process flowchart The squares represent stations triangles denote the different type of storages 1 e raw material work in process and finished goods and circles represent the assembly and cutting process In the Figure 3 1 three different parts are moved from the receiving station to the raw material storage Then two parts are moved to the first assembly station to create one intermediate part that is stored in the work in process storage After that this part and the part three are moved to the second assembly station to create the final product that is stored in the finished goods storage Finally once an order is received this product is moved to the d
69. know at every moment the exact amount of inventory for each part or product This game feature is available to the player as a general inventory for the part which can be found in the Part window or an inventory for a specific station or it can be found in the receiving dock located in the receiving zone In addition the inventory in a specific storage station 1 e raw material work in process finished goods is different from the receiving dock because the storage stations are controlled through slots available and is not limited by part types as shown in Figure 3 4 as opposed to the receiving dock which limits capacity and type of part However the effective management of inventory control requires an adequate knowledge of inventories for different types of activities For example the reorder point and order quantity for purchase activity the unit load for transport activity the amount of 15 required parts for the operation activity and the amount of finished goods to fulfill the orders for shipping activity Station 2 StorageRM Stations list Station ID 4 Description Raw Material Storage Slot Cost Hour USD 0 50 Selected Slots 28 56 lt Slot Total Cost Hour USD 14 00 Current Total Cost USD 0 00 Current Slot Usage 0 28 Slots Summary Empty 28 Part Two Part Five Part Four Part One Part Three Figure 3 4 Raw Material Storage three different parts 3 2 6 Production Operations Current
70. lities E_AssemblyDetails E_Event E_Operation E_Part E_Purchase E_Slot E Terrain E_Transport Direction GameSounds GameType ObjectState Pair SendEmail StationType TypeElements 46 OperationStrategy StateMachine D_Bucket D_Machine D_Order D_Purchase D_Station D_TerrainReserved MySqlConn E_Bucket E_Game E_Operator E_Player E_Ship E_Station E_TerrainReserved Distributions GameStatus MessageType OperatorCategory Params SlotStatus Status Utils 6 3 2 Strategy Pattern The strategy design pattern 1s used in the game to control every activity during each game level The game manages four types of activities purchase operation transport and shipping These are represented by corresponding classes one type of activity for each class Figure 6 4 However since the game engine selects an activity at runtime these activities should be encapsulated to make them interchangeable The class called ManageEvents controls a list of such activities by means at an interface called EventStrategy 47 eee i implements 8 Strategy pattern Class diagram Figure 6 related to every activity class provides a which is The class called StateMachine configurable state machine for each activity since each activity invokes a unique sequence states i e validate of steps to be completed For instance a purchase activity has three 3 48 execute and release On the other hand a
71. ll be played and 36 begin playing the first levels of the game Additionally the user will be able to complete the initial configuration of the game or choose a default configuration Representation layer uses the Nifty GUI library This Java library provides a set of tools to implement each visible element that the player will use e g window panel text field label dropdown list and other controls Sometimes the controls available on this library are not enough to give the user the flexibility desired Since the library is open source new tools can be incorporated to achieve an improved new experience The presentation layer also incorporates the graphic elements that make up the gaming stage such as world workshop stations machines equipment parts buckets operators and their associated animations The presentation layer is mostly managed by the JMonkey game engine 10 6 1 3 Business Layer The business layer is the most important one because it contains the core elements of the game It serves as the interface between the presentation layer and the data layer The presentation layer processes the user actions mouse and or keyboard events and sends these events to the game engine through the input manager Depending on the action the game engine will call the data layer to carry out the corresponding process For example Figure 6 2 depicts a UML sequence diagram 22 with the process required to start a new game
72. lly appropriate screen Once it 1s validated It will validate the then 1t will send the The email should Validate field l email entered password to the be registered email The password should be the indicated by the user Validate The game will senda The message will receiving message to the email contain the recovered email account password 80 5 Synchronization Process It occurs twice when the user executes the program and when the user logs into the game It means that the game instance synchronizes the game and user information stored with the remote database It requires Internet connection otherwise it will not work Test Case Name Validate game data synchronization Validate user data synchronization 6 Game Navigation Table 5 Game data synchronization Description Expected Results It synchronizes the game data between the remote server and the user machine executing the game It synchronizes the user data between the remote server User data updated and the user machine executing the game Game data updated Comments The user machine must have an Internet connection The user machine must have an Internet connection This feature validates the correct consistency when the user clicks on different buttons in the main menu and the game responds accurate For example if the user clicks the Credits button the game should show a screen displaying game
73. ly the game supports two kinds of operations cutting and assembly Both processes example shown in Figure 3 5 can be found in different game levels Each process produces as many parts as it is specified in the operation activity and requires an adequate machine and a skilled operator Figure 3 5 Assembly process 16 3 2 7 Probability Distributions and Timing The use of statistical distributions 1s important in the game development process in order to achieve results that are as realistic as possible Uniform and exponential distributions are used as part of some elements in the factory e g machine time between failures equipment repair times and order shipments Moreover these statistical distributions allow calculating different equations in order to obtain a specific time to execute some steps of many activities Finally other equations only require constant values to get different times for each execution Table 3 2 shows the detailed equations Table 3 2 Equations to obtain different times in each activity Transport Stee MD l Placement Time quantity x timeToCompleteTask x factorOperator time Operation distance and Walk alone Time TO x factorOperator Transport ee distance Transport Walk loaded unloaded Time _ x factorOperator x factorEquipment with equipment speed Time to ship the order speed constant timeToCompleteTask constant factorOperator Uniform x y factorEquipment Unifo
74. main objectives game login and for the use of hot keys to move the game camera Other computer devices are not allowed in this game 5 2 3 Software Interfaces 5 2 3 1 Databases The game uses two different relational databases for an appropriate management of the game and user data In the user machine one game instance stores the gaming application data and user data in a local database using the SQLite relational database The connection with this database is done by a single connection string using a singleton design pattern 21 that aims to decrease the excessive use of memory This connection must be fully configurable so it could be updated remotely Moreover MySQL database is installed in a server machine to collect user data and to store the latest version of each gaming level This database instance could be managed through the MySQL Workbench 5 2 application or MySQL Command Line application by the user administrator 5 2 3 2 Main Libraries Different libraries are used as part of game development The discrete event machine called SimPack is used to schedule all activities during the game The Nifty GUI library 27 will allow the player to control the game through several graphical controls The use of A algorithm 16 that manages an internal matrix modeling the game environment provides the game engine the path on route between any two points in the factory This algorithm is executed only when is necessary
75. ng the Profile button changes the screen and shows user profile enabling fields to be modified Finally the Update Account button will return the player to the main menu Table 3 Update existing user al Test Case Case Description Expected Results Comments ID Name Access to the Clicking the profile The registered It will load the user screen button will enter the e email cannot be data in fields successfully appropriate screen changed Fields are validated When it is not Validate to check that they If correct it will validated it will fields have been correctly proceed to the update show an error filled Also the old message 79 and new password field Once fields are The updated data will The new password validated 1t will be stored locally and will be required for update the user data remotely the next session Update successfully 4 Forgot your Password In case the registered user forgot his her password then the player should click on the Forgot Your Password link The game will change to another screen and it will ask to enter the registered email Finally the user should receive an email with his her password Table 4 Forgotten password da Test Case Case Description Expected Results Comments ID Name Clicking the forgot Access to the se your password link It will show the email O screen The field 1s empty will enter the field successfu
76. o be selected to start the process the first step 1s to purchase raw material as shown in Figure 3 1 above The cost of the raw material will depend on the selected supplier and the order quantity Each supplier s catalog for a specific part provides three 3 different prices based on time to receive the order Overhead This is an average cost per hour that includes an ongoing expense of operating the factory for example gas electricity taxes telephone bills other wages etc 13 o Part Product sale is the last process and does not qualify as a cost as shown in Figure 3 2 below It is important because without this step the factory will go bankrupt as soon as the costs are higher than the initial capital Overall Available Cash USD 2 728 95 Total Expenditures USD 2 271 05 Overhead Cost Hour USD 530 00 Operator Cost Hour USD 724 32 Operator Hire USD 0 00 Operator Fire USD 0 00 Machine Cost Hour USD 0 35 Machine Purchase USD 0 00 Machine PM USD 0 00 Equipment Cost Hour USD 10 30 Equipment Purchase USD 0 00 Equipment PM USD 0 00 Storage Cost Hour USD 446 08 Part Purchase USD 560 00 Total Incomes USD 0 00 Machine Sale USD 0 00 Equipment Sale USD 0 00 Part Sale USD 0 00 T otal Profit USD 2 271 05 Refresh Figure 3 2 Game overall summary of expenditures and incomes 3 2 4 Human Resources Management The management of the workers 1s an important factor in t
77. onnnnncnnnnncnnnnnnnnnnnoncnnnnnnnnnnnnnonononos 43 Figure 6 7 Overall game Package diagraM oocccccccccnooonccnnnnnnnnnnnnnnnnnnnononancnnnnnnnnnnns 44 Figure 6 8 Strategy pattern Class dlagraM oooccccccncccnononnnnnnnnnonononnnnnnnnononannnnnnnnnnnnos 48 Figure 6 9 Facade pattern Class diagraM ooooooooooooncncnnnnnnnnnnnonononnnncnnnnnnnnnnnononononos 50 Figure 6 10 Singleton pattern Class diagram cccccccnnooonccnnnnnnnonononnnnnnnononancnnnnnnnnnnns 51 Figure 6 11 Entity relationship diagrami sses ienaa S 53 Figure 6 12 Synchronization process between databases cooccccccccnnnnnnnnnnnnnononoss 55 Figure 6 13 A pathfinding example in the game environment ooocccnnnnnnnnnnccnnnnnnnnn 57 Figure 6 15 GUI controls in the game environMent cccccccccnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnss 59 Figure 6 16 Login menu left and main menu right ccccooooocccnnnnnnnnonnnnnnnnnnnnnnos 60 Figure 6 17 Order game log and overall screens merged in one screen 61 Figure 6 18 Allocate Storage Serec iii sitas 61 Figure 6 19 Assit WOTKO TS SCECON lali 62 R stire 0 20 ReSQUICES Cr li 63 route O22 Mco dd cre ln 63 Pieire 6227 OperatiOnactivily Ori id 64 Figure 6223 Purchase ACIIVILY SCI ini 65 Pisure 6224 Transport activity SCLCEN per ias 65 Figure 6 25 Different stations no storage left and storage right oocoo 66 Preute 6226 Machine 67 Figure 622 Ope
78. ose the game when he she fails more orders than permitted or falls in bankruptcy and a pop up will be shown Expected Results It will show the pop up once the game is completed Game will show a pop up saying that the player won and will provide Statistical information Game will show a pop up saying that the player has lost and will provide statistical information 87 Comments The player is not able to make any changes after the pop up is shown 13 Miscellaneous This feature validates that other controls are working correctly For example game time next order due timer next purchase timer play button and pause button T ee Test Case se Case Description ID Name Verify game time and slider control Validate next order due timer Validate next purchase timer Verify play and pause button action Table 13 Miscellaneous It will validate the relation between the speed selected in the Slider and the current game time This timer shows the remaining time complete an order This timer shows the remaining time to receive more raw materials according to the purchase activity Once the game is running these buttons are available Expected Results The game time should forward faster if the slider has increased the speed If the user does not fulfill the order before the timer counts zero then order 1s lost The player will receive more raw materi
79. rator Scrolls 68 Pigure 6 28 Game Setup scroll 68 X1V 1 INTRODUCTION 1 1 Justification Today s Gamer Generation so called because they grew up playing video games and spends hundreds and even thousands of hours during their most formative years playing video games 1 This has led to a rapid growth of the game industry with a vast amount of money spent on commercial entertainment games instead of educational games However playing video games may have both positive and negative effects on cognition and behavior As Douglas Gentile an associate professor of psychology at lowa State University 2 said 1f content is chosen wisely video games can actually enhance some skills Concerning educational games it is difficult to implement a game that accurately represents the concepts that one tries to teach while holding the students attention There has been some research into the development of games which aim to teach science concepts but not Industrial Engineering 1E concepts Therefore in order to address this issue professor Agustin Rull n and collaborators proposed a research project entitled Can gaming provide enough context to improve knowledge integration and retention in Engineering freshmen which is sponsored by the National Science Foundation with Award No 0835990 and is described as a learning tool which will be assessed in terms of improved retention interest and motivation of freshman IE s
80. re a username and password which should be registered in the remote database Therefore only registered users will be allowed playing thus ensuring validated access to the game Additionally the user data gotten in the process of creating a new user and through the game should be serialized and encrypted before sending to the remote database Therefore the game assures protection data of every user Furthermore when some game instance tries to access the remote database it should be with a username and password different than the current user keys which should be provided in the game development process 5 6 4 Maintainability Currently this game version is the first release available to everybody but continuously it will have further versions with improvements done For future releases it 34 should be based on fixed bugs provide better graphics objects 1 e animations and design and improve game performance Moreover on the server side it is managed by a user administrator who will be in charge of incorporating new game levels updating current game levels collecting statistical data users among others Finally this user should update the new installer of the game where it is hosted 5 6 5 Portability In order to allow the game to be played in different platforms 1 e Windows Mac OS and Linux it has been developed using the Java language programming Java also facilitates creating an installer for
81. rm x y factorMachine Uniform x y 17 3 3 Initial Settings The initial settings process 1s comprised of six 6 different steps where the first four are required and the last two are optional as shown in Figure 6 23 During the setting process the user must know that some steps incur in costs for example step 1 2 and 4 In the first step the user will hire some workers and will buy some machines and equipment Also he she will need to choose the role for each worker The second step allows allocating a quantity of slots for storages In case the slots are filled then the game will not be able to store more parts until some slots are released The third step indicates the quantity of parts or products to be moved from one station to another The fourth step denotes the reorder point and the order quantity of raw material to the next purchase Optional steps are not necessary to be setup given that the game can be played without them Fifth step allows the user to assign one or more workers to one or more activities The last step allows modifying the execution priority for each type of activity Once the player has started a new game he or she will need to setup some features of the game to start playing 1t This game release provides two 2 ways to adjust settings 1 the default setup button or automatic configuration as shown in Figure 6 23 lets novice players to focus on the game instead of setup the features 2
82. rs and non gamers Testing took two 2 months and initially two developers were involved in testing for additional support Hence when a bug was found or a feature improvement was approved the development team was notified in order to deal with the issue 7 2 Test Plan The test plan is a list of the game s features and each aspect of their functionality which was evaluated Also 1t defines every tool required to carry out the execution and how the test environment is composed During the execution every bug found and each 69 wrong behavior of the feature performed were solved Once the testing 1s completed then 1t starts again as a finite cycle finalizing when everything 1s correct 7 2 1 Features to be tested The testing process of each feature it means the test case is detailed in the Appendix A The list of features tested 1s shown below 1 Logging user 2 Create new user 3 Update existing user 4 Forgotten password 5 Synchronization process 6 Game navigation 7 Factory navigation 8 Game setup function 9 Control screens 10 Activities screens 11 Utilities screens 12 Complete game level 13 Miscellaneous 14 Multiplatform compatibility 7 2 2 Features not to be tested This section mentions different features that are not tested because they are out of the project s scope Table 7 2 describes each feature and explains why they are not tested 70 Table 7 1 Features not tested
83. s which have different functionalities and allow the player to watch constantly the most critical information in the game The Order subpanel left shows all pending and completed orders as they arrive during the game Game log subpanel center allows the user to maintain each activity as they occur during the game e g game is paused you ll go bankrupt order 1 has arrived etc Overall subpanel right depicts detailed information about the costs in the game Furthermore this screen design avoids visual interference of the factory 60 Order lt Game Log lt Overall Available Cash USD 9 927 50 Total Expenditures USD 3 322 50 Overhead Cost Hour USD 511 00 Y Order 2 has been completed successfully Operator Cost Hour USD 246 99 April 11 06 45 2 Order 3 has arrived Due date is in 180 minutes Operator Hire USD 300 00 April 11 06 45 2 Order 3 is in process Operator Fire USD 0 00 1 Part Two 20 Apr11 05 56 4 Machine Cost Hour USD 1 55 ae Da April 11 06 53 Order 3 has been completed successfully Machine Purchase USD 1 000 00 Machine PM USD 0 00 Equipment Cost Hour USD 12 10 Equipment Purchase USD 700 00 Equipment PM USD 0 00 Storage Cost Hour USD 310 86 Part Purchase USD 240 00 Total Incomes USD 8 250 00 Machine Sale USD 0 00 Equipment Sale USD 0 00 Part Sale USD 8 250 00 Total Profit USD 4 927 50 Objective Create and ship part 2 when the order arrive April 11 05 21 2
84. s industry 92
85. s with accepted learning and instructional theories At the Faculty of Education of the University of Ljubljana the serious game TimeMesh 20 has been developed in the framework of the Comenius programme The game is intended to be used for learning history in primary and secondary schools but at the same time students learn about different cultures and social relations in Europe in different historical periods Research results show increasing students motivation and their interest for topics covered by the game On the other hand some teachers do not completely agree to use serious games because games can be too time consuming for use in a classroom however they are willing to present the games as a home based learning activity 3 OVERVIEW OF THE GAMING EXPERIENCE 3 1 Introduction The main objective of this chapter is to explain the game development from a different technical approach This chapter denotes different IE concepts that the user should learn or notice during the game initial settings for each game level controls available for the user and game goals It outlines the different activities during the game the meaning of the process flowchart different costs involved human resource management inventory control in the factory production operations and the use of probability distributions 3 2 Educational Concepts 3 2 1 Activities The game summarizes the daily activities of the factory in four 4 main activi
86. sell machines or equipment to improve savings or reduce expenditures The objective for each phase will be to dispatch a given set of orders with maximal profitability Each order will be described by the type of part quantity and due date Orders arrive as the game progresses Users will be able to change some controls while the game is running such as the unit load for each transport activity the reorder point order quantity and supplier for the purchase activity Also the player will have more options in the settings section o Itis important that the game allows to play and pause an ongoing game and change the time factor between 1 16x 1 8x 1 4x 1 2x 1x 2x 4x and 8x so that users have time to analyze their decisions o Finally the game will allow the user to know the overall state of the game including the available cash 1 e initial capital minus expenditures plus incomes total expenditures e g overhead cost per hour workers salaries machines cost per hour storage cost per hour among others total incomes e g sales of machines equipment and parts and total profit 1 e incomes minus expenditures 1 6 Outline The next chapters of this document are organized as follows Chapter 2 describes related works in the area of educational games Chapter 3 describes the most important information about the factory features Chapter 4 describes technologies used in this
87. serves as a teaching tool for the Industrial Engineering area given the lack of research through games We expect it will encourage the development of other educational activities based on gaming Finally from a technical approach we have successfully accomplished the use and integration of a game engine an artificial intelligence algorithm two different databases engines a discrete event engine and many more with Java as a the language programming 1 5 Project Objectives 1 5 1 General Objective The main objective of this project is to develop a video game simulating a factory that will allow freshman students players to learn basic concepts of IE such as costs human resources management inventory control production planning among others 15 2 Specific Objectives A single player video game made of different levels Early levels will be easier than later levels Each phase will have an initial configuration with a set of activities and a process flowchart where the player has to figure out the changes in resource allocation to complete the arriving orders on time Furthermore these activities will have a given but changeable priority and are dispatched for execution in priority order All the information required for each phase will be stored in a database Each phase will have available a set of workers machines equipment and storage areas The game will allow the users to hire or fire workers and buy or
88. tester team for their help the testing phase has been completed successfully Also Xiomara A and Irving D for their contribution helped in the game development Finally I would like to acknowledge the support from the National Science Foundation Award No 0835990 vil TABLE OF CONTENTS ADS TRACE oa 11 RESUMEN Sartenes ia IV ACKNOWLTEDGEMEN TS urna vil TABLES LCIS Etico yiicac xil FIGURESEIS Toruna E E E xiii l INTRODUCTION crr lia ici l Ci is o anen ptr eer ere treet nese nner rt tear peter rey re ee meee l Zo Problem Sate mentada aiii E E E E 2 Eos AOU AA A eE S 3 lAs A e a pasdacsaiss sce eantaneaaes 4 A a CS ornin a E A teciceteetaans 4 LIL General ODE ui id aa 5 EJ SPC ODEVE S talca 5 FOs ulcera bananera ici 6 2 ARELALED WORK nte tedio 7 2d Howto Build Serious Games 7 2 2 Games for Science and Engineering Educati0N occccccnncnnnccnnnnnnnnnnnnnncnnnnnss 7 Woe Pandori BOX PO Jara das 8 2 4 Serious computer games as instructional technology oocccccccccnoonoccnnnnns 8 3 OVERVIEW OF THE GAMING EXPERIENCE cccccccccccceeeeeeeeeeeeees 10 Sul ATOM did 10 2 Educational CONCISA E 10 Died Wis ENCUEN 10 Lili BLOCESS ELO WC nd din 11 Dele O dto 12 3 2 4 Human Resources ManageMeldt oocccccccccncnoccnnnnnnnnnnncnnnnnnnnonnnnnnnnnnnnnnnnnnos 14 2s MEMO COMMON 15 320 Production OPENS ch steelers ee 16 3 2 7 Probability Distributions and TIMINE ooocccnncnnnnnnncnnnnnnnnonononnnnnnnonnnnnonos 1
89. the data for each table and for that reason each table at least 2 basic routines i e select routine and update routine The rest of the routines represent more complex queries One drawback of the SQLite engine is that it does not store routines In that case queries are stored inside the source code If for some reason the table changes its structure then routines located in the source code will be updated and implying in a new game release 6 4 2 Databases Synchronization Process This synchronization process is the main tool that allows achieving three main tasks 1 to gather usage data for each user into the remote database 2 to update the game data for each user machine from the remote database and 3 to update current game levels or to add new game levels from remote database to every local database Figure 6 8 below illustrates the communication between the database server and different user machines i e desktop and laptop computers where each one is executing the sync process More information about this process can be found in Section 5 3 54 Server Machine dl Zy Sync Process N N a Figure 6 12 Synchronization process between databases SD Players Machine 6 5 Detailed Description of Components This section will provide additional information about important software components that have been used in the development of the game included as Java threads A algor
90. the manual configuration allows expert users or user with some game knowledge to setup the game features as they desire 3 4 Game Controls and Strategies The game provides a set of controls that allow users to manage the game in different ways and to obtain many results as possible Some controls are implemented to execute 18 several tasks at same time but giving fewer details about each task Others give more information and execute each task independently Figure 3 3 shows the Resource screen at the left which allows the user to hire fire workers and buy sell machines and equipments and the Operator screen at the right which shows detailed information of the operator and allows hiring or firing this current operator In accordance with the wide range of options to control the game the user can implement different strategies to obtain diverse results One strategy can be to use the least amount of workers machine and equipment This strategy may not generate much profit but could win the game However another strategy could be fulfilling every order as possible regardless the quantity of workers hired and the amount of machines and equipment purchased Therefore the more the user plays the more strategies the user could implement 3 5 Game Goals The main goal to win the game is to fulfill as many orders as are required without going to bankruptcy where the quantity of orders varies depending of the game lev
91. ties purchase transport operation and shipping These activities are executed constantly during the game and depending on the activities the requirements vary as shown in Table 3 1 The number for each kind of activity varies depending on the level Also early levels will be easier than later levels which have more activities Table 3 1 Requirements for each kind of activity Activity Validation Process Step by Step P OE Partinventory UnitsToArrive lt OrderPoint StationInventory UnitsToArrive OrderQuantity lt StationCapacity OrderQuantity x PartPrice lt CurrentMoney Transport Available qualified operator amp available transport equipment EndStationInventory UnitsToArrive PartsToMove lt EndStationCapacity 3 InitialStationInventory UnitsToRemove PartsToMove 4 Available slot in initial end station if required 1 Available qualified operator amp available machine 2 StationInventory UnitsToArrive PartsToProduce lt StationCapacity 3 PartRequired X QuantityRequired lt PartInventory PartsToRemove ae 1 Next order required Shipping 2 StationInventory OrderQuantityRequired The game allows players to change parameters for some activities in order to get a Operation desired result Purchase activity allows changing the reorder point order quantity and supplier Transport activity allows changing the amount of parts to be transported or unit load Other activ
92. tion This screen shows the list of stations available for this game level The player will be able to change some options It will allow to buy or sell machines equipment as desired by the player It will allow the user to choose between parts or suppliers This information is read only Expected Results Actions taken by the player in storages will be shown during the game Buying or selling machines equipment will be shown during the game it means in the factory The game will show the information according to what the user has selected 86 Comments Stations different than storages are read only The player can sell a machine or equipment that is working but the action is carried out when the machine is idle 12 Complete Game Level This feature validates that the game will finish after some orders have arrived winning or losing the game level or falling in bankruptcy The completed game will show a pop up with statistical information and provide some options to the player Table 12 Complete game level Test Case Name Validate pop up shown Verify won game Verify lost game Description Game has three different ways to finish the level First falling in bankruptcy second failing more orders than allowed finally receiving all orders The user will win the game when he she completes more orders than required and a pop up will be shown The user will l
93. tional game it can also be called a serious video game since it is classified as a strategy video game The player has to carefully plan and manage resources in order to win The project scope will be a single player video game for personal computers with multi platform support This game simulates daily activities in a factory in which users must make many decisions with the goal of fulfilling as many orders on time and as efficiently as possible Some of the decisions that the user can control include hiring or firing workers buying or selling machines and equipment increasing or decreasing storage space setting unit loads for each transport activity among others 11 In order to perform this project implementation Java has been used as the programming language and the development has been done with Object Oriented programming In addition two synchronized databases engines have been used SQLite as the local database and MySQL as the remote database Finally JMonkey has been used as the game engine SimPack has been used as the discrete event engine and some algorithm of Artificial Intelligence has been applied to determine the shortest way between two points in the factory 111 RESUMEN Actualmente la generaci n Gamer ha permitido un r pido crecimiento en la industria del juego enfoc ndose en el desarrollo de juegos de entretenimiento en vez de juegos educativos Esto se debe a la complejidad que existe al
94. transport activity has seven 7 states 1 e validate operator walks to machine operator and machine walk to initial station operator loads items into machine operator and machine walk to final station operator unloads machine and operator release machine 6 3 3 Facade Pattern A design pattern could be composed of many classes yet what matters is these classes are structured and how they work together to solve a problem In a complex system 1 e many different classes with many functions which requires performing a function 1t will need to call each class required In order to avoid this we use the facade design pattern which provides a simplified interface to a complex system In the game development this pattern is applied in the data management lager which set 1ts information from a relational database This complex system 1s comprised of 38 classes located in two packages entity and data The GameData class provides a simple interface to this information Figure 6 5 This class manages all references and variables for each of the 38 classes and provides some public methods e g loadGamesByType createGame manageGame etc 49 E _AssemblyDetails AE_AssemblyDetails gt TEN gt select idGame Map lt Integer E_Part gt insert idGame part boolean station E Station select idGame Map lt Integer E_Station gt insert idGame station boolean updateLocalDB idGame actionsToDo void
95. trator changes some data in the remote database the players instances will update their local databases The player is able to change some features demanding a cost for each one For example hiring or firing workers buying or selling machines and equipment allocating slots per storage station among others In addition each purchase activity involves a cost and the user s objective is to fulfill orders on time as profitable as possible and avoiding bankruptcy Each activity requires a set of skills and each operator has a skill set If an operator wants to perform the activity this operator must have the required skills Furthermore the machines or equipment used can also break down after a certain time so the game is considering a probabilistic time of repair However the user can avoid this break time carrying out a preventive maintenance with its respective fee Finally normal uniform and exponential distributions are used in order to simulate failures and repairs as realistically as possible 1 4 Contributions The game development lets us identify three 3 different approaches as contributions First at all the game is the principal tool of the main research which aims to support learning of IE core concepts and improve problem solving skills by freshman IE students Once the game development is completed then the main research can continue with its next process step Another contribution is developing a game that
96. tudents as well as support of learning in context improved student understanding of core concepts and improved problem solving skills in complex unstructured problems Once requirements were analyzed and the game rules were established the purpose of this project is to create an educational video game based on a factory to be played mainly by IE students and other people interested in learning IE concepts management This game is classified as a serious game because the main purpose is to help freshman students learn about IE concepts It could also be classified as a strategy video game because the player will carefully plan and manage resources with the objective of fulfilling orders on time and as efficiently as possible This game is a simulation of the daily activities in a factory where decisions must be made to obtain desired results Some of the decisions that the user can control include number of active workers machines workstations buckets among others The project scope will allow playing on personal computers with different levels of difficulty Although the graphic design of workers machines and equipment has been simple the objective is to help students learn various IE concepts 1 2 Problem Statement In order to achieve that freshmen industrial engineering IE students learn fundamental IE concepts applicable to manufacturing systems and improve problem solving skills in complex unstructured problems
97. uggests that this perception can be changed if computer programs are used to teach science and engineering topics from kindergarten through grade twelve encouraging more students to continue college studies in these fields 18 2 3 Pandora Box project Crisis management prevents emergency situations from turning into disasters and training plays an important role in preparing the crisis manager In order to achieve this the Pandora project 19 assists crisis managers training using innovative technology In particular it is creating a tool that collaborates with traditional training methods to generate and to improve decision making skills for trainees It shows three important aspects a a novel use of timeline based planning as the core element in a dynamic training environment for crisis managers b a continuous loop of planning execution and plan adaptation is created to support personalized training c a trainer is provided with a set of functionalities that allow him her to maintain and adapt a lesson plan as the basis for the interaction between him her and the involved trainees 2 4 Serious computer games as instructional technology The potential value of serious computer games for learning seems high but there is still some degree of resistance to the use of games in a classroom A reasonable way to convince teachers to use games as a teaching tool is through pedagogy connecting elements of existing game design
98. y To ensure reliability in the game the user data stored in the remote database must be of real players This is accomplished during the process of creating a new user given that the game will require an email which will be validated through sending a message to this email attaching the new generated password by the game engine Once the player receives this password to his or her email account he or she will be able to start playing Furthermore the user account automatically should be activated the first time the user logs in On the other side the game server will validate every few days that if some user account has not been activated for some time 1t should be dropped 5 6 2 Availability Once the player has downloaded and installed the game the next step 1s to create a new user account This process will require an Internet connection because the software 33 should synchronize the user data provided to avoid duplicated user names So the game server should be available at all times Otherwise none new user will be allowed to play the game Furthermore other steps in the synchronization process will include game data and user data synchronization If the remote server is not available it will not be able to get the current user data and users will not have new levels and or updated levels 5 6 3 Security The security in the game was considered in different stages When someone tries to play the game should requi
Download Pdf Manuals
Related Search
Related Contents
Philips HPS940 Mode d`emploi du dispositif e·fix Gebrauchsanweisung Instrucciones *2019522* 2019522 manual de Instalacao Online UPS User Manual RM-GX1 XMCU4(A) Module de Connexion Genius DVR-HD550 U22/Micro-Air manual FR/IT/ES Copyright © All rights reserved.
Failed to retrieve file