关于java:COMP222-Second-CA-Assignment

7次阅读

共计 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;

  1. 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
  2. Disclaimer
    There are two options to complete this assignment:
  3. Extend Assignment 1 in order to add an artificially intelligent opponent
    or any other elements of Game AI.
  4. 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
  5. 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:
  6. 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
  7. 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
  8. 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.
  9. Deadlines and How to Submit
    ❼ Deadline for submitting the second assignment is Friday, 15 May 2020
    at 5pm.
    ❼ Submission is via Canvas accessible from
正文完
 0