联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2022-04-06 09:53

COMP222 - 2022 - Second CA Assignment

Individual coursework

Game AI

Assessment Information

Learning outcome assessed 1. An appreciation of the fundamental

concepts associ- ated with game

development: game physics, game artificial

intelligence, content generation;

2. The ability to implement a simple game

using an existing game engine

Purpose of assessment To design and implement a tank bot for

the Robocode tank battle game or to

extend Assignment 1 with AI

Marking criteria The marking scheme can be found in

Section 4

1 Disclaimer

There are two options to complete this assignment:

OPTION 1: Implement a tank in Robocode.

OPTION 2: Integrate Game AI to CA Assignment 1

2 Objectives for OPTION 1

Robocode is a programming game, where the goal is to develop a robot battle

tank to battle against other tanks. 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: http://robocode.sourceforge.net/

This assignment requires you to design and implement a “tank bot” 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.

3 Objectives for OPTION 2

This assignment requires you to integrate game AI into Assignment 1. You

need to choose a game AI behaviour model (such as, for example, finite state

machine, decision trees, be- haviour trees, or any other mechanism of your

choice) and implement one or more game agents based on this behaviour

model. The integration of AI should result in a gameplay that is nei- ther too

easy, nor too hard. Also, the gameplay should be getting increasingly more

difficult as the game progresses.

Hint You can choose which of the game entities will become “intelligent”.

For example, you may choose to make (some of) the asteroids in your game

intelligent. That is, instead of “blindly” floating in the field, the intelligent

asteroid can “sense” that it is “close” to the spaceship and purposefully

change its direction to “seek” the player’s spaceship in order to crash onto it.

Also, it can “sense” that it is being shot at and purposefully change its

direction to “dodge” the player’s bullets. The game’s difficulty can be adjusted

by programming slower or faster movement of the intelligent asteroid(s).

Another example is to create a second spaceship in the field whose purpose

will be to shoot down the player’s spaceship. The intelligent spaceship can

exhibit similar behavior to the one described above (“seeking” the spaceship

and “avoiding” incoming bullets) and is also susceptible to collisions with the

floating asteroids.

Machine Learning AI can also be integrated into Assignment 1 using

machine learning methods. E.g the spaceship can learn how to pass the level

(without control from the user) using reinforcement learning to adjust rewardand-punishment

costs improved over many training iterations of the game. To

integrate machine learning to your game, follow the links for jMonkeyEngine:

https://wiki.jmonkeyengine.org/docs/3.4/contributions/ai/ jme3_ai.html,

Unity3D: https://unity.com/products/machine-learning-agents and Unreal

Engine: https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/

ArtificialIntelligence/.

4 Marking scheme

You are required to submit the executable and the code of your

implementation, as well as an electronic document describing your design

and implementation. In principle, marking will assess how close your

implementation is to your submitted design.

4.1 Documentation (40% of the mark)

You are required to submit a 700 to 1 000 words document containing:

1. A short description of the behaviour 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% of 40%

2. A design description of your Robocode tank bot or AI agent(s). In your

design you should use the chosen behaviour control mechanism. For

example, if you choose FSMs to represent 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 bot more likely win the tournament or why your agent(s) make the

gameplay interesting. 20% of 40%

3. 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 bot (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 imple- mentation does differ from the design, clearly identify and

justify the modifications. 10% of 40%

4.2 Implementation (30% of the mark)

The implementation will be marked as follows:

• Providing response to gameplay: 1. The AI agent responds to gameplay.

OR 2. the bot responds to battle events (onScannedRobot, onHitByBullet

onHitWall….) 10% of 30%

• Following the design 10% of 30%

• Clarity and style of code 10% of 30%

Note for OPTION 1 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

FirstnameSec- ondname (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.

4.3 Runtime evaluation (30% of the mark)

OPTION 1: Robocode Battle Competition Submitted bots will take part in

a tour- nament against 11 other standard bots (to keep the competition fair,

this list is not disclosed here, however all submissions will compete against

the same 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, 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 behaviour (bot

skeleton in the editor). Additionally, no robot with code taken from elsewhere

(with or without acknowledging the source) will be allowed in the competition.

OPTION 2: Assignment 1 Extension The behaviour of the AI agent(s) will

be assessed by the level that it achieves:

(i) the described behaviour in the design 15% of 30%

(ii) the gradual progression of the gameplay difficulty. 15% of 30%

5 How to Submit

• All submission must contain a report, the source code, the executable

and the necessary files for the runtime execution. In particular:

• For BOTH OPTIONS, submit the documentation report in pdf-format.

• For OPTION 1, you should submit your bot by exporting it as a jar-file. To

do so, choose “Robot”→“Package robot for upload” in the Robocode

menu. Also, you should submit the java-file that contains your code. No

other file is necessary.

• For OPTION 2, follow the instructions for Assignment 1.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp