28.10.2014 Views

Game Design and Artificial Intelligence - Bournemouth University

Game Design and Artificial Intelligence - Bournemouth University

Game Design and Artificial Intelligence - Bournemouth University

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Game</strong> <strong>Design</strong> <strong>and</strong> <strong>Artificial</strong> <strong>Intelligence</strong><br />

David Hopkins<br />

Implementation<br />

When starting development of the game, a lot of time was spent designing the character <strong>and</strong> crew<br />

AI side of the program but most of the coding time was involved with the space combat system, as<br />

this was pivotal to getting a functioning <strong>and</strong> fun product. It required these visuals for underst<strong>and</strong>ing<br />

what the player is attempting to achieve. The main factor proved to be time <strong>and</strong> learning. At the<br />

end of this project, there was an emphasis on producing something that was fun to play <strong>and</strong><br />

interactive with the player but could still carry across much of the concept work. Once the space<br />

combat system was developed, there was little time left to spend on the crew FSM system, however<br />

some items have been implemented to indicate what could have been if more time was available.<br />

H<strong>and</strong>ling data<br />

When designing a skeleton structure of the game engine, the file system was split into three main<br />

sections. One of the sections would be dedicated to the interior of the ship, checking on the<br />

conditions of each of the crew members <strong>and</strong> working out the respective work rates. The second<br />

section consists of the ship fighting, updating <strong>and</strong> drawing all objects in the world space. The final<br />

section is the main section where everything must be h<strong>and</strong>led including the opengl setup <strong>and</strong> calls<br />

to the other two sections.<br />

This was the first time I had attempted to do a programming project using multiple files, <strong>and</strong><br />

therefore it was key that I passed the correct data around for the game engine to operate. The main<br />

pivotal point for this was between the ship combat <strong>and</strong> the ship interior. The player ship<br />

information needs to be passed to the heads up display, the crew work rates need to be sent to the<br />

combat system <strong>and</strong> both sections need to be able to h<strong>and</strong>le key presses. The first attempts at<br />

producing the space combat system were flawed due to a lack of cohesion when attempting to pass<br />

data to <strong>and</strong> from the space combat file. After learning the uses of object orientation, this problem<br />

was simplified. Object orientation allows information that previously couldn’ t be shared from<br />

specific modular files (eg. shipCombat.cpp does not know of objects in crew.cpp) to be accessible<br />

by the use of placing the data in sets of interacting objects [macey00]. Using classes to contain the<br />

data, through inheritance <strong>and</strong> the use of the STL(st<strong>and</strong>ard template library) [bateman00] I was able<br />

to format a much neater <strong>and</strong> more accessible system.<br />

Page 12 of 22

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!