TOP>Sessions>Poster>This Session


A Software Architecture for Game Where Users Participate through AI Programming

Expected Skill

You should know software engineering such as software architecture and
design pattern, etc.
And also you should have minimum design skill and programming skill.

Ideas Take Away

You may get formalized knowhow of game development such as software
architecture, design pattern and idiom.

In this poster, I report the development and operation of the game
system where players fight with AI which they create by programming for ACM International Collegiate Programming Contest Asia Regional Contest 2009 and propose software architecture, design pattern and idiom for developing such game system.
First, I explain the several concepts in software engineering such as what is software architecture, what is design pattern and what is idiom.
Next, I also explain the actually developed game system, adopted
software architecture, design pattern and idiom.
Concretely, I explain the following points:
the point to adopt the framework architecture, and to have achieved the execution of AI which players created by programming by using Inversion of Control (IoC); the point to limit input and output of user programs to only arguments and return value in order to offer API that players can use easily; the point to use Immutable pattern and Decrator pattern to prevent from rewriting internal state of game
system illegally; the point to limit computing time of user programs by using the Idiom of Thread offered by Java API.
In addition, I evaluate the game system from the viewpoint of the
quality characteristic defined in ISO9126: functionality, reliability,
usability and efficiency.
As a result, I explain that the software architecture, the design
pattern, and the idiom mentioned above contribute to the quality
improvement of the game system, and they are formalized as good knowhow in the game development.
Finally, I show the example of proposed software architecture in Java and C++ and show that it does not depend on specific platform or processor and it can be used as good knowhow in common and actual game development.

* The session contents are based on the information provided by the speakers.

  • Kazunori Sakamoto

    Kazunori Sakamoto


    Washizaki Laboratory, Dept. Computer Science and Engineering

    Waseda University