共计 5444 个字符,预计需要花费 14 分钟才能阅读完成。
COMP222 – 2020 – Second CA Assignment
Individual coursework
Game AI
Assessment Information
Assignment Number 2 (of 2)
Weighting 10%
Assignment Circulated 18 April 2020
Deadline Friday May 14, 17:00
Submission Mode Electronic – Canvas
Learning outcome assessed 2. An appreciation of the fundamental concepts associated with game development:
game physics, game artificial intelligence, content generation;
- The ability to implement a simple game using an existing game engine
Purpose of assessment To extend Assignment 1 with an Game AI aspects or to design and implement a tank bot
for the Robocode tank battle game
Marking criteria The marking scheme can be found in Section 2
Submission necessary in order No
to satisfy Module requirements?
Late Submission Penalty Standard UoL Policy.
1 - Disclaimer
There are two options to complete this assignment: - Extend Assignment 1 in order to add an artificially intelligent opponent
or any other elements of Game AI. - Implement a robot/tank in Robocode that ranks high in a competition
against 11 other preselected sample robots/tanks.
1.1 Objectives for extending Assignment 1
This option requires you to modify your submission for Assignment 1 in order
to incorporate elements from Game AI to your game. There is no strict
requirement on which elements of your game you will make“intelligent”.
In the case of Arkanoid, for example, one can develop an artificially intelligent opponent/paddle, whose behaviour follows a Game AI behaviour
model of your choice: for example, finite state machine, decision trees, behaviour trees, etc. Other elements can be made“intelligent”, e.g. the ball,
the obstacles, etc.
The gameplay should not be too easy or too hard. The gameplay should
be getting gradually harder as time progresses.
Hint Increasing the difficulty of beating the AI can be based on elapsed
time, decrease in obstacles, increasing number of wins, etc.
1.2 Objectives for Robocode
Robocode is a programming game, where the goal is to develop a robot battle
tank to battle against other tanks/robots. The robot battles are running in
real-time and on-screen. Robots can move, shoot at each other, scan for each
other, and hit the walls (or other robots). More details can be found on the
project web site, https://robocode.sourceforge.io/
This assignment requires you to design and implement a tank robot for
the Robocode tank battle game. You need to choose a game AI behaviour
model (such as, for example, finite state machine, decision trees, behaviour
trees, or any other mechanism of your choice) and implement your robot
based on this behaviour model.
2 - Marking scheme
I enforce a“no error policy”in this module: If your code
does not compile, your overall assignment mark will be
capped at 40%. Thus, you may get a higher mark for an
incomplete solution than for an advanced sketch.
You are required to submit Java code and an electronic document describing your design and implementation. The contribution of subtasks is as
follows.
2.1 Documentation (40% of the mark)
You are required to submit a 700 to 1 000 words document containing: - A short description of the behaviour control model of your choice (e.g.,
FSM, Decision trees, etc.). You only need to write a couple of paragraphs to show your understanding of how the model works. 10 marks - A description of the AI design you followed to implement the AI element
in your game (e.g. the paddle-opponent) or the robot in Robocode.
In your design you should use the chosen behaviour control mechanism. For example, if you choose FSMs to represent elements/bot’s
behaviour, give a graphical representation of states, transitions, and
conditions under which the machine switches from one state to another. If you choose a tree-based model, give a graphical representation
of the tree and clearly indicate tests and actions. Justify your design
decisions. In particular, comment on why you believe these design decisions makes your AI-element meaningful in improving the gameplay
or you robot/takn more likely win the tournament. 20 marks - A description of your implementation. Explain what classes and methods are used to implement the chosen behaviour model. You are not
restricted in HOW you implement the AI-element or robot/tank (you
can hard-code the behaviour in an ad-hoc manner, implement a general scheme, or use a third-party library) but your mark will depend on
how closely you follow the design. You are allowed to deviate from the
design; however, if your implementation does differ from the design,
clearly identify and justify the modifications. 10 marks
3
2.2 Implementation (30% of the mark)
The implementation will be marked as follows:
❼ Providing response to gameplay: The AI-element responds to gameplay. or the robot/tank responds to battle events (onScannedRobot,
onHitByBullet, onHitWall,. . . ) 10 marks
❼ Following the design 10 marks
❼ Clarity and style of code 10 marks
Note for Robocode Submissions When you create a new robot
in the editor use the following naming convention
Robot name: Please try to give your robot a unique name. That
could be FirstnameSecondname (for example, I would use
KonstantinosTsakalidis) without spaces and special characters
or a name that is unlikely to be chosen by others, e.g.,
Crusher15041991.
Please put your full name and student ID as a comment in the
beginning of every Java file that you submit.
Package name: use comp222
If you use a different package name, your bot might be
lost and not make it to the competition.
2.3 Runtime evaluation(30% of the mark)
Assignment 1 Extension The behaviour of the AI opponent will be assessed by the level that it achieves the described behaviour, the gradual
progression of the gameplay difficulty.
Robocode Battle Competition Submitted bots will take part in a tournament against 11 other standard sample bots. At least 10 rounds will be
played in a battlefield of default size. In the end, your bot will be ranked by
the Robocode Total Score. If it ends in the upper third of the ranking,
4
it will get extra 30%; in the middle third, it will get extra 20%; and in the
lower third, it will get extra 10%.
You should make a reasonable effort to modify the default (bot skeleton in the editor) behaviour. Additionally, no robot with code taken
from elsewhere (with or without acknowledging the source) will be
allowed in the competition. - Deadlines and How to Submit
❼ Deadline for submitting the second assignment is Friday, 15 May 2020
at 5pm.
❼ Submission is via Canvas accessible from
正文完